Architecture du projet

Organisation générale

Le projet suit une architecture Django modulaire.

La configuration globale reste dans oc_lettings_site tandis que les fonctionnalités métier sont réparties dans des applications dédiées.

Structure principale

oc_lettings_site

Contient la configuration générale du projet Django, les URL principales, la page d’accueil et les pages d’erreur personnalisées.

lettings

Gère les adresses et les locations immobilières.

profiles

Gère les profils associés aux utilisateurs Django.

Répartition des responsabilités

Chaque application contient ses propres éléments Django :

  • modèles dans models.py ;

  • vues dans views.py ;

  • routes dans urls.py ;

  • tests dans tests.py ou dans un dossier tests ;

  • migrations dans le dossier migrations ;

  • modèles HTML dans le dossier templates.

Routage des URL

Le fichier oc_lettings_site/urls.py centralise les routes principales et inclut les routes propres aux applications lettings et profiles.

Chaque application possède ainsi son propre fichier urls.py afin de limiter le couplage entre les fonctionnalités.

Flux d’une requête

Lorsqu’un utilisateur accède à une page :

  1. Django analyse l’URL demandée ;

  2. la route correspondante appelle une vue ;

  3. la vue récupère les données nécessaires depuis les modèles ;

  4. la vue transmet ces données à un template ;

  5. Django génère puis retourne la réponse HTML.

Architecture modulaire

La séparation en applications permet :

  • d’isoler les responsabilités ;

  • de faciliter la maintenance ;

  • de limiter les dépendances entre fonctionnalités ;

  • de simplifier les tests ;

  • de faire évoluer une application sans modifier les autres.

Migration depuis l’ancienne architecture

Les modèles autrefois regroupés dans oc_lettings_site ont été déplacés dans les applications lettings et profiles.

Des migrations de données ont été utilisées pour copier les enregistrements existants vers les nouvelles tables tout en conservant leurs identifiants et leurs relations.