Your one-stop solution for all flight booking needs - A modern, full-stack airline booking and management system built with Spring Boot and React.
Platinum Airlines is a comprehensive flight booking platform that enables users to search for flights, make reservations, manage bookings, and handle passenger information. The system supports multiple authentication methods and provides role-based access control for different user types.
- Framework: Spring Boot 4.0.0-SNAPSHOT
- Language: Java 21
- Database: MySQL
- ORM: Hibernate/JPA
- Security: Spring Security with OAuth2 support
- Framework: React
- UI: Modern, responsive design
- API Communication: RESTful APIs
The system is built around the following core entities:
-
User: Customer accounts with profile information
- Email & phone authentication
- OAuth2 integration (Google, Facebook, etc.)
- Email verification
- Role-based permissions
-
Role: User roles and permissions (Admin, Customer, Agent, etc.)
-
Airport: Airport information
- Name, IATA code
- City and Country (enum-based)
-
Flight: Flight details
- Origin and destination airports
- Departure and arrival times
- Flight status (Scheduled, Delayed, Cancelled, Completed)
- Available seats and pricing
-
Booking: Flight reservations
- User association
- Booking status (Confirmed, Pending, Cancelled)
- Passenger information
- Payment details
-
Passenger: Individual passenger data
- Personal information
- Passenger type (Adult, Child, Infant)
- Travel document details
- β User registration and authentication (Email/OAuth2)
- β Flight search and filtering
- β Real-time seat availability
- β Booking management
- β Multiple passenger support
- β Booking history and status tracking
- β Flight management (Create, Update, Cancel)
- β Airport management
- β User management and role assignment
- β Booking oversight
- β System analytics and reporting
- β RESTful API architecture
- β JWT-based authentication
- β OAuth2 social login integration
- β Role-based access control (RBAC)
- β Email verification system
- β Secure password encryption
- β Transaction management
- Java 21 or higher
- Maven 3.6+
- MySQL 8.0+
- Node.js 18+ (for React frontend)
- npm or yarn
-
Clone the repository
git clone https://github.com/youssef509/platinum-airlines.git cd platinum-airlines -
Configure the database
Update
src/main/resources/application.properties:spring.datasource.url=jdbc:mysql://localhost:3306/platinumairline spring.datasource.username=your_username spring.datasource.password=your_password
-
Build the project
./mvnw clean install
-
Run the application
./mvnw spring-boot:run
The backend API will be available at http://localhost:8082
(Coming soon - React application)
cd frontend
npm install
npm startThe API follows RESTful conventions and will include:
/api/auth/*- Authentication endpoints/api/flights/*- Flight search and management/api/bookings/*- Booking operations/api/users/*- User profile management/api/airports/*- Airport information
(Detailed API documentation will be added with Swagger/OpenAPI)
- Email/Password: Traditional authentication
- OAuth2 Providers:
- Other social providers
| Technology | Purpose | Version |
|---|---|---|
| Application Framework | 4.0.0-SNAPSHOT | |
| Programming Language | 21 | |
| Database | 8.0+ | |
| ORM Framework | 7.1.6 | |
| Security & Authentication | Latest | |
| Build Tool | 3.6+ | |
| Code Generation | Latest |
Additional Backend Libraries:
- Spring Data JPA - Database access and repository pattern
- ModelMapper - Object mapping and DTO conversions
- OAuth2 Client - Social authentication integration
- Jakarta Persistence - JPA specification implementation
- HikariCP - High-performance JDBC connection pool
| Technology | Purpose |
|---|---|
| UI Framework | |
| Routing | |
| HTTP Client | |
| State Management | |
| Component Library |
| Tool | Purpose |
|---|---|
| IDE | |
| Version Control | |
| API Testing |
platinum-airlines/
βββ src/
β βββ main/
β β βββ java/com/platinum/platinumAirline/
β β β βββ config/ # Configuration classes
β β β βββ controller/ # REST controllers
β β β βββ entities/ # JPA entities
β β β βββ dtos/ # Data Transfer Objects
β β β βββ enums/ # Enumerations
β β β βββ exceptions/ # Custom exceptions
β β β βββ repo/ # JPA repositories
β β β βββ security/ # Security configuration
β β β βββ services/ # Business logic
β β βββ resources/
β β βββ application.properties
β βββ test/ # Unit and integration tests
βββ frontend/ # React application (coming soon)
βββ pom.xml
βββ README.md
- Complete REST API implementation
- Implement payment gateway integration
- Build React frontend
- Add email notification system
- Implement flight recommendation engine
- Add multi-language support
- Mobile application (iOS/Android)
- Admin dashboard with analytics
- Loyalty program system
Contributions are welcome! Please feel free to submit a Pull Request.
This project is licensed under the MIT License - see the LICENSE file for details.
Youssef Ahmed
- GitHub: @youssef509
For questions or support, please open an issue on GitHub.
Note: This project is currently under active development. Features and documentation will be updated regularly.