Back to Projects
Nov 15, 2020
3 min read

MyFlight

MyFlight is a personal project to find flights at the best price, created to test Neo4J and graph databases, using NestJS, Angular, and docker-compose.

MyFlight is a personal project, not intended for production, designed to help you find flights at the best price 🚀.

It was born as an experiment to test Neo4J and explore the capabilities of graph databases. For its implementation, I used NestJS, Angular, and docker-compose, creating a fully functional and easy-to-run system.

One of the main features of MyFlight is the ability to customize the flight selection criteria based on the number of layovers. After selecting the departure and destination airports, the user can choose from the following options via a dropdown:

  • The cheapest flight, regardless of the number of layovers.
  • Direct flights only, for those who prefer non-stop journeys.
  • A maximum of one or two layovers, balancing cost and convenience.

This project was a unique opportunity to deepen my knowledge of Neo4J, skills that I still use in my work when selecting the most suitable database for our applications. Although it wasn’t built using the best ORMs or advanced techniques, that wasn’t the goal. The aim was to experiment, learn, and grow professionally—and in that regard, it was a complete success.


Fun fact

This project has a curious backstory: during a job interview, I was asked to develop an algorithm to find the cheapest flight between two airports and deliver it within a few days.

I found myself in a dilemma: should I use a creative approach, risking appearing unprepared, or adopt a standard solution like Dijkstra, risking being seen as someone trying to game the system with a basic trick? A trap. And frankly, I don’t like being judged based on arbitrary expectations. That’s when inspiration struck:
“I’ve been wanting to try a graph database for a while… why not take this opportunity?”

And the interview?
It didn’t go well. I delivered it anyway, as I somehow managed to finish on time, but it was clear it wasn’t what they were expecting.

Still, I doubt it would’ve gone any better if I had chosen one of the “safe” options—it would have been like flipping a coin. Instead, I took a different path, learned Neo4J, and had a great time 🚀. And who knows, maybe I dodged a flight that wasn’t worth taking 🤣