A Hotel Management Information System (MIS) built using a simple microservices architecture for academic projects, practical exams, and learning distributed systems fundamentals.
- JWT Authentication
- Refresh Token Rotation
- Role-Based Access Control (RBAC)
- Room Management
- Guest Management
- Reservation Management
- Check-In / Check-Out
- Payment Processing
- Occupancy Reports
- Revenue Reports
- Reservation Reports
- Swagger API Documentation
- Nginx API Gateway
- Dockerized Services
The system follows a lightweight microservices architecture designed for simplicity, maintainability, and exam-oriented development.
- Auth Service
- User Service
- Room Service
- Reservation Service
- Payment Service
- Report Service
- Nginx API Gateway
- Docker Compose
- MongoDB
- React + Vite SPA
All services communicate synchronously through REST APIs.
- Node.js (ES Modules)
- Express.js
- MongoDB
- Mongoose
- Joi Validation
- JWT Authentication
- Winston Logging
- Swagger Documentation
- pnpm
- React
- Vite
- React Router
- TailwindCSS
- Fetch API
- React Hot Toast
- SweetAlert2
- Lucide Icons
- Docker
- Docker Compose
- Nginx API Gateway
hotel-mis/
docs/
frontend/
gateway/
services/
├── auth-service/
├── user-service/
├── room-service/
├── reservation-service/
├── payment-service/
└── report-service/
docker-compose.yml
Comprehensive project documentation is available inside:
/docs
| File | Description |
|---|---|
| architecture.md | System architecture diagrams |
| system-flow.md | Reservation, payment, check-in and check-out flows |
| database.md | ER diagrams and entity relationships |
| hotel-mis.dbml | Source-of-truth database schema |
- Architecture Diagram
- Service Communication Flow
- Reservation Lifecycle Flow
- Database ER Diagram
- DBML Schema Definition
These documents provide a complete overview of the system design and implementation.
Build and start all services:
docker compose up --buildRun in detached mode:
docker compose up -d --buildStop all services:
docker compose downStop services and remove volumes:
docker compose down -vRebuild containers:
docker compose build --no-cacheView logs:
docker compose logs -fView specific service logs:
docker compose logs -f gateway
docker compose logs -f auth-service
docker compose logs -f reservation-servicecd frontend
pnpm install
pnpm run devFrontend URL:
http://localhost:5173
Gateway URL:
http://localhost:8080
/api/auth/*
/api/users/*
/api/rooms/*
/api/reservations/*
/api/payments/*
/api/reports/*
The Nginx Gateway acts as the single entry point for all backend services.
- Full system access
- User management
- Room management
- Reservations
- Payments
- Reports
- Guest management
- Reservations
- Check-ins
- Check-outs
- Room availability
- Payment management
- Revenue reports
- Financial reporting
Every microservice exposes Swagger documentation.
Examples:
http://localhost:3001/api-docs
http://localhost:3002/api-docs
http://localhost:3003/api-docs
http://localhost:3004/api-docs
http://localhost:3005/api-docs
http://localhost:3006/api-docs
- Feature-Based Structure
- Controller → Service → Model Pattern
- Joi Validation
- Reusable Middleware
- Reusable React Components
- Global Error Handling
- Consistent Response Structure
- Minimal Abstractions
- Functional Programming Approach
- Exam-Friendly Design
This project demonstrates:
- Microservices Architecture
- API Gateway Pattern
- JWT Authentication
- Refresh Token Rotation
- Role-Based Access Control
- RESTful API Design
- Service-to-Service Communication
- Docker Containerization
- MongoDB Data Modeling
- React SPA Development