Torna a Progetti
Nov 15, 2020
3 min read

MyFlight

MyFlight è un progetto personale per trovare voli al miglior prezzo, nato per testare Neo4J e database a grafo, con NestJS, Angular e docker-compose.

MyFlight è un progetto personale, non destinato alla produzione, progettato per aiutarti a trovare il volo al prezzo migliore 🚀

È nato come esperimento per testare Neo4J e approfondire il funzionamento dei database a grafo. Per realizzarlo, ho utilizzato NestJS, Angular e docker-compose, creando un sistema completo e facilmente avviabile.

Una delle funzionalità principali di MyFlight è la possibilità di personalizzare il criterio di selezione del viaggio basato sul numero di scali. L’utente, dopo aver scelto l’aeroporto di partenza e l’aeroporto di destinazione, deve scegliere tramite una select tra le seguenti opzioni:

  • Il viaggio più economico, indipendentemente dal numero di scali.
  • Nessuno scalo, per chi preferisce voli diretti.
  • Un massimo di uno o due scali, per bilanciare costi e comodità.

Questo progetto è stato un’opportunità unica per approfondire Neo4J, competenze che utilizzo tuttora nel mio lavoro quando devo selezionare il database più adatto alle applicazioni che sviluppiamo. Nonostante non sia stato scritto con i migliori ORM o tecniche avanzate, l’obiettivo era sperimentare, imparare e crescere professionalmente; e in questo ha pienamente centrato il segno.


Fun fact

Questo progetto nasce da una storia curiosa: durante un colloquio, mi venne chiesto di sviluppare un algoritmo per trovare il viaggio più economico tra due aeroporti e di consegnarlo entro tot giorni.

Mi trovai davanti a un dilemma: usare un approccio creativo, rischiando di sembrare impreparato, o adottare una soluzione standard come Dijkstra, apparendo come il furbone di turno. Una trappola. E francamente non mi piace essere giudicato su aspettative arbitrarie. A quel punto, ho avuto un’illuminazione:
“È da un po’ che volevo provare un database a grafo… perché non approfittarne?”

E il colloquio? Male. Consegnai comunque perché ero involontariamente in tempo, ma era chiaro che non era ciò che si aspettavano.

Ma non credo sarebbe potuta andare diversamente se avessi optato una tra le opzioni “sicure”: sarebbe stato come tirare una moneta. Cambiando strada invece ho imparato Neo4J e mi sono divertito 🚀 E chissà se non ho evitato un volo che non andava preso 🤣