Trip Builder
Plateforme de recherche de vols pour trajets aller simple et aller-retour avec tri, filtres pratiques, autocomplete d'aeroports et generation automatisee de donnees via CLI.
Trip Builder est un service web concentre sur la construction d'itineraires pour un passager unique, avec une architecture orientee backend. Le projet a d'abord ete realise comme test technique PHP backend, puis a evolue vers un produit complet avec interface publique, logique de recherche et endpoints REST API simulant des integrations avec des services externes de voyage.
Du point de vue produit, la valeur cle est la rapidite et la clarte de recherche de vols: l'utilisateur definit points de depart/arrivee, dates, classe cabine et details passager, puis affine les resultats avec des criteres utiles sans perdre le contexte. La version en production est disponible sur trip-builder.tarasov.ca, et le code source est maintenu dans le depot GitHub.
#Logique de recherche aller simple et aller-retour
La plateforme supporte les trajets aller simple du point A vers le point B et les parcours aller-retour composes de deux segments (A vers B, puis B vers A). Le classement des resultats repose sur des priorites de reservation concretres: prix du billet, duree totale, plages de depart et plages d'arrivee.

Le meme modele de recherche reste disponible sur la page de resultats pour modifier rapidement les parametres sans revenir a l'ecran d'accueil.

#UX du formulaire: dates et autocomplete aeroports
La selection de dates utilise un calendrier adapte aux scenarios aller simple et aller-retour, ce qui limite les erreurs sur les combinaisons de depart/arrivee.

La saisie d'aeroports inclut une autocomplete pour retrouver plus vite les aeroports par code ou ville, surtout pour les destinations moins frequentes.

#Page de resultats et cartes de vols
La sortie de recherche est presentee sous forme de cartes par paires de villes, ce qui facilite la comparaison lorsque plusieurs combinaisons de routes existent pour la meme requete.

La presentation des cartes met en avant les informations les plus actionnables pour prendre une decision rapidement.

Un resume compact en haut conserve le contexte d'itineraire pendant la lecture d'une longue liste d'options.

#Filtres avances pour une meilleure pertinence
Les filtres permettent de reduire progressivement la liste sans reconstruire toute la requete. C'est particulierement utile pour optimiser selon confort, horaires ou preference compagnie.

Comme les filtres sont modulaires, il est possible d'ajouter des filtres metier personnalises pour enrichir l'experience de recherche.
#Generation automatisee des vols avec Noah CLI
Un outil CLI dedie (noah) gere la generation de datasets et les scripts operationnels. La commande flights:add peut injecter des enregistrements realistes avec aeroports depart/arrivee, dates, distances (calcul Vincenty), duree, note et cout derive de la route.
Pour une generation par defaut:
php noah flights:add

Pour une generation a grand volume:
php noah flights:add 10000

D'autres commandes operationnelles issues de la documentation sont php noah list, php noah help flights:add, php noah db:clear et php noah flights:cleaning.
#Architecture backend, installation et donnees operationnelles
L'application serveur est ecrite en PHP et separee en deux couches cooperantes: moteur web et REST API simulant des interactions avec services externes. L'installation du projet est simplifiee via le CLI (php noah install) documente dans le README.
La qualite de recherche de vols depend de jeux de reference fiables, notamment des modules de gestion aeroports et compagnies:


Le parcours de reservation est aussi couvert de bout en bout dans l'UI, pour relier resultat de recherche et intention de commande.

#Livraison, hebergement et optimisation des assets statiques
Le produit est a la fois versionne et heberge publiquement: code source sur GitHub et site en ligne sur trip-builder.tarasov.ca. La diffusion des assets statiques a ete optimisee via Amazon S3, ce qui ameliore la flexibilite de stockage et la vitesse de livraison des contenus non dynamiques.
Le projet inclut egalement une page 404 dediee pour conserver la continuite de navigation en cas d'URL invalide.

#Bilan
Trip Builder montre comment un projet axe backend PHP peut livrer une vraie valeur produit quand logique de recherche, generation de donnees et UI de filtrage sont pensees comme un seul systeme. En combinant planification sensible aux fuseaux, outillage CLI pour l'automatisation et pratiques d'hebergement production, la plateforme fournit une base evolutive pour les cas de recherche de vols ou pertinence des resultats et maintenabilite operationnelle sont toutes deux critiques.