Skip to content

i-asim/flight-tracker

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 

Repository files navigation

✈️ Flight Tracker & Alerts

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.


📂 Project Structure

flight-tracker/ ├── frontend/ # Next.js app (React + TypeScript) ├── backend/ # Django project (REST API + Celery tasks) ├── docs/ # Architecture diagrams, API contract, onboarding guide └── README.md


⚙️ Prerequisites

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)

🚀 Setup Instructions

1. Clone the Repository

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.


---

About

Flight Tracker & Alerts is a full‑stack application designed to help users search flights, set custom alerts, and receive notifications when flight conditions change. It demonstrates API orchestration, database control, and modern frontend/backend integration using production‑ready technologies.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors