Skip to content

DAMMAK/movie-mate

Repository files navigation

Nest Logo

A progressive Node.js framework for building efficient and scalable server-side applications.

NPM Version Package License NPM Downloads CircleCI Discord Backers on Open Collective Sponsors on Open Collective Donate us Support us Follow us on Twitter

Movie Reservation System

A comprehensive backend system for a movie reservation service built with NestJS, PostgreSQL, and Docker.

Features

  • User Authentication and Authorization

    • JWT-based authentication
    • Role-based access control (Admin and User roles)
    • Secure password hashing
  • Movie Management

    • CRUD operations for movies
    • Movie categorization by genre
    • Movie poster image upload
  • Theater and Showtime Management

    • Theater configuration with seat layouts
    • Scheduling of movie showtimes
    • Seat category pricing
  • Reservation System

    • Real-time seat availability checking
    • Seat reservation with conflict prevention
    • Reservation management (view, cancel)
  • Reporting

    • Revenue reports by movie, time period
    • Theater occupancy reports
    • Popular movies ranking
  • Additional Features

    • Rate limiting
    • Health checks
    • Comprehensive logging
    • Caching for performance
    • API versioning
    • File uploads
    • Event-based notifications
    • Scheduled tasks
    • Exception handling
    • Configuration validation
    • API documentation with Swagger
    • Comprehensive testing

Technology Stack

  • Backend Framework: NestJS
  • Database: PostgreSQL
  • Containerization: Docker & Docker Compose
  • Authentication: JWT, Passport
  • Validation: class-validator, Joi
  • Documentation: Swagger/OpenAPI
  • Logging: Winston
  • Testing: Jest, SuperTest

Getting Started

Prerequisites

  • Docker and Docker Compose
  • Node.js (for local development)

Installation

  1. Clone the repository:

    git clone https://github.com/DAMMAK/movie-mate.git
    cd movie-mate
    
  2. Create a .env file in the root directory with the following content:

PORT=3000
NODE_ENV=development
JWT_SECRET=  //Include JWT_SECRET Of your choice or use this https://jwtsecret.com/generate to generate JWT_SECRET
JWT_EXPIRATION=1d
DB_HOST=postgres
DB_PORT=5432
DB_USERNAME=postgres
DB_PASSWORD=password
DB_DATABASE=movie_reservation
API_URL=http://localhost:3000
  1. Start the application using Docker Compose:

docker-compose up -d

  1. The API will be available at: http://localhost:3000 The API documentation will be available at: http://localhost:

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages