- Table of Contents
- Overview
- Features
- Project Structure
- Getting Started
- Roadmap
- Contributing
- License
- Acknowledgments
DREAMService is a Django-based backend for real estate platforms that centralizes buyer, seller, and property data in a clean, modular architecture. It serves engineering teams and product builders who need a scalable, production-ready foundation to ship property workflows faster and more reliably. Core functionality includes web APIs for domain entities, background task orchestration with Celery and Redis, and production-ready operations using Gunicorn with CI automation via GitHub Actions.
- API: Exposes RESTful endpoints for authentication, user profiles, and property workflows, wired via Django apps, URLs, and views.
- buyer_data: Ingests and validates buyer profiles, contact info, and preferences with serializers, signals, and loan calculation utilities.
- estate_data: Models and stores property listings with CRUD, geospatial helpers, and calculator utilities for search-ready data.
- seller_data: Manages seller accounts, subscriptions, and verification flows with serializers, admin integration, and utility decorators.
- common: Provides shared models, background tasks, OTP handling, storage backends, and structured logging for cross-module consistency.
- Operations: Runs background jobs with Celery + Redis, serves via Gunicorn, and automates CI with GitHub Actions.
└── DREAMService/
├── .github
│ └── workflows
├── api
│ ├── __init__.py
│ ├── admin.py
│ ├── apps.py
│ ├── migrations
│ ├── models.py
│ ├── tests.py
│ ├── urls.py
│ └── views.py
├── build.sh
├── buyer_data
│ ├── __init__.py
│ ├── admin.py
│ ├── apps.py
│ ├── migrations
│ ├── models.py
│ ├── serializer.py
│ ├── tests.py
│ ├── urls.py
│ ├── utils
│ └── views.py
├── common
│ ├── __init__.py
│ ├── admin.py
│ ├── apps.py
│ ├── migrations
│ ├── models.py
│ ├── serializer.py
│ ├── tasks.py
│ ├── tests.py
│ ├── urls.py
│ ├── utils
│ └── views.py
├── dream_service
│ ├── __init__.py
│ ├── asgi.py
│ ├── celery.py
│ ├── settings.py
│ ├── urls.py
│ └── wsgi.py
├── estate_data
│ ├── __init__.py
│ ├── admin.py
│ ├── apps.py
│ ├── migrations
│ ├── models.py
│ ├── serializer.py
│ ├── tests.py
│ ├── urls.py
│ ├── utils
│ └── views.py
├── manage.py
├── requirements.txt
└── seller_data
├── __init__.py
├── admin.py
├── apps.py
├── migrations
├── models.py
├── serializer.py
├── tests.py
├── urls.py
├── utils
└── views.pyDREAMSERVICE/
__root__
⦿ __root__
File Name Summary build.sh Deployment script for building and configuring the application server. manage.py Django CLI for running management commands and project tasks. requirements.txt Python package dependencies list for project installation and setup.
.github
⦿ .githubworkflows
⦿ .github.workflows
File Name Summary django.yml CI/CD workflow for automated testing and deployment automation.
api
⦿ api
File Name Summary admin.py Django admin panel configurations for API model management. apps.py Application configuration defining API app metadata and settings. models.py Database models defining API data structures and relationships. tests.py Unit tests for validating API functionality and endpoints. urls.py URL routing patterns mapping endpoints to API views. views.py Request handlers implementing API business logic and responses.
buyer_data
⦿ buyer_data
File Name Summary admin.py Admin interface configurations for buyer profile and data management. apps.py App configuration defining buyer_data module metadata and signals. models.py Buyer profile, preferences, and contact information database models. serializer.py JSON serializers for buyer data validation and API responses. tests.py Test suite for buyer registration, validation, and profile workflows. urls.py URL patterns routing buyer profile and preference endpoints. views.py View handlers for buyer registration, authentication, and CRUD operations. migrations
⦿ buyer_data.migrations
File Name Summary 0001_initial.py Initial database schema migration creating buyer data tables. 0002_initial.py Secondary migration adding buyer relationships and foreign key constraints. 0003_alter_buyer_phone_number.py Schema update modifying buyer phone number field validation rules. utils
⦿ buyer_data.utils
File Name Summary loan_math.py Mathematical utilities for calculating EMI, interest, and loan eligibility. signals.py Django signals for buyer profile creation and update events.
common
⦿ common
File Name Summary admin.py Admin configurations for shared models and cross-module utilities. apps.py Application configuration for common shared resources and middleware. models.py Shared database models for OTP, logs, and base classes. serializer.py Common serializers for standardized API responses and data validation. tasks.py Celery background tasks for email, OTP, and async processing. tests.py Test cases for common utilities, tasks, and shared functionality. urls.py URL routing for OTP verification and shared endpoint patterns. views.py View handlers for OTP generation, validation, and common operations. migrations
⦿ common.migrations
File Name Summary 0001_initial.py Initial migration creating OTP, logging, and shared utility tables. utils
⦿ common.utils
File Name Summary otp_handler.py OTP generation, validation, and expiration logic for authentication. signals.py Django signals for logging, notifications, and cross-module event handling. storage_backends.py Custom storage backends for AWS S3 and media file management. upload_logs.py Logging utilities for tracking file uploads and storage operations.
dream_service
⦿ dream_service
File Name Summary asgi.py ASGI application configuration for async server and websocket support. celery.py Celery configuration defining broker, tasks, and background job settings. settings.py Django settings for database, middleware, apps, and environment variables. urls.py Root URL configuration routing all app endpoints and admin. wsgi.py WSGI application entry point for Gunicorn and production deployment.
estate_data
⦿ estate_data
File Name Summary admin.py Admin interface for property listings, images, and estate management. apps.py App configuration defining estate_data module metadata and ready hooks. models.py Property listing models with fields for location, price, and amenities. serializer.py Serializers for property data validation, search, and API responses. tests.py Test suite for property CRUD operations and search functionality. urls.py URL patterns for property listing, search, and detail endpoints. views.py View handlers for property creation, retrieval, filtering, and pagination. migrations
⦿ estate_data.migrations
File Name Summary 0001_initial.py Initial migration creating property listing and related data tables. utils
⦿ estate_data.utils
File Name Summary geo_utils.py Geospatial utilities for distance calculation and location-based property search. signals.py Django signals for property updates, indexing, and notification triggers. views_calculator.py Calculator utilities for property views, popularity scoring, and analytics.
seller_data
⦿ seller_data
File Name Summary admin.py Admin interface for seller accounts, verification, and subscription management. apps.py App configuration defining seller_data module metadata and initialization logic. models.py Seller profile, verification status, and subscription tier database models. serializer.py Serializers for seller registration, verification, and profile data validation. tests.py Test suite for seller onboarding, verification workflows, and subscriptions. urls.py URL routing for seller registration, verification, and profile endpoints. views.py View handlers for seller authentication, profile updates, and subscription management. migrations
⦿ seller_data.migrations
File Name Summary 0001_initial.py Initial migration creating seller account and verification tables. 0002_remove_sellerverification_aadhaar_card_and_more.py Migration removing Aadhaar fields and updating verification document structure. 0003_alter_seller_phone_number.py Schema update modifying seller phone number field with validation. utils
⦿ seller_data.utils
File Name Summary subscription_decorator.py Decorator utilities for enforcing subscription-based access control and feature gating.
This project requires the following dependencies:
- Programming Language: Python
- Package Manager: Pip
Build DREAMService from the source and install dependencies:
-
Clone the repository:
❯ git clone https://github.com/LordZeusIsBack/DREAMService
-
Navigate to the project directory:
❯ cd DREAMService -
Install the dependencies:
<!-- [![pip][pip-shield]][pip-link] -->
<!-- REFERENCE LINKS -->
<!-- [pip-shield]: https://img.shields.io/badge/Pip-3776AB.svg?style={badge_style}&logo=pypi&logoColor=white -->
<!-- [pip-link]: https://pypi.org/project/pip/ -->
**Using [pip](https://pypi.org/project/pip/):**
```sh
❯ pip install -r requirements.txt
```
Run the project with:
Using pip:
python manage.py runserverDreamservice uses the pytest test framework. Run the test suite with:
Using pip:
pytest- 💬 Join the Discussions: Share your insights, provide feedback, or ask questions.
- 🐛 Report Issues: Submit bugs found or log feature requests for the
DREAMServiceproject. - 💡 Submit Pull Requests: Review open PRs, and submit your own PRs.
Contributing Guidelines
- Fork the Repository: Start by forking the project repository to your GitHub account.
- Clone Locally: Clone the forked repository to your local machine using a git client.
git clone https://github.com/LordZeusIsBack/DREAMService
- Create a New Branch: Always work on a new branch, giving it a descriptive name.
git checkout -b new-feature-x
- Make Your Changes: Develop and test your changes locally.
- Commit Your Changes: Commit with a clear message describing your updates.
git commit -m 'Implemented new feature x.' - Push to GitHub: Push the changes to your forked repository.
git push origin new-feature-x
- Submit a Pull Request: Create a PR against the original project repository. Clearly describe the changes and their motivations.
- Review: Once your PR is reviewed and approved, it will be merged into the main branch. Congratulations on your contribution!
Dreamservice is protected under the LICENSE License. For more details, refer to the LICENSE file.
- Credit
contributors,inspiration,references, etc.