Skip to content

A comprehensive theatre management and ticket booking system built with Flask for Python and MySQL, presented via a web based UI.

Notifications You must be signed in to change notification settings

GokulVSD/CineManagerDB

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

35 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

CineManagerDB

A comprehensive theatre management and ticket booking system
Written during my 5th semester BE for a course specified mini project in Database Management Systems (DBMS).

The system follows a 3-tier architecture, with a web based front end, Python + Flask as the HTTP server and router, and MySQL server for the database. JavaScript is used to build AJAX requests from the front end, which are served by a Python server running Flask as the application framework. MySQL's Python connector is used to query the MySQL server, which executes the queries on a relational database in 3rd Normal Form.

The system is built to serve as an onsite booking and management system for a theatre (franchise). Two actors are considered, one being the cashier at the booking kiosk, who books tickets in exchange for payment, and the other being the manager who views statistics, alters pricing structures, schedules showings of movies, and adds new movies that are to be premiered.

All HTTP requests to Flask are made via encrypted POST messages. The system is designed to be secure, robust and flexible. The requirements mandated the use of a stored procedure and a trigger in MySQL. An ER to schema mapping was to be performed and the schema was required to be normalised to 3NF.

Documentation


Entity Relationship Diagram


Database Schema


Functional Dependencies



Dependencies

Flask Python HTTP router

MySQL Database server


External Libraries

Bootstrap CSS structure

JQuery AJAX requests, and general JS functionality

pickadate.js Date and time picker


# MySQL server must have an account with username ‘root’ and password ‘root123’ 
# (changeable within the runQuery function in app.py)
# This account needs read/write access to all tables in the db_theatre database (or root privileges)

# Initialise MySQL:

source /path/to/CineManagerDB/initialise.sql

# Use pip to install mysql-connector and flask, use python 3.6 to run app.py 
# Visit the website by vising http://localhost:5000 

Login as "manager" (password "manager"), to add new movies, schedule shows, alter ticket prices, and view bookings.
Login as "cashier (password "cashier"), to book seats for scheduled shows.

Usernames and passwords can be changed in app.py


Please do not plagiarise.