LateCheckIn
Un dashboard pour suivre les vols en direct depuis n’importe quel aéroport, avec leurs trajets affichés sur un globe en 3D.
Contexte : Briefing
LateCheckIn, c’est un projet que j’ai fait pour me faire la main sur les API REST, FastAPI et React. On cherche un aéroport, on voit les vols qui y arrivent avec leur statut (prévu, en vol, atterri) et leurs horaires prévus et estimés, et leurs trajets s’affichent sur un globe en 3D qu’on peut faire tourner.
Les données viennent en direct de l’API AviationStack, dont la version gratuite est très limitée, et c’est cette contrainte qui a guidé la plupart des choix techniques.
Réalisations : Objectifs remplis
- Un backend FastAPI qui récupère les vols depuis AviationStack, réessaie quand un appel échoue, et les stocke dans SQLite via SQLAlchemy.
- Un cache qui n’appelle jamais l’API plus d’une fois par minute, et un dédoublonnage pour ne jamais enregistrer deux fois le même vol.
- Une recherche avec autocomplétion sur plus de 7 000 aéroports, par nom ou par code IATA, avec le drapeau du pays à côté de chacun.
- Un front React et TypeScript, avec les trajets animés sur un globe 3D en WebGL.
Défi technique : Combat de boss
Un petit quota d’API face à des données en direct
Avec un forfait gratuit, les appels à l’API partent très vite, et des données en direct donnent envie de rafraîchir sans arrêt. J’ai donc placé la base SQLite entre le front et le fournisseur : le dashboard lit toujours ses propres données, et l’API n’est appelée qu’au plus une fois par minute. Si le quota est épuisé ou que l’API ne répond plus, on garde les derniers vols connus au lieu d’avoir une page vide.
Résultats : Récompenses
- Suivi en temps réel avec des temps de réponse stables
- Conçu et livré en 2 mois