Skip to content

πŸ“… Bookify - Scalable Reservation Booking System!

Notifications You must be signed in to change notification settings

Prasenjit-3433/Bookify.io

Repository files navigation

πŸ“… Bookify - Scalable Reservation Booking System

Welcome to Bookify, a cutting-edge reservation booking system designed with scalability, reliability, and performance in mind. This project showcases a state-of-the-art microservices architecture using NestJS, making it a perfect demonstration of modern backend development practices.

πŸš€ Features

  • Microservices Architecture: Four independent microservices (Auth, Payments, Notifications, and Reservations) for modular and scalable development.
  • Real Payments: Integrated with Stripe API to handle secure and real-time payment processing.
  • Email Notifications: Automated email notifications using NodeMailer and Gmail for seamless communication.
  • JWT Authentication: Secure user authentication using PassportJS with multiple strategies.
  • MongoDB Integration: Robust data persistence layer with MongoDB and an abstract repository pattern for flexibility.
  • Scalable Deployment: Fully containerized and deployed on Kubernetes with CI/CD pipelines on Google Cloud Engine.
  • TCP Communication: Reliable and efficient communication between microservices using TCP transport layer.

πŸ› οΈ Technologies Used

  • NestJS: Powerful Node.js framework for building efficient and scalable server-side applications.
  • MongoDB: Flexible and scalable NoSQL database.
  • Stripe API: For secure payment processing.
  • NodeMailer: For sending email notifications.
  • PassportJS: Authentication middleware for Node.js.
  • Kubernetes: Container orchestration for automated deployment, scaling, and management.
  • Google Cloud Engine: Cloud infrastructure for deployment and scaling.

πŸ“ˆ Architecture Overview

Bookify is built using a microservices architecture, ensuring each component is independent, scalable, and easy to maintain. Here's a quick overview of the services:

  1. Auth Microservice: Manages user authentication and authorization using JWT.
  2. Payment Microservice: Handles payment processing and billing through Stripe.
  3. Notification Microservice: Sends email notifications in response to system events.
  4. Reservation Microservice: Manages booking operations and persistence in MongoDB.

🌟 Why Bookify?

Bookify is more than just a reservation system. It's a showcase of best practices in backend development, demonstrating how to build, scale, and manage a complex application using modern technologies. Whether you're looking to learn about microservices, improve your backend skills, or just need a solid reservation system, Bookify has you covered.

πŸš€ Getting Started

To get started with Bookify, follow these steps: