A digital marketplace designed to centralize and formalize the local service sector in the Tiaret region (Algeria). By connecting service providers (artisans, repairmen, home teachers, etc.) with clients, this platform ensures transparency, builds trust through verified reviews, and integrates intelligent recommendation mechanisms.
| Home Page | Services | Login |
|---|---|---|
![]() |
![]() |
![]() |
- 🎯 Project Objectives
- 📚 Academic & Project Structure (Chapters)
- 🧩 Modular Approach (The 11 Groups)
- 🏗️ System Architecture
- 💻 Technology Stack
- 🚀 Getting Started (Local Setup)
- Centralization: Provide a unified directory of local service providers in the Tiaret region.
- Trust: Establish a rating and review system with verified profiles to ensure transparency.
- Accessibility: Offer cross-platform access via Web (React) and Mobile (React Native).
- Intelligence: Leverage AI-powered recommendation systems to personalize the user experience.
- Real-time Communication: Enable seamless real-time chat between clients and providers.
- Administration: Comprehensive dashboards for user moderation and KPI tracking.
This project is built collaboratively, doubling as both a functional software application and an academic thesis. To ensure rigorous tracking and cohesive documentation, the project follows a strict Chapter-based reporting structure.
The core architecture and authentication module developed by Group 1 is documented in three main files:
- 📖
rapport_groupe1_chapitre1.md: General context, problem statement, objectives, and technology stack justifications for the Core module. - 📖
rapport_groupe1_chapitre2.md: System analysis, UML diagrams, and MERISE data modeling for the Authentication and Core architecture. - 📖
rapport_groupe1_chapitre3.md: Implementation overview, permissions/role mapping, and testing strategies for the Core module.
The project is divided among 11 Groups. Each group is responsible for developing a specific feature module. In addition to delivering the code, each group must write 3 specific report chapters detailing their work. These files follow the naming convention rapport_groupeX_chapitreY.md:
-
Chapter 1: Context & Dependencies (
rapport_groupeX_chapitre1.md)- Details the group's specific objectives and role in the platform.
- Explains the module's dependencies on other groups (e.g., Group 5 Chat depends on Group 1 Auth).
- Outlines the technologies and tools used specifically for their features.
-
Chapter 2: Analysis & Design (
rapport_groupeX_chapitre2.md)- Contains UML Use Case diagrams, Sequence diagrams, and Activity diagrams for their module.
- Focuses on the MERISE Conceptual and Logical Data Models (MCD/MLD) strictly related to the group's database tables.
-
Chapter 3: Implementation & Testing (
rapport_groupeX_chapitre3.md)- Showcases the code implementation, algorithms, and business logic.
- Lists and explains the API endpoints created by the group.
- Details the tests performed, integration processes, and the security measures/permissions implemented.
To parallelize development and ensure a clean separation of concerns, the 11 collaborative modules are divided as follows:
| Group | Module Responsibilities |
|---|---|
| G1: Core/Auth | Custom user models, JWT authentication, Role-based control (Admin, Customer, Contractor). |
| G2: Providers | In-depth provider profiles, portfolio uploads, and availability management. |
| G3: Clients | Client profiles, exact service requests, order workflows, and favoriting features. |
| G4: Reviews | Rating system (stars, comments), statistics generation, and content moderation. |
| G5: Real-Time Chat | 1-on-1 WebSocket/Polling chat system between clients and providers. |
| G6: Artificial Intelligence | AI-driven user recommendations and review sentiment analysis. |
| G7: Search | Advanced location-based (PostGIS) and criteria-based search filtering. |
| G8: Orders | Complete reservation, multi-state booking lifecycle tracking, and logic. |
| G9: Notifications | Push notifications and email alerts system triggered by system events. |
| G10: Admin Dashboard | Moderation interface, performance KPIs, and system oversight. |
| G11: Geolocation | Spatial queries, wilayas/communes mapping, specifically tuned for Algeria. |
The project follows a decoupled architecture, clearly separating backend logic from client presentations.
graph TB
subgraph "Clients (Presentation Layer)"
WEB["React Web App (Vite)"]
MOBILE["React Native Mobile App (Expo)"]
end
subgraph "Server (Business Logic Layer)"
API["REST API (Django REST Framework)"]
AUTH["Authentication (SimpleJWT)"]
WS["WebSocket (Django Channels)"]
end
subgraph "Data (Persistence Layer)"
DB["Database (PostgreSQL + PostGIS)"]
CACHE["Cache Message Broker (Redis)"]
end
WEB -->|"HTTP/HTTPS"| API
MOBILE -->|"HTTP/HTTPS"| API
WEB -->|"WebSocket"| WS
MOBILE -->|"WebSocket"| WS
API --> AUTH
API --> DB
WS --> CACHE
API --> CACHE
| Layer | Technology | Details |
|---|---|---|
| Backend Framework | Django (5.x) | Robust ORM, built-in Admin panel, built-in security. |
| Rest API | DRF (3.15+) | Powerful serializers, viewsets, and permissions. |
| Database | PostgreSQL (16+) | Fully ACID compliant, PostGIS for geospatial queries. |
| Web Frontend | React (18+) + Vite | Reusable components architecture, lightning-fast HMR builds. |
| Mobile Frontend | React Native + Expo | Shared logic, native rendering (iOS/Android), OTA updates. |
| Real-Time | Channels + Redis | WebSockets for messaging and live notifications. |
- Python 3.10+
- Node.js 18+ & npm/yarn/pnpm
- PostgreSQL 16+ & PostGIS extension
- Redis (for Channels/WebSockets)
# Setup Virtual Environment
python3 -m venv venv
source venv/bin/activate
# Install Dependencies
pip install -r requirements.txt
# Run migrations & server
python manage.py migrate
python manage.py runserverOnce the server is running, the swagger documentation is available for all teams at:
http://localhost:8000/api/docs/
cd frontend
npm install
npm run devcd mobile-app
npm install
npx expo start

