A premium, full-stack flight booking and fleet management platform. Built with a robust Django REST Framework (DRF) backend and a dynamic, responsive React + Tailwind CSS frontend powered by Vite.
This system supports dual roles: Regular Passengers (who can search flights, book seats or entire charter planes, make payments, download e-tickets, and leave feedback) and Administrators (who manage flights, aircraft fleets, airlines, cancellation requests, and view feedback).
Want to showcase the beauty of your application? Follow these steps to add screenshots directly to this README:
- Create a folder named
imagesin the root directory. - Save your screenshots there (e.g.,
dashboard.png,booking.png). - Add them to this README using the markdown syntax:

(Placeholders below - replace with your actual images once uploaded)
| Search & Book Flights | Admin Dashboard |
|---|---|
- Framework: Django 6.0 & Django REST Framework (DRF)
- Database: SQLite (Development) / Easily configurable for PostgreSQL/MySQL
- Authentication: JWT & Token-based Authentication
- Core Packages:
django-cors-headers,django-filter,pillow,djangorestframework-simplejwt
- Framework: React 19 (Vite)
- Styling: Tailwind CSS v4 & PostCSS
- Icons: Lucide React
- Routing: Client-side state-driven dynamic views
- Flight Search & Filters: Search for flights based on origin/destination cities, flight type (domestic/international), and date.
- Dual Booking Types:
- Seat Booking: Select cabin class (Economy/Business) and specify passenger details.
- Charter Booking: Hire an entire private aircraft by specifying flight hours and purpose.
- Automatic Ticket Generation: Generates a unique booking reference (
SR-XXXXXX) and a structured E-ticket (TK-YYYYMMDD-XXXX) complete with unique numbers and placeholders for QR codes/PDFs. - Multiple Payment Gateways: Simulates card payments, bank transfers, and mobile wallets like JazzCash and EasyPaisa.
- Cancellation Panel: Request ticket cancellations with passenger-submitted reasons.
- Feedback & Rating System: Rate flights from 1 to 5 stars with written comments.
- Airlines & Fleet Management: Register airlines, upload brand logos, set signature theme colors, and manage the aircraft fleet (registration, capacity, charter/seat pricing).
- Flight Scheduling: Create and schedule flights, auto-calculate durations, and track seat availability states (
available,limited,full). - Booking & Cancellation Control: View all booking requests, and process cancellation requests (Approve/Reject) with admin notes.
- Feedback Insights: Read all passenger feedback and star ratings in a dedicated tab.
AeroplaneBookingSystem/
├── AirBackend/ # Django REST Framework Backend
│ ├── env/ # Python Virtual Environment (ignored in Git)
│ └── myproject/ # Django Project Root
│ ├── bookings/ # Booking App (Bookings, Tickets, Payments, Cancellations)
│ ├── flights/ # Flight App (Airlines, Aircrafts, Flights, Feedbacks)
│ ├── users/ # Custom User Auth App
│ ├── myproject/ # Django Settings & Routing
│ ├── db.sqlite3 # Database file (ignored in Git)
│ └── requirements.txt # Backend dependencies
├── UI/ # React Frontend
│ └── vite-project/ # Vite + React app
│ ├── src/
│ │ ├── components/ # Reusable UI elements (Navbar, Toast, PrivateRoute)
│ │ ├── context/ # Auth Context for State management
│ │ ├── pages/ # Page components (AdminPage, AuthPage, FlightsPage, etc.)
│ │ └── App.jsx # Application entrypoint & view switcher
│ └── package.json # Frontend dependencies
└── README.md # This documentation file
Follow these instructions to get the application running on your local machine.
- Python (version 3.10 or higher recommended)
- Node.js (version 18 or higher recommended) & npm
git clone https://github.com/MananAli05/OnlineAeroplaneBookingSystem.git
cd OnlineAeroplaneBookingSystem- Navigate to the backend directory:
cd AirBackend - Create and Activate a Virtual Environment:
- Windows (CMD/PowerShell):
python -m venv env .\env\Scripts\activate
- macOS / Linux:
python3 -m venv env source env/bin/activate
- Windows (CMD/PowerShell):
- Navigate to the Django project home:
cd myproject - Install Python dependencies:
pip install -r requirements.txt
- Run database migrations:
python manage.py migrate
- Create an Admin Superuser (to access the backend panel and admin role in UI):
python manage.py createsuperuser
- Start the development server:
The backend API will run on
python manage.py runserver
http://127.0.0.1:8000/
Open a new terminal window/tab:
- Navigate to the React project directory:
cd UI/vite-project - Install node packages:
npm install
- Start the development server:
The client application will run on
npm run dev
http://localhost:5173/
Distributed under the MIT License. See LICENSE for more information.