Week #6

Week #6 #

Specify here all the necessary links to your website, application installer, final demo, etc.

Final deliverables #

Project overview #

EasyTravel — a web platform for semantic search and personalized recommendations of interesting places. The backend is built on FastAPI and provides authentication, user profile management, search, and recommendations based on interests. The frontend, built with Next.js, allows users to register, view recommendations, and save favorite places.

Features #

  • User registration and authentication with JWT.
  • Updating profile data: city, interests, additional interests, and “about me” section.
  • Saving and retrieving favorite POIs via /api/user/favorites.
  • Retrieving main user interests via /api/user/interests.
  • Semantic search and recommendations based on interests and city.
  • Docker environment for deploying backend, frontend, and database.

On the frontend:

  • Redesigned and simplified interface — unnecessary elements and buttons removed, more logical and user-friendly layout.
  • Registration button on the login page and login button on the registration page.
  • Filter by the user’s top three interests on the recommendations page.
  • Saving places to favorites from search and recommendations sections; separate favorites page.
  • Displaying results on a map and the ability to edit the profile.

Tech stack #

  • Backend: FastAPI, PostgreSQL, SQLAlchemy, Pydantic, Docker
  • Frontend: Next.js, React, Tailwind CSS
  • Data Layer: FAISS, sentence-transformers
  • Containerization: Docker & docker-compose

Setup instructions #

  1. Clone the repository.
  2. Download the FAISS index and embeddings as described in the README.
  3. Run docker-compose up --build.
  4. The API will be available at http://localhost:8000, and the frontend at http://localhost:3000.

Presentation draft #

https://drive.google.com/file/d/1DY7Ny9v5GjEwwwC2ug1XtN7rus8WGT2i/view?usp=sharing

Weekly commitments #

Individual contribution of each participant #

Plan for Next Week #

  • Perform final testing and fix any potential bugs.
  • Prepare demo video and presentation.
  • Update deployment documentation.

Confirmation of the code’s operability #

We confirm that the code in the main branch:

  • In working condition.
  • Run via docker-compose (or another alternative described in the README.md).