๐๏ธ A fast, user-friendly web platform for seamless movie ticket booking
- ๐ About the Project
- ๐ฏ Objectives
- โจ Key Features
- ๐งฉ System Architecture
- ๐งญ User Booking Flow
- ๐ฅ Demo & Screenshots
- ๐ ๏ธ Tech Stack
- ๐ Project Structure
- ๐๏ธ Database Design Overview
- โ๏ธ Setup & Installation
- ๐ Usage Guide
- ๐งช Sample Test Scenario
- ๐ API Endpoints
- ๐ Security Considerations
- ๐ง Challenges & Learnings
- ๐ฎ Future Enhancements
- ๐ค Contributing
- ๐ License
- ๐ฉโ๐ป Author
ShowBuzz is a web-based movie ticket booking system that allows users to browse movies, select theaters and showtimes, choose seats interactively, and book tickets online.
The platform includes a role-based admin panel to manage movies, theaters, schedules, and bookings efficiently.
This project was developed as an academic full-stack web application inspired by real-world platforms like BookMyShow, focusing on frontend development, backend APIs, and database management.
- Build a realistic online movie ticket booking platform
- Implement user and admin role-based access
- Design an interactive seat selection system
- Practice frontendโbackend integration
- Understand database-driven web applications
- Secure login and logout
- Browse movies with details
- View theaters and showtimes
- Interactive seat selection
- Ticket booking and confirmation
- View booking history
- Add / Edit / Delete movies
- Manage theaters and showtimes
- View and manage all bookings
- Basic user management
High-level architecture: Users โ Frontend โ PHP Backend API โ MySQL Database
Flow Overview
- User โ Frontend (HTML/CSS/JS)
- Frontend โ PHP Backend API
- Backend โ MySQL Database
- User logs into the system
- Browses available movies
- Selects a movie and preferred showtime
- Chooses theater and seat(s)
- Confirms ticket quantity
- Booking details are stored in the database
- User receives booking confirmation
This flow mimics real-world movie ticket booking platforms
Visual walkthrough of the end-to-end ticket booking process
This flowchart illustrates the complete user journey in ShowBuzz โ from opening the application and authentication to seat selection and final booking confirmation.
- User opens the application
- System checks authentication status
- If not authenticated โ redirect to login
- Authenticated user browses available movies
- User selects a movie, theater, and showtime
- Seats are chosen from the interactive layout
- Booking is confirmed
- System displays booking confirmation and ends the flow
A complete walkthrough of the ShowBuzz user and admin experience
Secure access for users and administrators
Users and admins log in through a clean, role-based authentication interface
Browse trending and recommended movies at a glance
Displays popular movies with posters, ratings, and booking options
Explore movie information before booking
Detailed view including movie description, ratings, language, duration, and trailer
Choose your preferred theater and showtime
Lists available theaters with multiple show timings for the selected movie
Select how many seats you want to book
Simple interface to choose ticket count and seating category
Interactive real-time seat booking
Visual seat layout showing available, selected, and booked seats
Review and confirm your ticket details
Final booking summary with movie, theater, seats, timing, and total cost
Add, edit, and manage movies
Admin interface to manage movie listings and metadata
Control theater listings
Admins can add, edit, or remove theaters from the system
Monitor all user bookings
Complete booking history with user, movie, theater, seats, and payment details
- HTML5
- CSS3
- Bootstrap 5.3.3
- JavaScript (ES6)
- LocalStorage
- PHP 7.4+
- MySQL
- REST-style API architecture
- XAMPP / WAMP
- VS Code
Movie_tickets_booking/
โโโ backend/
โ โโโ api.php # Backend API & DB operations
โโโ admin.html # Admin dashboard
โโโ login.html # User authentication
โโโ home.html # Movie listing
โโโ movie_details.html # Movie details & showtimes
โโโ theater_selection.html # Theater & showtime selection
โโโ seat_selection.html # Seat booking UI
โโโ ticket_selection.html # Ticket quantity selection
โโโ confirmation.html # Booking confirmation
โโโ script.js # Main JavaScript logic
โโโ styles.css # Custom styles
โโโ assets/
โ โโโ banner/
โ โโโ architecture/
โ โโโ screenshots/
โโโ README.md # Original README (kept unchanged)
The system uses a relational MySQL database with the following core tables:
- users โ stores user credentials and roles
- movies โ movie details such as title, genre, duration
- theaters โ available theaters and locations
- showtimes โ movie schedules
- seats โ seat availability tracking
- bookings โ user booking records
The schema is designed to maintain data integrity and support efficient booking operations.
- XAMPP / WAMP / MAMP
- PHP 7.4+
- MySQL
- Modern web browser
-
Clone the repository
git clone <repository-url> cd Movie_tickets_booking
-
Create the database
- Open phpMyAdmin (http://localhost/phpmyadmin)
- Create a database named
bookmyshow - Import the provided SQL file (if included with the project)
-
Configure backend database connection
- Open
backend/api.phpand update the DB credentials:
$conn = new mysqli("localhost", "username", "password", "bookmyshow"); if ($conn->connect_error) { die("Connection failed: " . $conn->connect_error); }
- Open
-
Run the project locally
- Place the project folder inside
htdocs(XAMPP) orwww(WAMP) - Start Apache and MySQL from your stack manager
- Open in browser:
http://localhost/Movie_tickets_booking/login.html
- Place the project folder inside
- Login as user or admin
- Browse available movies
- Select theater, showtime, and seats
- Confirm booking
- View booking confirmation
Username: admin
Password: admin
Scenario: Booking 2 tickets for an evening show
- Movie: Inception
- Theater: PVR Cinemas
- Showtime: 7:30 PM
- Seats Selected: B5, B6
- User: Registered user
- Result: Booking successfully stored and confirmation displayed
This scenario was used to validate end-to-end functionality.
| Method | Endpoint | Description |
|---|---|---|
| POST | backend/api.php?action=login |
User authentication |
| GET | backend/api.php?action=movies |
Fetch movies |
| POST | backend/api.php?action=book |
Book tickets |
| GET | backend/api.php?action=bookings |
View bookings (admin) |
| POST | backend/api.php?action=add_movie |
Add movie (admin) |
Note: Adjust the base path if your server root is different.
- Role-based access control for admin features
- Client-side validations for form inputs
- Backend validation before database operations
- Admin actions restricted via API checks
- Database credentials stored only on server-side
Note: Password hashing and advanced security can be added in future iterations.
- Implementing interactive seat selection
- Frontendโbackend communication using APIs
- Handling role-based access (admin vs user)
- Database design for bookings and seats
- Online payment gateway integration
- Email/SMS ticket confirmation
- Password hashing and enhanced security
- Search and filter by genre or language
- Booking cancellation and refund system
- Mobile application version
- Fork the repository
- Create a feature branch
- Commit your changes
- Open a Pull Request
This project is licensed under the MIT License.
Gudiwada Sruthi
B.Tech โ Computer Science & Engineering
SRM University, AP












