MyNextHome is an open-source real estate platform built using Django and GeoDjango. It helps users find rental and purchase properties with spatial search capabilities powered by PostgreSQL with PostGIS extension.
- π‘ Property Listings - Users can list and browse properties.
- π Geolocation Support - Spatial search with GeoDjango and PostGIS.
- πΊοΈ Interactive Maps - Integrated maps for property locations.
- π Advanced Search Filters - Filter by price, location, property type, and amenities.
- π’ Real-time Notifications - Get alerts for new listings.
- π Analytics Dashboard - Insights into property demand and trends.
- π₯ User Authentication - Secure login and registration.
Ensure you have the following installed:
- Python 3.8+
- Django 4.2+
- PostgreSQL 14+
- PostGIS extension
- Redis (for caching & real-time updates)
- Node.js (for frontend assets if applicable)
sudo apt update
sudo apt install binutils libproj-dev gdal-bin postgis postgresql-14-postgis-3sudo -u postgres psqlInside PostgreSQL prompt, run:
CREATE DATABASE mynexthome;
CREATE USER mynexthome_user WITH PASSWORD 'your_password';
ALTER ROLE mynexthome_user SET client_encoding TO 'utf8';
ALTER ROLE mynexthome_user SET default_transaction_isolation TO 'read committed';
ALTER ROLE mynexthome_user SET timezone TO 'UTC';
GRANT ALL PRIVILEGES ON DATABASE mynexthome TO mynexthome_user;
\c mynexthome
CREATE EXTENSION postgis;
CREATE EXTENSION postgis_topology;psql -d mynexthome -c "SELECT postgis_version();"- Install PostgreSQL
- During installation, select PostGIS extension.
- Install GDAL and add it to the system PATH.
- Install Proj from OSGeo4W
Open pgAdmin or the SQL Shell (psql) and run:
CREATE DATABASE mynexthome;
CREATE USER mynexthome_user WITH PASSWORD 'your_password';
ALTER ROLE mynexthome_user SET client_encoding TO 'utf8';
ALTER ROLE mynexthome_user SET default_transaction_isolation TO 'read committed';
ALTER ROLE mynexthome_user SET timezone TO 'UTC';
GRANT ALL PRIVILEGES ON DATABASE mynexthome TO mynexthome_user;
\c mynexthome
CREATE EXTENSION postgis;
CREATE EXTENSION postgis_topology;SELECT postgis_version();For more details, refer to:
git clone https://github.com/yourusername/mynexthome.git
cd mynexthomepython -m venv venv
source venv/bin/activate # On Windows use `venv\Scripts\activate`pip install -r requirements.txtCreate a .env file in the root directory and add the following:
DEBUG=True
SECRET_KEY=your_secret_key
DATABASE_URL=postgres://mynexthome_user:your_password@localhost:5432/mynexthome
REDIS_URL=redis://localhost:6379/0python manage.py makemigrations
python manage.py migratepython manage.py createsuperuserpython manage.py runserverVisit http://127.0.0.1:8000/ in your browser.
pytestcelery -A mynexthome worker --loglevel=inforedis-serverpython manage.py process_tasksThe API follows RESTful principles. You can access API documentation at:
http://127.0.0.1:8000/api/docs/GET /api/properties/- List all propertiesPOST /api/properties/- Create a new property listingGET /api/properties/{id}/- Retrieve a specific property
We welcome contributions! To contribute:
- Fork the repository.
- Create a new branch (
git checkout -b feature-name). - Commit your changes (
git commit -m 'Add new feature'). - Push to the branch (
git push origin feature-name). - Open a Pull Request.
- Follow PEP 8 for Python code.
- Use black for formatting (
black .). - Write tests for new features.
- Document your code properly.
This project is licensed under the GNU General Public License v3.0. See the LICENSE file for details.
Thanks to all contributors who make MyNextHome better! π
MyNextHome is powered by Daraza and maintained by Arcticline Technologies
For issues or suggestions, open a GitHub issue or reach out at:
π§ Email: info@daraza.net
π Website: mynexthome.daraza.net