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 moving theater company. The system supports seamless booking, automatic seat allocation, food order integration, and waitlist handling, offering a smooth experience for both customers and theater operators.
- Multi-screen support:
- 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 can join a waitlist if seats are sold out.
- Canceled tickets are reassigned to waitlisted users on a first-come, first-serve basis.
- 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, join the waitlist (available until 30 minutes before showtime).
- Tickets are reassigned to waitlisted users automatically upon cancellations.
The application uses SQLite for managing data. Below is a simplified schema:
-
Theaters
id
: Primary keytheater
: Name of the theatermovie
: Name of the moviescreen
: Name of the screenfood_items
: Name of the food itemstotal_price
: Final price of the bookingbooking_time
: Time of bookingseat_number
: Seat Numberbooking_id
: Booking IDcancelled
: Option to cancel the ticket
-
Seat Availability
id
: Primary keytheater
: Name of the theaterscreen
: Screen type (Gold, Max, General)total_seats
: Total seats availablebooked_seats
: Total booked seats
-
Waitlist
id
: Primary keytheater
: Name of the theatermovie
: Name of the moviescreen
: Name of the screenscreen_id
: Foreign key linking to a screenjoin_time
: Time of booking
- User Authentication: Implement login and # features.
- Online Payments: Integrate payment gateways.
- Dynamic #: 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