This is a rework of the original Najdistan.mk application that was built initially with Flask.
It is intended to be used as a Listing service where people can register to sell/buy/rent a home. Something similar to Funda and Pararius.
The project can be found at: https://crelayo.shop (the domain name has no meaning at all)
The codename of this project is "Najdistan v3.0". When it is ready for production it can be branded to anything. This is Work in Progress (WIP).
- User profiles (Register, Login, Reset Password, Profile page)
- Listing management (Create/Retrieve/Update/Delete)
- Listings compare, bookmark, highlight
- Search functionality (display data based on your filters)
- Search Profiles (create so-called "SP" to get you informed about new listings matching your criteria every X TIME)
- Get notified (by email/sms) when someone starts a private thread / sends a public comment.
- Share listing via social media
- 'Premium' user that has extra features available (i.e. highlighted Listings, extra Search Profiles, more options in SP and more...)
- Admin dashboard (with statistics, charts etc)
- ...
-
Created production-ready environment by following best practices
-
Database architecture and set-up (Postgres for production, SQlite for development)
-
Production ready storage for storing listing images and user profile images (AWS S3 for production, local for development)
-
A-to-Z registration and user management system
- User 2-step registration (e-mail confirmation)
- User login, logout and reset forgotten password
- User profile and editing profile
-
Listing-management, and related logic
- Create/Retrieve/Update/Delete listing (permission based)
- Listing display: Title, Description, Price, (listing info such us floor, basemenet, heating etc.), Type of listing, Images, Location, Contact, Public comments and much more info
-
Safe listing image uploads
-
Search filter to narrow down your results
-
Search profiles - (Get informed about listings matching your criteria every X TIME [selectable]
-
Cron jobs for the Search Profiles
-
Admin dashboard
-
Data fixtures
-
...
- STYLING ! (Sorry if you see inconsistencies or wrongly-placed object)
- Premium user membership (lots of ideas already for Premium membership)
- Listing Compare views
- Listing reports. Comments reports
- Save a listing.
- User comments / threads
- ...
- API development
- Social authentication
- Listing message thread (1-to-1 private message system)
- SMS verification
- Show listings on map
- Translations
- Unit tests
- ...
- Clone the repo locally (
git clone https://github.com/DonExo/NajdistanDjango3.0.git
or use SSH) - Create virtual environment with (at least) python3.7 as interpreter (
virtualenv -p /usr/bin/python3.7 myvenv
, or other location to your Python3.7 interpreter) (you need to have 'virtualenv' installed on your machine ) 2.1. Activate the virtual environment (source myvenv/bin/activate
) - CD into newly cloned project. (
cd Najdistandjango3.0
). For latest development check other branches (frontend, development..) - Install the requirements (
pip install -r requirements.txt
) - Run migrations (
./manage.py migrate
) - Optional: Load dummy fixtures (
./manage.py loaddata fixtures.py
) - Optional: Create super user for easy admin access (
./manage.py createsuperuser
) - Run local server (
./manage.py runserver
) - Optioanl: If you want to use the production-ready server:
- rename the
.env.example
file to.env
- add your personal keys in the
.env
file (i.e your Postgre DB credentials, e-mail server credentials, AWS bucket etc) - run the server with
./manage.py runserver --settings=najdistandjango30.settings.production
- rename the
- Open 'http://127.0.0.1:8000' in your browser and have fun!
NOTE:
The default settings.py have been changed with a more robust solution: local.py
and production.py
settings. This project now loads settings/local.py
by default.
If for whatever reason you'd like to run it with production settings - start your server with ./manage.py runserver --settings=najdistandjango30.settings.production
. Any ./manage.py ...
command should have the new settings added.