Architecture Kata “Taxi”

Develop a software system to let customers order a taxi.

Customers order a taxi to where they are right now or to another location. Either the taxi should come as soon as possible or at a fixed time.

Taxi drivers can watch orders rolling in and take them on. The first taxi driver to take an order will be assigned to it. Then customer then will be notified.

Until the taxi arrives the customer can view its progress on a map. He’ll also be informed about how long it probably will take until the taxi arrives.

After the ride the customer can pay either cash or use the software. The taxi driver will enter the amount into the system and the customer can pay using his credit card or Paypal.

If the customer orders the taxi for a fixed time in the future the taxi driver still has to take the ride on immediately; the system then informs the customer who’s going to pick her up. Shortly before the pick-up time the customer will be notified of the taxi being on its way.

Until 10 Minutes before a pick-up time the order can be cancelled by the customer. The taxi driver will be notified.

Customers can register with the system and request an invoice if they paid a ride through the service.

The customer can provide a destination address with his order. The system then will calculate the taxi fare. The taxi driver will see the destination, too.