Alquivago is a web application that compares long-term
house/apartment rental prices
from three different sources (websites) in Montevideo - Uruguay.
- Scope
- Project planning
- Technology and Tools
- Features
- Live Application
- Run in local environment
- Architecture
- Future Improvements
- Authors
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.
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.
The implemetation of the project can be summarized with the following diagram:
- 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.
- The second priority was to have working the filter and sorting algorithms as a main feature.
- 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.
- 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.
https://alquivago-landing.vercel.app/
-
On Windows:
- Install Docker Desktop Oficial documentation
-
On Linux:
- Install Docker Desktop Oficial documentation
- docker pull gab020/vite-react:latest
- docker pull gab020/flaskimg:latest
- docker-compose up -d --build
- The Flask API should be running on:
localhost:5000/apidocs/
- The nextJS app should be running on:
localhost:3000
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.
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.
- Cristian Encalada
- Project Manager
- Full-stack developer
- Project Manager
- Martin Leiro
- Web Scraper
- Back-end developer
- Web Scraper
- Emiliano Garin
- API Manager
- Back-end developer
- API Manager
- Gabriel Delgado
- UX/UI Designer
- Full-stack developer
- UX/UI Designer
- Alejandro Martinez
- UX/UI Designer
- Front-end developer
- UX/UI Designer