/taxi

Primary LanguageJava

Taxi Booking Application

A taxi dispatching station having a pool of taxis serving customers.

The server provide RESTful web services for the pull-based interaction between the client and server for the stateless components and WebSockets for streaming taxi location updates events and AWS Simple Notification Service (Amazon SNS) for pushed-based events such as taxi booking updates.

Micro-Service Architecture

taxi-booking-microservice-architecture

UseCase Diagram - Taxi Booking Module

![taxi-booking-usecase-diagram](/documentation/images/UseCase Diagram Taxi Booking Module.png)

Activity Diagram - Taxi Booking

![Activity Diagram - Booking a Taxi](/documentation/images/Activity Diagram - Booking a Taxi.png)

Activity Diagram - Accept Taxi Booking

![Activity Diagram - Accept Taxi Booking](/documentation/images/Activity Diagram - Accept Taxi Booking.png)

Class Diagram - Taxi Booking Domain Model

taxibooking-domain-model-class-diagram

taxi-booking-domain-model-diagram

Class Diagram - Taxi Booking State Pattern

booking-state-pattern-class-diagram

Class Diagram - Taxi State Pattern

taxi-state-pattern-class-diagram

Taxi Booking Service API

Setup the Database - TestController

http://localhost:8000/v1/test/setup

Taxi Controller

GET: http://localhost:8000/v1/taxi/{id}

POST: http://localhost:8000/v1/taxi/{id}/location
	Request: {
				"latitude": 51.763366,
				"longitude": -0.22309
			 }

GOOGLE MAP API - GeocodeController

Taxi Booking Controller - BookingController

  • A controller class for receiving and handling all booking related transactions

    POST: makeBooking

    GET: bookingHistory

    GET: findBooking

    GET: findBookingsForUser

    GET: incompleteBookings

    POST: updateBooking

    POST: acceptBooking

Config Service

http://localhost:8888/booking-service/master

http://localhost:8888/eureka-service/master

http://localhost:8888/env

http://localhost:8888/metrics

Discovery Service

http://localhost:8761/