A real estate web application built with Django.
The project allows users to browse property listings, view listing details, search for properties, contact realtors, register an account, log in, and view their inquiries through a user dashboard.
- Property listings
- Listing detail pages
- Property search
- Realtor profiles
- Contact/inquiry form
- User registration
- User login/logout
- User dashboard
- Django admin panel
- PostgreSQL database support
- Media file support for listing images
- Python
- Django
- PostgreSQL
- Pillow
- Bootstrap
- HTML
- CSS
- JavaScript
django_real_estate/
├── accounts/
├── contacts/
├── listings/
├── pages/
├── realtors/
├── real_estate/
├── templates/
├── manage.py
├── requirements.txt
└── .gitignore
- Python 3.12
- PostgreSQL
- pip
- virtualenv
Clone the repository:
git clone https://github.com/chrispsk/django_real_estate.git
cd django_real_estateCreate a virtual environment:
python -m venv .venvActivate the virtual environment:
# Windows
.venv\Scripts\activate# macOS / Linux
source .venv/bin/activateUpgrade pip:
python -m pip install --upgrade pipInstall dependencies:
pip install -r requirements.txtThe project uses local configuration in:
real_estate/settings.py
Before running the project, make sure the database settings match your local PostgreSQL setup.
Example PostgreSQL configuration:
DATABASES = {
"default": {
"ENGINE": "django.db.backends.postgresql",
"NAME": "realestate",
"USER": "postgres",
"PASSWORD": "your_database_password",
"HOST": "localhost",
"PORT": "5432",
}
}Email settings can also be configured in settings.py if you want to enable contact form email notifications.
For production, sensitive values such as SECRET_KEY, database passwords, and email credentials should be moved to environment variables and should not be committed to GitHub.
Create a PostgreSQL database named:
realestate
Then run migrations:
python manage.py makemigrations
python manage.py migrateCreate a superuser:
python manage.py createsuperuserStart the development server:
python manage.py runserverOpen the app in your browser:
http://localhost:8000
Open the admin panel:
http://localhost:8000/admin
Handles user registration, login, logout, and dashboard functionality.
Handles property listings, listing detail pages, and property search.
Stores and displays realtor information.
Handles property inquiry submissions from users interested in a property.
Handles static pages such as the home page and about page.
Run the development server:
python manage.py runserverCreate migrations:
python manage.py makemigrationsApply migrations:
python manage.py migrateCreate an admin user:
python manage.py createsuperuserCheck the project for issues:
python manage.py checkBefore using it in production, you should:
- Set
DEBUG=False - Use a strong secret key
- Configure production database credentials
- Configure allowed hosts
- Serve the application over HTTPS
- Keep sensitive data out of GitHub
This project is open source.




