Real-Time Flight Data Analysis & Dashboard

Job ID: 39238167

Budget: €30 – €250 EUR

Project Description:

We are looking for a developer to help us with a project that involves collecting, storing, and analyzing real-time flight data from an ADS-B API. The task will be to integrate the data, process it, and display it on a dashboard. The project can be broken down into the following key requirements:

Obtain Data from an API:

Collect flight data from an ADS-B API in real-time. The API will provide live data of aircraft, including their positions, timestamps, altitude, and other relevant information. This integration should be flexible enough to allow future migration to a different data source or database. API will be provided. An example of API data is attached.

Store Data in a Database:

The collected data should be saved in a database (SQLite is preferable at this stage). The system should be designed so that in the future it could support a different database, such as MySQL or PostgreSQL, with minimal changes to the code.

Ensure data is stored in an organized manner, including fields such as flight number, coordinates (latitude, longitude), altitude, timestamp, and other relevant details.

Display Real-Time Flights:

Develop a feature to display flights in real-time on a web interface or a dashboard. The dashboard should show flight positions, flight number, and relevant data on a map (using tools like Leaflet, Google Maps, or similar).

Calculate Runway Occupation Times:

Calculate the runway occupation times based on key coordinates (e.g., starting point, threshold, runway exits). This includes determining the time it takes for a plane to take off from the waiting point to the threshold, and for a plane to free the runway after landing.

The system should automatically deduce which runway the aircraft is using (for takeoff or landing) based on the coordinates.

Dashboard for Airport Data:

Create a dashboard where the user can see relevant flight information by airport. The dashboard should include key metrics and insights like the number of takeoffs, landings, runway occupation times, and more.

Playback of Flight Data:

Implement a playback feature that allows the user to view past flights' data (historical playback). Users should be able to select a time range and visualize the flight movements during that period.

Playback of Specific Flight Operations:

Enable playback of specific flight operations (such as takeoff, landing, or a particular flight) by allowing users to select a specific operation. The system should display the relevant data for the chosen operation, including coordinates, timestamps, and status updates.

Deployment to AWS:

The system should be designed and developed in a way that it can be deployed on AWS (Amazon Web Services). This includes setting up any necessary components like EC2, RDS, and S3 for scalable data storage and hosting.

Documentation for setting up and deploying the project on AWS is essential.

Code Requirements:

The code should be clean, well-documented, and modular to ensure it is maintainable and easy to extend in the future.

Provide a complete codebase, including all functions for data collection, storage, processing, and display, as well as instructions for deployment.

Skills Required:

Experience with API integration (specifically ADS-B or flight tracking APIs).

Proficiency in Python for data collection and processing.

Knowledge of databases (preferably SQLite, with the potential to scale to other systems like MySQL, PostgreSQL).

Experience with web development (to display data on a dashboard, e.g., using Flask, Django, or similar).

Familiarity with geospatial data (for calculating distances and determining runways using coordinates).

Experience with creating interactive dashboards and visualizing real-time data.

Experience with cloud deployment (AWS, EC2, RDS, S3).

Additional Notes:

The system should be flexible enough to switch data sources in the future, for example from an API to a direct database connection.

The final solution should be scalable, with the ability to handle large amounts of data and provide real-time updates.

A good level of documentation is required, both for the code and for deployment on AWS.

Consideration for future features or integrations should be part of the design to ensure ease of expansion.