/Alquivago

Website that compares long-term rental prices from multiple sources in Montevideo - Uruguay

Primary LanguageJavaScript

Alquivago

Alquivago - Logo

Alquivago is a web application that compares long-term house/apartment rental prices from three different sources (websites) in Montevideo - Uruguay.

Table of contents

Scope

Problem to solve

Finding a house or apartment for rent for long-term periods of time is a very tedious task. This is because there are many possible sources from which to extract information, with each of them containing a large number of properties. Each website presents the data in different formats making it difficult to compare the different options.

Out of the scope

The technical term to refer to the project is like a meta-search engine focussed on house/apartment rents, this kind of software is specialized in helping users search for and compare options across different providers but doesn't handle the renting process directly.

AlquiVago is in charge of listing and filtering all the available rental options (houses or apartments), and then proportionate a link and redirect the user to the original site.

Project planning

The implemetation of the project can be summarized with the following diagram:

Project planning

  1. We started the defining the MVP (Minimum Viable Product), in our case was to display a list of all rental properties after the initial data retrieved.
  2. The second priority was to have working the filter and sorting algorithms as a main feature.
  3. Once the previous step was completed, it was really important to have a feature to compare few favorite properties and check easily these properties details.
  4. Finally, having a Geolocalization feature was a nice feature in order to help the users to have an overview of the total number and all the available properties by zone.

Technology and Tools

Technology and Tools

Features

Rentals List View

Rentals List View

Rentals Comparison

Rentals Comparison

Rentals Geolocalization

Rentals Geolocalization

Live Application

Alquivago - Live URL

https://alquivago.vercel.app/

Alquivago - Live URL

Landing page - Live URL

https://alquivago-landing.vercel.app/

Landing page - Live URL

Run in local environment

Pre-requisites

Run docker compose

  1. docker pull gab020/vite-react:latest
  2. docker pull gab020/flaskimg:latest
  3. docker-compose up -d --build
  • The Flask API should be running on:
localhost:5000/apidocs/
  • The nextJS app should be running on:
localhost:3000

Architecture

Alquivago - MVC Architecture

This project uses a MVC (Model-View-Controller) Architecture.

  • Model: This represents the application's data and the business logic for manipulating that data. In this case we have python scripts that interact with the NoSQL MongoDB database. It handles tasks such as data retrieval, storage, validation, and manipulation.

  • View: This layer is responsible for presenting data to the user. In our project, the React components belong to the View layer.

  • Controller: It acts as an intermediary between the Model and the View. It receives requests from the client, processes them, interacts with the Model to retrieve or modify data, and then sends the appropriate response back to the client. In this project, on the Flask application, the Flask routes (API endpoints) and associated functions interact as controllers.

Future Improvements

Some of the possible future improvements are:

  • Scale the system outside of Montevideo, to other Uruguay Departments.
  • Additionally to rentals, manage house/apartments to buy.
  • Automate the control of duplicated data.

Authors