This project is a scalable, production-grade Flight Booking System built using a microservices architecture. It simulates real-world airline operations with modular, decoupled services for managing flights, bookings, API access, and user notifications.
Each core domain is developed as an independent service:
| Service | Description |
|---|---|
| Manages airports, cities, flights, and seat availability. | |
| 📥 Booking Service | Handles user bookings, payment timeouts, and publishes events. |
| 🚪 API Gateway | Central entry point with authentication, rate limiting, and routing. |
| 📧 Notification Service | Sends email confirmations using RabbitMQ consumers. |
- Microservices architecture using Node.js and Express
- REST APIs with modular MVC structure and Sequelize ORM
- JWT-based authentication with role-based authorization
- Asynchronous messaging with RabbitMQ
- Scheduled jobs (auto-cancel unpaid bookings)
- Email notifications using Node Mailer
- Docker-ready setup for containerized deployment
- Backend: Node.js, Express.js
- Database: MySQL (via Sequelize)
- Messaging Queue: RabbitMQ
- Authentication: JWT (access & refresh tokens)
- Scheduler: Node-Cron
- Email: NodeMailer
- DevOps: Docker, Postman for API testing
Each service is deployed separately. Follow the individual README files in each repo for detailed setup instructions.
- Clone each microservice repo listed above.
- Install dependencies:
npm install - Configure environment variables
- Start services:
npm start