https://github.com/alvincoded/theater-ticket-booking-system
A Java-based desktop application for booking musical theater tickets, featuring an intuitive GUI and robust ticket management system.
https://github.com/alvincoded/theater-ticket-booking-system
booking-seat booking-system database java javaswing musical mysql-database online-booking theater theatre ticket-booking ticketing-system
Last synced: about 1 month ago
JSON representation
A Java-based desktop application for booking musical theater tickets, featuring an intuitive GUI and robust ticket management system.
- Host: GitHub
- URL: https://github.com/alvincoded/theater-ticket-booking-system
- Owner: AlvinCoded
- License: apache-2.0
- Created: 2024-12-21T06:03:37.000Z (4 months ago)
- Default Branch: master
- Last Pushed: 2025-01-17T04:38:43.000Z (3 months ago)
- Last Synced: 2025-01-17T05:27:05.471Z (3 months ago)
- Topics: booking-seat, booking-system, database, java, javaswing, musical, mysql-database, online-booking, theater, theatre, ticket-booking, ticketing-system
- Language: Java
- Homepage:
- Size: 690 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# 🎭 Musical Theater Ticket Booking System
A comprehensive Java-based desktop application for booking musical theater tickets, featuring an intuitive GUI and robust ticket management system.## ✨ Features
### Core Functionality
- **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### Technical Features
- **MySQL Database Integration** for robust data management
- **Object-oriented design**
- **Responsive Swing GUI**
- **Real-time validation**
- **Error handling and user feedback**
## 📸 Screenshots
Not to worry, this UI will change in due time 😅. Currrently focusing more on functionality.View screenshots
![]()
![]()
![]()
![]()
## 🛠️ Prerequisites
- 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## 🎯 Future Enhancements
In this section, completed or achieved features so far will be marked with `✔️`
### Planned Features
- **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** 🌐### System Improvements
- 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 `✔️`## 🔍 Additional Features Needed
In this section, completed or achieved features so far will be marked with `✔️`
1. **Venue Management** `✔️`
- Seating layout visualization `✔️`
- Section-based pricing `✔️`
- Capacity management `✔️`2. **Customer Management**
- Customer profiles `✔️`
- Booking history
- Preferences tracking3. **Administrative Features**
- Staff access controls `✔️`
- Sales reporting `✔️`
- Inventory management
- Show management interface `✔️`4. **Marketing Integration**
- Promotional code system
- Email marketing integration
- Social media sharing5. **Support System**
- Ticket cancellation
- Refund processing
- Customer service interface## 📦 Installation (Follow carefully)
1. Clone the repository:
```bash
git clone https://github.com/AlvinCoded/theater-ticket-booking-system.git
```2. Navigate to the project directory:
```bash
cd theater-ticket-booking-system
```3. Set up MySQL Database by importing `musical_tickets.sql`.
4. 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` and `jfreechart-*`, in the `lib` folder5. Configure database connection:
- Open MusicalDataHandler.java
- Update the following constants with your MySQL credentials:
```java
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";
```6. Compile and run the application:
```bash
javac -cp "lib/*:." FinalGUI.java
java -cp "lib/*:." FinalGUI
```For Windows, use semicolons instead of colons:
```bash
javac -cp "lib/*;." FinalGUI.java
java -cp "lib/*;." FinalGUI
```## Some IDE-Specific Setup
Repeat these steps for the other required library JARs
### Eclipse
1. Right-click on project → Properties → Java Build Path
2. Click "Add External JARs"
3. Navigate to lib folder and select mysql-connector-java-*.jar### IntelliJ IDEA
1. File → Project Structure → Libraries
2. Click + → Java
3. Navigate to lib folder and select mysql-connector-java-*.jar### NetBeans
1. Right-click on project → Properties → Libraries → Add JAR/Folder
2. Navigate to lib folder and select mysql-connector-java-*.jar## 🤝 Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
## 📝 License
This project is licensed under the Apache License 2.0.
## 🙏 Acknowledgments
- Java Swing documentation
- JCommon documentation
- JDatePicker documentation
- Joda Time documentation
- JFreeChart documentation
- JavaFX documentation---
⚠️ **Note**: This project uses MySQL for data persistence. Ensure MySQL Server is running and properly configured before launching the application. For production use, additional security measures and features would be necessary.