A comprehensive Java-based desktop application for booking musical theater tickets, featuring an intuitive GUI and robust ticket management system.
- Interactive GUI with multi-panel navigation
- Musical Catalog with detailed show information
- Category Filtering for easy show browsing
- Dynamic Schedule Display with available show times
- Smart Ticket Management with real-time availability tracking
- Flexible Pricing System with automatic discounts
- Day Availability Checker to validate show schedules
- Digital Receipt Generation with timestamp and booking details
- MySQL Database Integration for robust data management
- Object-oriented design
- Responsive Swing GUI
- Real-time validation
- Error handling and user feedback
Not to worry, this UI will change in due time 😅. Currrently focusing more on functionality.
- Java Development Kit (JDK) 17 or higher
- Any Java IDE (Eclipse, IntelliJ IDEA, or NetBeans)
- MySQL Server 8.0 or higher
- MySQL Connector/J JDBC Driver
In this section, completed or achieved features so far will be marked with ✔️
- Online Payment Integration 💳
- User Authentication System 🔐
✔️
- Email Confirmation 📧
- Mobile-Responsive Design 📱
✔️
- Seat Selection Interface 💺
✔️
- Season Pass Management 🎫
- Group Booking Discounts 👥
- Loyalty Program ⭐
- Show Reviews & Ratings ⭐
- Multi-language Support 🌐
- Database integration for robust data management
✔️
- API implementation for third-party integrations
- Performance optimization for large-scale bookings
✔️
- Enhanced security features
✔️
- Automated backup system
- Analytics dashboard
✔️
In this section, completed or achieved features so far will be marked with ✔️
-
Venue Management
✔️
- Seating layout visualization
✔️
- Section-based pricing
✔️
- Capacity management
✔️
- Seating layout visualization
-
Customer Management
- Customer profiles
✔️
- Booking history
- Preferences tracking
- Customer profiles
-
Administrative Features
- Staff access controls
✔️
- Sales reporting
✔️
- Inventory management
- Show management interface
✔️
- Staff access controls
-
Marketing Integration
- Promotional code system
- Email marketing integration
- Social media sharing
-
Support System
- Ticket cancellation
- Refund processing
- Customer service interface
- Clone the repository:
git clone https://github.com/AlvinCoded/theater-ticket-booking-system.git
- Navigate to the project directory:
cd theater-ticket-booking-system
-
Set up MySQL Database by importing
musical_tickets.sql
. -
Add MySQL Connector and the other required JARs to project:
- Download MySQL Connector/J, JCommon, JDatePicker, Joda Time and JFreeChart from their official websites
- Create a
lib
folder in the project root - Place the
mysql-connector-java-*.jar
,jcommon-*.jar
,jdatepicker-*.jar
,joda-time-*.jar
andjfreechart-*
, in thelib
folder
- Configure database connection:
- Open MusicalDataHandler.java
- Update the following constants with your MySQL credentials:
private static final String DB_URL = "jdbc:mysql://localhost:3306/musical_tickets";
private static final String USER = "your_username";
private static final String PASS = "your_password";
- Compile and run the application:
javac -cp "lib/*:." FinalGUI.java
java -cp "lib/*:." FinalGUI
For Windows, use semicolons instead of colons:
javac -cp "lib/*;." FinalGUI.java
java -cp "lib/*;." FinalGUI
Repeat these steps for the other required library JARs
- Right-click on project → Properties → Java Build Path
- Click "Add External JARs"
- Navigate to lib folder and select mysql-connector-java-*.jar
- File → Project Structure → Libraries
- Click + → Java
- Navigate to lib folder and select mysql-connector-java-*.jar
- Right-click on project → Properties → Libraries → Add JAR/Folder
- Navigate to lib folder and select mysql-connector-java-*.jar
Contributions are welcome! Please feel free to submit a Pull Request.
This project is licensed under the Apache License 2.0.
- Java Swing documentation
- JCommon documentation
- JDatePicker documentation
- Joda Time documentation
- JFreeChart documentation
- JavaFX documentation