====== Dossier d'architecture détaillé ======
L'objectif est de produire un dossier complet permettant à une équipe de développement de concevoir, développer et maintenir la plateforme de gestion locative.
----
====== Structure du dossier d'architecture ======
01-Vision-Metier
02-Architecture-Fonctionnelle
03-Architecture-Technique
04-Modele-De-Donnees
05-UML
06-IHM-Ecrans
07-API-OpenAPI
08-Securite
09-DevOps
10-Backlog-Agile
L'ordre de production recommandé est :
- Modèle de données
- UML
- Écrans
- API
- Backlog Agile
Chaque étape dépend de la précédente.
----
====== Phase 1 : Modèle de données complet ======
Pour une plateforme comparable à Airbnb, Booking ou à un ERP de gestion locative, le modèle comporte généralement entre 70 et 90 tables.
===== Domaine Utilisateurs =====
users
roles
permissions
role_permissions
user_roles
user_profiles
user_addresses
user_documents
sessions
refresh_tokens
login_history
notifications
notification_templates
notification_logs
Nombre de tables : 12
----
===== Domaine Agence =====
agencies
agency_settings
agency_branches
employees
employee_positions
employee_teams
audit_logs
Nombre de tables : 7
Total cumulé : 19
----
===== Domaine Propriétaires =====
owners
owner_contacts
owner_bank_accounts
owner_tax_profiles
owner_contracts
owner_documents
Nombre de tables : 6
Total cumulé : 25
----
===== Domaine Biens =====
properties
property_types
property_categories
property_addresses
property_descriptions
property_photos
property_videos
property_documents
property_features
features
property_rooms
property_rates
property_seasons
property_availability
property_calendars
property_maintenance
property_status_history
Nombre de tables : 17
Total cumulé : 42
----
===== Domaine Réservation =====
reservations
reservation_statuses
reservation_guests
reservation_events
reservation_notes
reservation_cancellations
reservation_modifications
Nombre de tables : 7
Total cumulé : 49
----
===== Domaine Contrats =====
contracts
contract_templates
contract_versions
contract_signatures
contract_documents
Nombre de tables : 5
Total cumulé : 54
----
===== Domaine Paiement =====
payments
payment_methods
payment_transactions
payment_refunds
payment_schedules
invoices
invoice_lines
credit_notes
Nombre de tables : 8
Total cumulé : 62
----
===== Domaine CRM =====
leads
lead_sources
lead_statuses
customer_tags
customer_notes
customer_activities
Nombre de tables : 6
Total cumulé : 68
----
===== Domaine Messagerie =====
conversations
conversation_participants
messages
message_attachments
message_reads
Nombre de tables : 5
Total cumulé : 73
----
===== Domaine Reporting =====
dashboards
reports
report_exports
kpi_definitions
kpi_snapshots
Nombre de tables : 5
Total cumulé : 78
----
====== Modèle relationnel principal ======
Owner
1 ---- n Property
Property
1 ---- n Reservation
Reservation
1 ---- 1 Contract
Reservation
1 ---- n Payment
User
1 ---- n Reservation
User
1 ---- n Message
Property
1 ---- n PropertyPhoto
Property
1 ---- n Availability
----
====== Architecture logique ======
┌─────────────────────────┐
│ FRONT CLIENT │
└───────────┬─────────────┘
│
┌───────────▼─────────────┐
│ API GATEWAY │
└───────────┬─────────────┘
│
┌──────────┼──────────┐
│ │ │
▼ ▼ ▼
Auth Catalogue Reservation
▼ ▼ ▼
CRM Contract Payment
▼
Notification
----
====== UML à produire ======
===== Cas d'utilisation =====
==== Client ====
Client
│
├── Rechercher un bien
├── Consulter une annonce
├── Réserver
├── Signer contrat
├── Payer
└── Consulter historique
----
==== Gestionnaire ====
Gestionnaire
│
├── Créer bien
├── Modifier bien
├── Gérer réservation
├── Générer contrat
└── Gérer paiements
----
===== Diagramme de classes principal =====
User
├─ Owner
├─ Tenant
└─ Employee
Property
├─ PropertyPhoto
├─ PropertyAvailability
├─ PropertyRate
Reservation
Contract
Payment
----
===== Diagrammes de séquence =====
==== Réservation ====
Client
↓ Recherche
Catalogue Service
↓ Sélection
Reservation Service
↓ Vérification
Availability Service
↓ Confirmation
Payment Service
↓ Paiement
Contract Service
↓ Signature
Reservation Confirmée
----
====== Écrans à concevoir ======
===== Front Office =====
==== Accueil ====
Sections :
* Barre de recherche
* Destinations populaires
* Dernières offres
* Promotions
----
==== Recherche ====
Filtres :
* Ville
* Prix
* Chambres
* Surface
* Équipements
Résultats :
* Liste
* Carte
----
==== Fiche Bien ====
Onglets :
* Description
* Équipements
* Calendrier
* Photos
* Avis
Action principale :
* Réserver
----
==== Tunnel de réservation ====
- Choix des dates
- Informations locataire
- Paiement
- Signature
----
===== Extranet Propriétaire =====
Menu :
Tableau de bord
Mes biens
Calendrier
Revenus
Documents
Messagerie
Profil
----
===== Back Office =====
Menu :
Dashboard
Biens
Réservations
Clients
Propriétaires
Contrats
Paiements
CRM
Statistiques
Administration
----
====== OpenAPI ======
Volume estimé :
AUTH 15 endpoints
PROPERTY 40 endpoints
OWNER 20 endpoints
CUSTOMER 20 endpoints
RESERVATION 35 endpoints
CONTRACT 15 endpoints
PAYMENT 20 endpoints
CRM 25 endpoints
MESSAGING 15 endpoints
REPORTING 20 endpoints
Soit environ 225 endpoints REST.
----
====== Backlog Agile ======
===== Epic 1 : Authentification =====
==== Features ====
* Login
* Register
* RBAC
Charge estimée :
* 20 User Stories
----
===== Epic 2 : Catalogue Immobilier =====
==== Features ====
* CRUD biens
* Gestion des médias
* Gestion des disponibilités
Charge estimée :
* 50 User Stories
----
===== Epic 3 : Réservation =====
==== Features ====
* Création réservation
* Modification réservation
* Annulation réservation
Charge estimée :
* 40 User Stories
----
===== Epic 4 : Contrats =====
Charge estimée :
* 20 User Stories
----
===== Epic 5 : Paiements =====
Charge estimée :
* 30 User Stories
----
===== Epic 6 : Portail Propriétaire =====
Charge estimée :
* 25 User Stories
----
===== Epic 7 : CRM =====
Charge estimée :
* 30 User Stories
----
===== Epic 8 : Administration =====
Charge estimée :
* 35 User Stories
----
====== Estimation globale ======
Le produit complet représente :
* Entre 250 et 350 User Stories
* Entre 70 et 90 tables PostgreSQL
* Environ 225 endpoints REST
* Plus de 100 écrans métier
Ce périmètre correspond à une plateforme SaaS professionnelle de gestion locative comparable aux solutions du marché.
----
====== Étape suivante recommandée ======
Produire le schéma PostgreSQL détaillé :
* DDL complet
* Colonnes
* Types PostgreSQL
* Clés primaires
* Clés étrangères
* Index
* Contraintes
* Historisation
* Audit
Ce schéma servira ensuite de fondation au modèle UML, aux API OpenAPI et au backlog Agile détaillé.