A comprehensive Java console application for managing baseball stadium seat reservations with real-time availability tracking, pricing tiers, and customer management.
- Stadium Management: 4 sections × 20 rows × 25 seats (2,000 total capacity)
- Dynamic Pricing: VIP ($150), Premium ($100), General ($50), Bleachers ($25)
- Real-time Availability: Live seat availability tracking
- Customer Management: Multi-reservation support per customer
- Reservation Lifecycle: Create, view, and cancel reservations
- Input Validation: Comprehensive data validation and error handling
- Bilingual Interface: Spanish language support
baseball-reservation-system/
├── src/
│ └── main/
│ ├── Main.java # Application entry point
│ ├── service/
│ │ ├── EstadioService.java # Stadium & seat management
│ │ └── ReservationManager.java # Reservation operations
│ ├── ui/
│ │ └── ConsoleInterface.java # User interface
│ └── util/
│ ├── InputValidator.java # Input validation
│ └── SectionPricing.java # Pricing management
└── bin/ # Compiled classes (auto-generated)
- Java 8 or later
- No external dependencies required
- Command line or IDE environment
- Clone/Download the project files
- Navigate to the project directory:
cd baseball-reservation-system - Compile all Java files:
javac -d bin -cp src src/main/*.java src/main/service/*.java src/main/ui/*.java src/main/util/*.java
- Run the application:
java -cp bin main.Main
- File → New → Project → Java
- Create the directory structure as shown above
- Copy all
.javafiles into their respective packages - Right-click on
Main.java→ Run 'Main.main()'
- File → New → Java Project
- Create packages:
main,main.service,main.ui,main.util - Copy files into respective packages
- Right-click on
Main.java→ Run As → Java Application
- Install Java Extension Pack
- Create directory structure and copy files
- Use the command line compilation steps above
- Hacer una reservación - Make a new reservation
- Cancelar reservación - Cancel existing reservation
- Ver detalles de reservación - View reservation details
- Ver asientos disponibles - Check seat availability
- Ver reservaciones por cliente - View customer's reservations
- Ver todas las reservaciones - View all system reservations
- Ver precios por sección - Display pricing information
- Salir - Exit application
- Select option
1from main menu - Enter customer name (minimum 2 characters, letters only)
- Choose section:
VIP,PREMIUM,GENERAL, orBLEACHERS - Select row number (1-20)
- Select seat number (1-25)
- Confirm reservation details and price
- Receive unique reservation ID
| Section | Price | Rows | Seats/Row | Total Seats |
|---|---|---|---|---|
| VIP | $150 | 20 | 25 | 500 |
| PREMIUM | $100 | 20 | 25 | 500 |
| GENERAL | $50 | 20 | 25 | 500 |
| BLEACHERS | $25 | 20 | 25 | 500 |
Compilation Errors:
- Ensure all files are in correct directories matching package structure
- Check Java version:
java -version(requires Java 8+) - Verify classpath includes all source directories
Runtime Errors:
ClassNotFoundException: Check classpath configuration- Import errors: Verify package declarations match directory structure
Input/Output Issues:
- Scanner conflicts: Restart application if input becomes unresponsive
- Character encoding: Ensure terminal supports Spanish characters
| Error | Cause | Solution |
|---|---|---|
| "Nombre inválido" | Invalid customer name | Use 2+ characters, letters only |
| "Sección inválida" | Wrong section name | Use: VIP, PREMIUM, GENERAL, BLEACHERS |
| "Asiento no disponible" | Seat already reserved | Choose different seat |
| "Reservación no encontrada" | Invalid reservation ID | Check ID format: RES#### |
- Fork the repository
- Create feature branch:
git checkout -b feature-name - Follow existing code style and package structure
- Add appropriate input validation for new features
- Test thoroughly with various input scenarios
- Submit pull request with clear description
This project is open source and available under the MIT License.
For questions or issues:
- Check the troubleshooting section above
- Verify system requirements and setup
- Review sample test scenarios
- Open an issue with detailed error description



