- Design & Develop a Backend System for Travel Portal as like MMT or Booking.com, The business idea is to bridge the gap between service providers (Suppliers – Ex- indigo, Lemon Tree … etc ) and service receivers (Consumers - Users).
- Service Receivers (Consumers) can book Flight Tickets & Hotels. They can avail all these services via placing an booking through the Mobile App / Portal.
- Create a Login for the application and after successful login, User can do the Flight Search & Hotel Search.
- If the type is Flight, Search should have all input parameters as Departure Location, Arrival Location, Flight Class (Economy/Business)., Flight Date.
- If the type is Hotel, Search should have all input parameters as Hotel Name, City, Check In Date, Check Out Date Output.
- Once Search is triggered after specifying the search parameters, It will display the search results.
- User can also shortlist the Hotels only.
- Next Step, Consumer will create a Booking.
- When a service is requested, Booking is generated at the backend system and then various background validation happens in the system with respect to availability & payment confirmation… so on and so forth. Based on validation status, booking status will be updated in the system.
- Consumer will also get a notification with respect to the booking confirmation and service provider details & Service Provider will also get the Detailed Description for customer & Other details (ex- Address, Contact Number of Consumer).
- In case of Validation Failure, Consumer will receive notification for Booking cancelled, At the same time, System must take care for refund process.
1. Discovery Server:
- Eureka is used as Discovery Server
- Running on default eureka prot 8761
2. API Gateway
- For Gateway Spring cloud gateway is used
- Gateway service is running on port 9999
- In gateway resilience circuit breaker is used
- If any service is down circuit breaker redirect to fallback Api and return a message.
3. Login
-
Login service is use for authentication
-
For login user need to sign up first
-
Then generate token
-
Then validate the token
-
Authrization is not implemented
4. Flight Search:
-
Flight Search service is use for storing flight related data and booking flights
-
Flight Search service can book and cancel one way and two way trip flight tickets
-
Both types of booking and cancellation will perform using diffrent apis and both order stores in different tables
-
Assume Data store in database about flights show current flight details
-
Flight Search also contain Service Providers related apis
-
Number of seat book will be equal in both journey
-
Flight book will perform on certain parameter like departure date, departure location, flight name, arrival location, flight class, arrival date and number of seat want to book
-
If database has flight according to user specification booking will be done after payment confirmation
-
For notification: I have use log
5. Hotel Search:
- Hotel Search service is use for storing hotel related data and booking hotel
- Hotel search service can book and cancel hotels
- We can wishlist hotels
- Assume Data store in database about hotels show current hotel details
- Hotel search will perform booking on certain parameters city, name, check in date, check out date and number of room want to book
- If database has flight according to user specification booking will be done after payment comfirmation
- For notification: I have use log
6. Payment:
- Payment service is use for payment
- Payment status will tell about whether payment is successful or not
- Log is use for payment notification
- Hotel search and Flight Search communicate with payment service via Synchronous communication
This application is develop using these technologies:
- Microservices: Java Springboot (jdk and Maven mendatory)
- Database: Mysql
- Deployment: Docker
- Distributed Tracing: Zipkin and Sleuth
- Postman to test rest api