Estate Fetch is a comprehensive full-stack educational web application designed to assist users in efficiently discovering real estate deals and listings. This innovative platform seamlessly combines both frontend and backend functionalities, all housed within a single repository.
You can access the deployed application version by clicking here: Estate Fetch
If you wish to run Estate Fetch locally, follow these steps:
Open a terminal in the root of the project and navigate to the frontend
folder, where the frontend code is located.
cd frontend
cd estate-fetch
Install the required dependencies by running the following command:
npm install
Start the Angular development server using the following command:
ng serve
Open your web browser and go to http://localhost:4200/ to access the frontend of the application.
Open a separate terminal in the root of the project and navigate to the backend
folder, where the backend code is located.
cd backend
Install the required dependencies by running the following command:
npm install
Start the server using the following command:
npm start
The backend server will start and be accessible at http://localhost:8000/.
Estate Fetch utilizes MongoDB Atlas, a cloud-based database service, to store and retrieve the scraped real estate data.
Currently using a free M0 512 MB cluster provided by MongoDB Atlas to host the database. This cluster offers a cost-effective solution for the project's needs.
Here are all of the available API routes for interacting with the backend server:
Route | Description | Method | Headers | Parameters / Request Body |
---|---|---|---|---|
/ |
Welcome message | GET | None | None |
/api/scrape |
Scrape and save data to DB (protected route) | GET | x-secret-token |
None |
/api/estates |
Get all estates | GET | None | None |
/api/estates/search |
Search all estates | GET | None | None |
/api/estates/:id |
Get estate by ID | GET | None | None |
To run the scraper locally, follow these steps:
Copy the contents of the .env.example
file to a new file named .env
in the backend
directory.
Set your MongoDB connection string in the MONGODB_URL
variable.
Customize the SECRET_TOKEN
in the .env
file. This token is used to authenticate requests to initiate the scraping process.
Open your terminal and navigate to the backend
directory.
Run the following commands to install dependencies and start the local server:
npm install
npm run dev
Once the server is running and your database is connected, make a GET request to http://localhost:8000/api/scrape with your chosen API client (e.g., cURL or Postman) and include the SECRET_TOKEN in the request header. Ensure that the header is named x-secret-token
.
https://github.com/user-attachments/assets/f1b4bbc7-7b32-43f6-bda7-12a929476416
Price Range:
Location:
Construction Type:
Area Size:
Number of Rooms:
Apply / Reset Filters:
Relevance:
Price Ascending:
Price Descending:
Newest Listings:
Oldest Listings:
Most Views:
Least Views:
The app relies on the following technologies and libraries:
Monolithic Architecture: The application follows a monolithic architecture where the frontend and backend are tightly coupled within the same repository.
Limited Data Sources: Currently, the data scraping functionality is limited to imot.bg. Data sources will be expanded to provide a more comprehensive real estate dataset.
Browser Compatibility: Estate Fetch is optimized for modern web browsers. While it should work well in most browsers, some features may not function as expected in older or less common browsers.
User Profiles and Authentication: User profiles and authentication features are not yet implemented in the application. Users can access all features without the need for registration.