LateCheckIn
A dashboard to follow live flights from any airport, with their routes drawn on a 3D globe.
Context: Briefing
LateCheckIn is a project I built to get my hands on REST APIs, FastAPI and React. You search for an airport, you see the flights heading there with their status (scheduled, in the air, landed) and their scheduled and estimated times, and their routes show up on a 3D globe you can spin around.
The data comes live from the AviationStack API, whose free plan is very limited, and that constraint drove most of the technical choices.
What I did: Objectives cleared
- A FastAPI backend that pulls flights from AviationStack, retries when a call fails, and stores them in SQLite through SQLAlchemy.
- A cache that never calls the API more than once a minute, and deduplication so the same flight is never stored twice.
- Autocomplete search over more than 7,000 airports, by name or IATA code, with the country’s flag next to each one.
- A React and TypeScript front end, with routes animated on a 3D globe in WebGL.
Hardest problem: Boss fight
A small API quota against live data
On a free plan, API calls run out fast, and live data makes you want to refresh all the time. So I put the SQLite database between the front end and the provider: the dashboard always reads its own data, and the API is called at most once a minute. If the quota runs out or the API stops answering, you keep the last known flights instead of an empty page.
Results: Rewards
- Real-time tracking with stable response times
- Designed and shipped in 2 months