Airport Tracking is a Dash-FastAPI based web application which allows users to check different airports information. It features various sections like Airplanes, Airports and Schedules along with graphs and a map. Requests for information are made to an external API using airlabs API.
- Python 3.12
- Poetry for Python dependency management
- Postgres database
- Virtual environment (optional but recommended)
- AIRLAB API KEY (which has a free tier with 1000 request / month) :https://airlabs.co/
- Clone the repository or download the source code.
- (Optional) Create a virtual environment:
python -m venv venv
venv\Scripts\activate
3.Install dependencies using Poetry:
poetry install
4.Set up your environment variables in the .env file , including the Postgres database settings.
- DB_NAME
- DB_USERNAME
- DB_PASSWORD
- DB_HOST (this is set to 'db' in docker-compose file)
- DB_PORT
- AIRLAB_API_KEY
- API_HOTS (should be set to 'fastapi')
5.Create fastapi image from Dockerfile:
docker build -t fastapi02 .
6.Create dash image from Dockerfile:
docker build -f dashboard/Dockerfile -t dash02 .
7.Start the app :
docker compose up --build
After installation, access the web application at http://localhost:8050. Each user search for an airport or schedule are auto-saved in the database based on the specific API call.
- Search for airports based on standard IATA_CODES
- Search for airports schedules
- Visualize graphs for airports, schedules and airplanes
- Visualize airports locations on a map
- Dash
- FastAPI
- SQLAlchemy
- Postgres as the database backend
- Poetry for dependency management
Contributions to airport-tracking are welcome. Please follow the coding standards and contribute to tests for new features.
This project is licensed under the MIT License - see the LICENSE file for details.