Showtime
is a web application designed for cinema operators, providing them with a centralized platform for managing their movie schedules and ticketing. Its core functionalities include an online program plan, ticket booking, seat selection, ticket validation, and user account management with authentication capabilities. With Showtime, cinema owners can efficiently organize their movie screenings, allow customers to book tickets seamlessly, manage seating arrangements, and validate tickets during screenings. This comprehensive solution streamlines the cinema operation process and enhances the overall movie-going experience.
You can see the application in action by checking out the live demo.
To try out the payment process you can use a payment method that redirects to a demo page to approve or disapprove the payment like Giropay or use the following demo credit card:
CARD-NR.: 4242 4242 4242 4242
EXPIRY DATE: use a future date
CHECK DIGIT: 424
- Authentication (JWT)
- Login & register
- Edit account information
- Responsive design
- Filter program plan
- Movie details
- Seat selection
- Ticket booking and payment process
- Ticket overview
- E-Mail confirmation with QR-Code and iCal event
- Manage cinemas with a cinema editor
- Manage seattypes and their prices
- Manage movies
- Screeningplan editor
- Manage staff accounts
- Validate tickets with a QR-Code scanner
- NodeJS
- MongoDB Database
- TMDB API Key (register here)
- Stripe API Key (register here)
To setup the project follow the the next steps. It's important to create an .env
file based on the required environment variables in .env.sample
before running the application.
# 1. Clone repository
$ git clone https://github.com/kecioch/showtime
# 2.1 Navigate into repository
$ cd frontend
# 2.2 Install dependencies
$ npm i --force
# 2.3 Rename .env.sample to .env file and fill out the environment variables
# 2.4 Start frontend
$ npm run start
NOTE: Because the frontend uses version 3.0.0 of the react-qr-reader package which doesn't support react 18.2 officially at the moment, you need to use the --force paramter to install the packages.
# 3.1 Navigate into repository
$ cd ../backend
# 3.2 Install dependencies
$ npm i
# 3.3 Rename .env.sample to .env file and fill out the environment variables
# 3.4 Start backend api
$ npm run start