Project Details
- Category: Web Application
- Repository: GitHub
- URL: https://bienesraices.com
Real Estate Project
Real Estate is a web platform for selling luxury properties. The project was developed as part of my Final Degree Project (TFC) in Web Application Development (DAW).
In this project, I showcase my skills in Frontend, Backend, as well as in the infrastructure and deployment of the application, and my ability to adapt to new technologies.
The project is fully scalable, which gives it great growth potential. During its development, several changes were made following a spiral lifecycle. This project includes features for end users, potential clients, and admin users.
Additionally, a Restful API was developed to manage the properties using Django Rest Framework, which is detailed later.
Features
- Authentication and Registration: Integration with Google OAuth 2.0 and registration form with email validation
- Property Management (CRUD): Complete admin panel to create, read, update, and delete luxury properties
- Real-Time Chat: WebSocket-based messaging system for instant communication between users, clients, and administrators
- Property Listings: Visual catalog and complete details for each property
- Contact System: Form for interested clients inquiries with direct communication to the real estate agency
- Reviews and Testimonials: Module where registered users can leave ratings and comments on properties
- Real Estate Blog: Posts about tips, home improvements, and luxury real estate market news
- Responsive Design: Interface automatically adapted for desktop, tablet, and mobile devices
- Accessibility: Intuitive navigation, dark mode, and user-centered design
Technologies Used
The project was packaged in Docker containers to ensure consistency across environments. It has been deployed on multiple platforms: previously on AWS Elastic Beanstalk/EC2, PythonAnywhere, and currently on a dedicated Linux server. The RESTful API is documented and available for integration with external applications.
| Frontend | Backend | Infrastructure |
|---|---|---|
|
|
|
|
Backend with Python & Django:
- Implementation of the MVC pattern with ASGI/WSGI support for synchronous and asynchronous applications
- Real-time communication through Django Channels and Redis integration to manage WebSocket connections
- ORM architecture supporting multiple databases (MySQL, PostgreSQL) with environment-specific configuration (development, Docker, production)
- RESTful API using Django Rest Framework for read/write operations on properties
- OAuth 2.0 integration with Google Sign-in for secure authentication
- Advanced session management system and role-based access control (end users, clients, administrators)
Responsive and Modern Frontend:
- HTML5, CSS3, and JavaScript with advanced validations
- Bootstrap 5 for responsive and accessible components
- SCSS/Sass with automation through Gulp for scalable and maintainable styles
- jQuery for dynamic DOM manipulation and asynchronous updates
- Dark Mode fully implemented across all interfaces
Infrastructure and DevOps:
- Containerization with Docker for development and production environments
- Multi-environment configuration to manage different databases and servers based on context
- Deployment history: AWS Elastic Beanstalk, PythonAnywhere, currently on dedicated Linux server
Database Architecture
The database, shown in the image below, is designed to manage information related to the Real Estate project.
The database evolved to support additional features as the project grew, such as blog posts and reviews by registered users, as well as managing a registry of sellers, buyers, and the relationship between them.
RESTful API - Real Estate
A RESTful API has been created using Django Rest Framework to manage the properties for sale.
This API allows read-only operations on the properties, making it easier to integrate with other web, mobile, desktop applications, or services that may need this information.
Using the API:
I recommend visiting the repository where you can test the RESTful API. This repository contains detailed instructions and code for cloning the repository.
https://github.com/CristianEduardoo/Real-Estate-API-Client
If you want to see the final result of the repository and test the RESTful API, visit the following URL. Keep in mind that the project is hosted on a free server, so it might take a little time to load, please be patient 😉
https://api.cristian-castro.com/
However, you can get the information from any interface you are working on or feel more comfortable with by using the following link:
https://pypycris.pythonanywhere.com/api/v1/properties/
Contact
Cristian Eduardo Castro Vargas