The Real Estate System is an application designed to streamline the management, rental, listing, and sale of real estate properties. The platform allows real estate agents, property owners, and potential buyers to interact seamlessly, facilitating property searches, listing management, and transactions in a user-friendly and efficient manner.
- Property Listings: Property owners or agents can easily list properties with detailed descriptions, prices, and images.
- Advanced Search: Potential buyers can search for properties using various filters like location, price range, property type, and size.
- User Roles: The system supports multiple user types such as administrators, property owners, and buyers, each with different permissions.
- Interactive Map: Properties are displayed on an interactive map to enhance the user experience and help users find properties by location.
- Favorites: Users can save properties to their favorites for quick access later.
- Messaging: Direct messaging system between property owners/agents and buyers for inquiries.(TBD)
- Responsive Design: Fully responsive, ensuring a seamless experience across desktop, tablet, and mobile devices.
- Admin Panel: Comprehensive administrative panel for managing users, properties, transactions, and more.
- Secure Transactions: Secure handling of property transactions, ensuring data privacy and integrity.
- main: Django (filters, rest_framework, )
- Frontend: JavaScript (React, nextjs)
- Database: PostgreSQL
- Authentication: JWT / OAuth for secure login and user management
- Deployment: Docker, Nginx, and Gunicorn for scalable production deployment
-
Clone the repository:
git clone https://github.com/trent130/hello.git
-
Navigate to the project directory:
cd hello -
setUp a virtual environment:
python -m venv .venv
python -m venv .venv
-
Install the dependencies:
pip install -r requirements.txt -
Set up your environment variables (e.g., database credentials, secret keys).
-
Run the development server:
python manage.py runserver
-
Access the application at
http://localhost:8000. Additionally, you'll need the following setup
This section provides instructions on how to set up PostgreSQL for this project.
Before you begin, ensure you have the following installed on your machine:
- PostgreSQL (version 13.X or higher)
- pgAdmin (optional, for GUI management)
- python django(preferably in a a virtual environment)
- Download the PostgreSQL installer for your operating system from the official website.
- Run the installer and follow the prompts to complete the installation.
- During installation, you will be prompted to set a password for the default
postgresuser. Make sure to remember this password.
-
On Windows:
- PostgreSQL should start automatically. If not, you can start it from the Services application.
-
On macOS:
brew services start postgresql
-
On Linux:
sudo systemctl start postgresql
or
sudo service postgresql start
-
Open the PostgreSQL command line interface (CLI) or pgAdmin.
-
Connect to the PostgreSQL server using the
postgresuser:psql -U postgres
Enter the password you set during installation.
-
Create a new database for your project:
CREATE DATABASE your_database_name;
-
(Optional) Create a new user with access to the database:
CREATE USER your_username WITH PASSWORD 'your_password'; GRANT ALL PRIVILEGES ON DATABASE your_database_name TO your_username;
Update your project's configuration file (e.g .env, but mostly settings.py in development environment) with the database connection details:
DB_HOST=localhost
DB_PORT=5432
DB_NAME=your_database_name
DB_USER=your_username
DB_PASSWORD=your_password
Run the migrations to set up the database schema:
# Example command to run the database schema migration in django
python manage.py migrate- If you encounter issues connecting to the database, ensure that the PostgreSQL service is running and that you are using the correct credentials.
- Check the PostgreSQL logs for any error messages that can help diagnose the problem.
Feel free to modify the instructions to better fit your project's needs.
We welcome contributions! If you'd like to contribute, please fork the repository and submit a pull request with your changes. Be sure to update documentation as needed.
This project is licensed under the MIT License - see the LICENSE file for details.