Skip to content

DevBassel/Movie-Reservation-System

Repository files navigation

Build a system that allows users to reserve movie tickets.

Tech Stack

  • Nodejs
  • TypeSript
  • Nestjs
  • Postgresql
  • Stripe (payment gateway)

Features

  • User Authentication and Authorization

    • login
    • register
    • JWT Authorization
  • Roles (super-admin, admin, user)

    • super-admin can up user to admin And vice versa
  • Movie Management

    • super-admin and admin can create, update and delete movies
    • Movies are categorized by genre.
    • user can filter movies by ( name, category, showTime and between tow dates)
    • pagination response for optimization
  • Firebase integration

    • to uploade movies poster as (image or video)
  • Reservation Management

    • user can create order for an movie and payment
    • after payment success user resevied and email with tikck details
    • user can cacele reservat movie and refund mony
  • Scheduling

    • An hour before the movie is shown, an email is sent to users to remind them of the show time.efore
  • Emails Notifications

    • send emails to user (create order, payment success, refund order and movie show time)
  • Integtation Testing (jest)

    • created a test for all service and controllers in app

How To Install

> npm i -g pnpm
> pnpm install

Run App (in dev env)

> pnpm start:dev

Run App (in dev production)

> pnpm build
> pnpm start:prod

Env file

// APP
PORT: number;
JWT_KEY: string;
NODE_ENV: 'test' | 'dev' | 'prod';
HOST: string;
// DB
DB_NAME: string;
DB_HOST: string;
DB_PORT: number;
DB_USERNAME: string;
DB_PASSWORD: string;
// payment
STRIPE_SK: string;
STRIPE_PK: string;
STRIPE_WEBHOOK_SK: string;
// email smtp
EMAIL_USER: string;
EMAIL_SK: string;

With thanks and appreciation to roadmap.sh

About

system that allows users to reserve movie tickets.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published