This booking app is a simple demonstration of a room booking system, showcasing key technologies and patterns in software development.
- Node.js (LTS version 20.11.0)
- NestJS
- PostgreSQL
- Prisma (ORM)
- Redis (Caching)
- RabbitMQ (Message Queue)
- Swagger (Documentation)
- pnpm (Package Manager)
Install dependencies:
pnpm install
Start the app with Docker Compose:
pnpm run docker:up
Stop the app:
pnpm run docker:down
Run migrations:
pnpm run db:migrate
Seed the database (optional):
pnpm run db:seed
Reset the database and migrate (optional):
pnpm run db:migrate:reset
📝 Swagger API: documentation is available at http://localhost:3000/api.
📝 Postman Collection: collection for API testing is available at http://localhost:3000/api-json.
- Caching Strategy: Redis caching is used for room availability checks.
- Message Queue: RabbitMQ handles asynchronous tasks like email notifications.
- Database Design: Efficient management of bookings and tracking room availability.