A Comprehensive Theater Ticket and Food Management System
CineAura is a Flask-based web application that simplifies ticket booking and food management for a nationwide movie theater company. The system supports seamless booking, automatic seat allocation, food order integration, and inline waitlist handling, offering a smooth experience for both customers and theater operators.
- Multi-screen support with dynamic pricing from JSON data:
- Gold: ₹400/ticket (2 seats/screen)
- Max: ₹300/ticket (5 seats/screen)
- General: ₹200/ticket (10 seats/screen)
- Automatic seat allocation based on availability.
- Options: Popcorn and Sandwich.
- Discounts for premium users:
- Gold ticket: 10% off on food
- Max ticket: 5% off on food
- Easy cancellations up to 30 minutes before showtime.
- Users are automatically added to a waitlist if seats are sold out, without requiring user information.
- A flash message notifies the user of waitlist status.
- Backend: Flask (Python)
- Database: SQLite
- Frontend: HTML, CSS (extendable for future features)
-
Clone the repository:
git clone https://github.com/nishant-sheoran/CineAura.git cd CineAura
-
Create a virtual environment and activate it:
python -m venv venv source venv/bin/activate # For Linux/MacOS venv\Scripts\activate # For Windows
-
Install dependencies:
pip install -r requirements.txt
-
Run the application:
flask run
-
Open the application in your browser:
http://127.0.0.1:5000/
- Select a theater, movie, and ticket category (Gold/Max/General).
- Optionally, add food items (Popcorn/Sandwich).
- Confirm your booking and view the summary.
- Cancel your booking up to 30 minutes before showtime.
- If the screen is sold out, users are added to the waitlist directly without manual entry.
- A flash message informs users of their waitlist status.
The application uses SQLite for managing data. Below is a simplified schema:
-
Bookings
id
: Primary keytheater
: Theater namemovie
: Movie namescreen
: Screen type (Gold, Max, General)food_items
: Comma-separated string of food itemstotal_price
: Total price of the bookingbooking_time
: Time when the booking was madeseat_number
: Allocated seat numberbooking_id
: Unique alphanumeric booking IDcanceled
: Status (0 for active, 1 for canceled)
-
Seats
id
: Primary keytheater
: Theater namescreen
: Screen typetotal_seats
: Total seats in the screenbooked_seats
: Number of seats currently booked
-
Waitlist
id
: Primary keytheater
: Theater namemovie
: Movie namescreen
: Screen typejoin_time
: Time when added to the waitlist
- User Authentication: Implement login and signup features.
- Online Payments: Integrate payment gateways.
- Dynamic Pricing: Adjust ticket prices based on demand and availability.
- Reporting: Add admin dashboards for sales and performance tracking.
We welcome contributions to improve CineAura!
- Fork the repository.
- Create a new branch:
git checkout -b feature-name
- Commit your changes:
git commit -m "Added a new feature"
- Push to your branch:
git push origin feature-name
- Open a pull request.
This project is licensed under the MIT License. See the LICENSE file for details.
For questions or feedback, reach out at:
Nishant Sheoran
GitHub: nishant-sheoran
Krithi
GitHub: kri1105