Skip to content

LordZeusIsBack/DREAMService

Repository files navigation

DREAMSERVICE

Built with the tools and technologies:

Redis GNU%20Bash Gunicorn Celery Django Python GitHub%20Actions


Table of Contents


Overview

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.

Features

  • 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.

Project Structure

└── 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.py

Project Index

DREAMSERVICE/
__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
⦿ .github
workflows
⦿ .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.

Getting Started

Prerequisites

This project requires the following dependencies:

  • Programming Language: Python
  • Package Manager: Pip

Installation

Build DREAMService from the source and install dependencies:

  1. Clone the repository:

    ❯ git clone https://github.com/LordZeusIsBack/DREAMService
  2. Navigate to the project directory:

    cd DREAMService
  3. 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
```

Usage

Run the project with:

Using pip:

python manage.py runserver

Testing

Dreamservice uses the pytest test framework. Run the test suite with:

Using pip:

pytest

Contributing

Contributing Guidelines
  1. Fork the Repository: Start by forking the project repository to your GitHub account.
  2. Clone Locally: Clone the forked repository to your local machine using a git client.
    git clone https://github.com/LordZeusIsBack/DREAMService
  3. Create a New Branch: Always work on a new branch, giving it a descriptive name.
    git checkout -b new-feature-x
  4. Make Your Changes: Develop and test your changes locally.
  5. Commit Your Changes: Commit with a clear message describing your updates.
    git commit -m 'Implemented new feature x.'
  6. Push to GitHub: Push the changes to your forked repository.
    git push origin new-feature-x
  7. Submit a Pull Request: Create a PR against the original project repository. Clearly describe the changes and their motivations.
  8. Review: Once your PR is reviewed and approved, it will be merged into the main branch. Congratulations on your contribution!
Contributor Graph


License

Dreamservice is protected under the LICENSE License. For more details, refer to the LICENSE file.


Acknowledgments

  • Credit contributors, inspiration, references, etc.


Contributors 2

  •  
  •