---
# System prepended metadata

title: 'Requirements:'

---

# Requirements:

### Service (API) requirements:
1. Provide distance traveled by planes in the Italian airspace in the last: 1h, 6h, 24h.
2. Provide cumulative CO2 produced (estimated) by planes in the Italian airspace in the last: 1h, 6h, 24h.
3. Provide historic values of cumulative distance and cumulative CO2 emission statistics for a selectable interval of time, within the last 30 days. Historic values are daily/hourly values.
4. Provide a list of aircraft currently in the Italian airspace.
5. Provide a stream of coordinates of a specified aircraft in Italian airspace.
6. Provide a list of Italian airports:
    - icao24,
    - name (IATA)
7. Provide a stream of events filterable by (Italian) airport: 
    - takeoffs, 
    - landings.
8. Provide information regarding a specified aircraft in Italian airspace:
    - registration country,
    - operator,
    - registration number,
    - model

### Dashboard requirements:
1. Show cumulative distance traveled by planes in the Italian airspace in the last: 1h, 6h, 24h.
2. Show cumulative CO2 produced (estimated) by planes in the Italian airspace in the last: 1h, 6h, 24h.
3. Show historic values of cumulative distance and cumulative CO2 emission statistics for a selectable interval of time, within the last 30 days. Historic values are daily/hourly values.
4. Show a real-time list of events, filterable by Italian airport, regarding: departures, arrivals.
5. Show real-time position (as simple coordinates) of a user queried aircraft while inside the Italian airspace.
6. Show details regarding a user queried aircraft:
    - registration country,
    - operator,
    - registration number,
    - model.

### Optional requirements:
- Dashboard 30d history:
    - Let user select different coarseness of sums (day, hour).

### Requirement issues:

# Exposed API

| Endpoint | Method   | Parameters | Values   | Data needed |
| -------- | -------- | ---------- | -------- | -- |
| /distance | GET | timeframe {1h, 6h, 24h} | cumulative_distance | past and current coordinates of same aircraft, for all aircraft (past might just be 15 seconds) |
| /distance/history | GET | start_timestamp, stop_timestamp | array of values | x minutes (e.g. 5) distance sums for each x minute increment.
| /co2 | GET     | timeframe {1h, 6h, 24h} | cumulative_co2 | distance + potentially aircraft info for more accurate estimate |
| /co2/history | GET     | start_timestamp, stop_timestamp | array of values | x minutes co2 sums for each x minute increment.
| /aircraft | GET | - | array of icao24 | list of aircraft in italian territory at the moment |
| /aircraft/{code}/position | GET/websocket | - | current_position | current position of queried aircraft |
| /airports | GET | - | array of <icao24, name(?)> | database (could be static, e.g. from wikipedia) of Italian airports| 
| /airports/{code}/takeoffs | GET/websocket | - | array of <icao24, timestamp> | list of planes departed in the last x time (short as possible) from y airport |
| /airports/{code}/landings | GET/websocket | - | array of <icao24, timestamp> | list of planes arrived in the last x time (short as possible) to y airport  |
| /aircraft/{code}/info  | GET | - | registration country, model, operator, registration number of queried aircraft | |

