Skip to content

A fullstack web application based on react and express to manage the ticket- and booking-system of a cinema

Notifications You must be signed in to change notification settings

kecioch/showtime

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Showtime!

the online tool for cinema operators

🎞 • 🎫 • 🎬 • 🎥

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.

Live Demo

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

Screenshots

Features

Basic

  • Authentication (JWT)
  • Login & register
  • Edit account information
  • Responsive design

Customer

  • Filter program plan
  • Movie details
  • Seat selection
  • Ticket booking and payment process
  • Ticket overview
  • E-Mail confirmation with QR-Code and iCal event

Admin

  • Manage cinemas with a cinema editor
  • Manage seattypes and their prices
  • Manage movies
  • Screeningplan editor
  • Manage staff accounts

Staff

  • Validate tickets with a QR-Code scanner

Requirements

Setup

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

Frontend

# 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.

Backend

# 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

Technologies

APIs