Skip to content

youssef509/platinum-airlines

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

3 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Platinum Airlines 🌐

Your one-stop solution for all flight booking needs - A modern, full-stack airline booking and management system built with Spring Boot and React.

Java Spring Boot MySQL React

πŸ“‹ Overview

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.

πŸ—οΈ Architecture

Backend

  • Framework: Spring Boot 4.0.0-SNAPSHOT
  • Language: Java 21
  • Database: MySQL
  • ORM: Hibernate/JPA
  • Security: Spring Security with OAuth2 support

Frontend

  • Framework: React
  • UI: Modern, responsive design
  • API Communication: RESTful APIs

πŸ—„οΈ Database Schema

The system is built around the following core entities:

User Management

  • 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.)

Flight Management

  • 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 System

  • 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

🌟 Key Features

User Features

  • βœ… User registration and authentication (Email/OAuth2)
  • βœ… Flight search and filtering
  • βœ… Real-time seat availability
  • βœ… Booking management
  • βœ… Multiple passenger support
  • βœ… Booking history and status tracking

Administrative Features

  • βœ… Flight management (Create, Update, Cancel)
  • βœ… Airport management
  • βœ… User management and role assignment
  • βœ… Booking oversight
  • βœ… System analytics and reporting

Technical Features

  • βœ… RESTful API architecture
  • βœ… JWT-based authentication
  • βœ… OAuth2 social login integration
  • βœ… Role-based access control (RBAC)
  • βœ… Email verification system
  • βœ… Secure password encryption
  • βœ… Transaction management

πŸš€ Getting Started

Prerequisites

  • Java 21 or higher
  • Maven 3.6+
  • MySQL 8.0+
  • Node.js 18+ (for React frontend)
  • npm or yarn

Backend Setup

  1. Clone the repository

    git clone https://github.com/youssef509/platinum-airlines.git
    cd platinum-airlines
  2. 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
  3. Build the project

    ./mvnw clean install
  4. Run the application

    ./mvnw spring-boot:run

The backend API will be available at http://localhost:8082

Frontend Setup

(Coming soon - React application)

cd frontend
npm install
npm start

πŸ“š API Documentation

The 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)

πŸ” Authentication Methods

  • Email/Password: Traditional authentication
  • OAuth2 Providers:
    • Google
    • Facebook
    • Other social providers

πŸ› οΈ Technology Stack

Backend Technologies

Technology Purpose Version
Spring Boot Application Framework 4.0.0-SNAPSHOT
Java Programming Language 21
MySQL Database 8.0+
Hibernate ORM Framework 7.1.6
Spring Security Security & Authentication Latest
Maven Build Tool 3.6+
Lombok 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

Frontend Technologies (Planned)

Technology Purpose
React UI Framework
React Router Routing
Axios HTTP Client
Redux State Management
Material-UI Component Library

Development Tools

Tool Purpose
VS Code IDE
Git Version Control
Postman API Testing

πŸ“¦ Project Structure

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

🎯 Roadmap

  • 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

🀝 Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

πŸ“ License

This project is licensed under the MIT License - see the LICENSE file for details.

πŸ‘€ Author

Youssef Ahmed

πŸ“§ Contact

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.

About

A modern, full-stack airline booking and management system built with Spring Boot and React.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages