Co-founder and Backend Engineer in Vooyai

Vooyai is an AI-Powered platform that can suggest destinations based on your preferences and desires, and can also generate itineraries for the places you want to visit, keeping into account the kind of activities you want to perform. I co-founded Vooyai with a colleague, and I developed and engineered the backend for it.

Development

This was my first time building this kind of system, and I had to learn multiple technologies. Our application stack involved the following technologies:

I focused on design and development of the backend for our website:

  • I built it using Node.js and Express, as we decided to use the same language in both frontend and backend. Later on, we used websockets via Socket.io to increase website responsivity when creating new discoveries and trip plans, reducing response time by about 60%.
  • I decided to use MongoDB as our database, and Mongoose as the ODM, using the storage provided on the MongoDB cloud with Atlas.
  • To retrieve images and geolocation, I created a small server using flask with different endpoints for place information, retrieved from different providers (Google, Mapbox and OpenStreetmap). We also used imagekit.io to cache images from different places all around the world, to increase response and reduce third-party API calls, ensuring all the used images were licensed for comercial use.
  • To deploy our backend I used Docker to containerize our application, with one container for the backend and another one for the places server, with the latter only being accesible locally. Using Nginx to set up a reverse proxy. Our backend was finally deployed on an AWS EC2 instance.
  • For user registration we used Firebase, and we also implemented OAuth autenthication for gmail users. After including OAuth authentication we notice an increase in registered users per day of about 40%.