A full‑stack application that allows users to search flights, set alerts for price or status changes, and receive notifications when conditions are met.
Built with Next.js (frontend), Django REST Framework (backend), PostgreSQL (database), and integrates with the OpenSky Network API for live flight data.
flight-tracker/ ├── frontend/ # Next.js app (React + TypeScript) ├── backend/ # Django project (REST API + Celery tasks) ├── docs/ # Architecture diagrams, API contract, onboarding guide └── README.md
Before you begin, ensure you have the following installed:
- Node.js (>= 18.x) and npm or yarn
- Python (>= 3.10) and pip
- PostgreSQL (>= 14.x)
- Redis (for Celery background tasks)
- Git (for version control)
- An account with OpenSky Network (optional, for higher API limits)
git clone https://github.com/your-username/flight-tracker.git
cd flight-tracker
2. Backend Setup (Django)
cd backend
python -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate
pip install -r requirements.txt
Create a .env file in backend/:
SECRET_KEY=your_django_secret
DEBUG=True
DATABASE_URL=postgres://user:password@localhost:5432/flighttracker
REDIS_URL=redis://localhost:6379
OPENSKY_API_URL=https://opensky-network.org/api
Run migrations:
python manage.py migrate
Start the backend server:
python manage.py runserver
Start Celery worker (for background tasks):
celery -A flighttracker worker -l info
3. Frontend Setup (Next.js)
cd frontend
npm install
Create a .env.local file in frontend/:
NEXT_PUBLIC_API_URL=http://localhost:8000/api
Start the frontend:
npm run dev
4. Database Setup (PostgreSQL)
Create a database:
CREATE DATABASE flighttracker;
Ensure credentials match your DATABASE_URL in .env.
5. Access the App
Frontend: http://localhost:3000
Backend API: http://localhost:8000/api
📡 API Integration
OpenSky Network API is used to fetch live flight data.
Data is normalized and cached in the Flights table.
Alerts are triggered when conditions (e.g., price drop, flight status) are met.
🛠 Features
User authentication (JWT)
Flight search (origin, destination, date)
Alerts system (price/status conditions)
Notifications (email/SMS via Celery tasks)
Admin dashboard for managing flights and alerts
📖 Documentation
See docs/architecture-diagram.png for system overview.
See docs/api-contract.md for request/response examples.
See docs/onboarding-guide.md for developer setup notes.
🏗 Deployment
Frontend → Vercel
Backend → Render / Railway / DigitalOcean
Database → Managed PostgreSQL instance
Background tasks → Celery worker + Redis
📌 Notes
Free tier of OpenSky API has rate limits (~1 request per 10 seconds).
Use caching and scheduled tasks to avoid hitting limits.
For demo purposes, seed the DB with sample flight data.
📜 License
MIT License – feel free to use and adapt for learning or portfolio purposes.
---