====== 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é.