A comprehensive full-stack web application for booking sports complexes, managing real-time court schedules, tracking equipment inventories, and generating administrative reports.
- Facility & Court Discovery: Advanced search and filtering tools for finding sports facilities by type, city, and real-time availability.
- Interactive Scheduling: Dynamic calendar view utilizing structured time slots with built-in validation logic to prevent double-booking.
- Order & Reservation Management: Live status tracking system allowing users and staff to manage, update, or cancel bookings smoothly.
- Equipment & Inventory Tracking: Catalog management linking specific equipment to customer orders with reactive filtering capabilities.
- Dynamic PDF Reporting: Direct generation and download of structured reports (occupancy rates and item usages) leveraging
pdfMake. - Interactive Visuals: Integrated map locations and rich image galleries for an enhanced user experience.
| Layer | Technologies |
|---|---|
| Frontend | Angular, TypeScript, Bootstrap, pdfMake |
| Backend | Java, Spring Boot, Spring Data JPA / Hibernate |
| Database | MySQL |
| Architecture | RESTful API, Component-driven Modular Design |
- Authentication & Authorization: Role-based security workflows handling regular users, facility employees, and system administrators.
- Reservation Core: Core booking engine managing court slots, filters, and state validations.
- Inventory & Orders: Equipment handling and status updates per order line item.
- Reports Engine: Data aggregation and export pipeline for administrative PDF summaries.
Make sure you have the following installed on your machine:
- Node.js & Angular CLI
- Java JDK (17+) & Maven
- MySQL Server
Create a MySQL database and update your application.properties configuration in the backend:
spring.datasource.url=jdbc:mysql://localhost:3306/your_database_name
spring.datasource.username=your_username
spring.datasource.password=your_passwordcd backend
mvn spring-boot:runcd frontend
npm install
ng serve