====== Cahier des charges fonctionnel et technique ====== ===== Application de gestion locative immobilière – Version 1.0 ===== ---- ====== 1. Présentation du projet ====== ===== 1.1 Contexte ===== L'agence souhaite disposer d'une plateforme web centralisée permettant : * La publication d'offres de location immobilière. * La gestion des biens, propriétaires et locataires. * La réservation et la contractualisation. * La gestion administrative des locations. * Le suivi financier. * La communication entre les différents acteurs. L'application doit être utilisable aussi bien pour : * Location saisonnière. * Location courte durée. * Location moyenne durée. * Location longue durée. ---- ====== 2. Objectifs du projet ====== ===== Objectifs métier ===== * Centraliser les données. * Réduire les tâches administratives. * Automatiser les réservations. * Réduire les erreurs de gestion. * Améliorer l'expérience client. * Offrir un portail propriétaire. ===== Objectifs techniques ===== * Application responsive. * Architecture évolutive. * Sécurité RGPD. * API ouverte. * Hébergement cloud. ---- ====== 3. Périmètre fonctionnel ====== Le projet couvre : ===== Front Office Client ===== * Recherche de biens * Réservation * Signature électronique * Paiement * Gestion du compte ===== Portail Propriétaire ===== * Consultation des biens * Consultation des revenus * Téléchargement des documents ===== Back Office Agence ===== * Gestion des biens * Gestion des propriétaires * Gestion des locataires * Gestion des contrats * Gestion financière * Administration ---- ====== 4. Acteurs ====== ===== Super Administrateur ===== Responsable de la plateforme. ==== Droits ==== * Gestion complète * Paramétrage global * Gestion des utilisateurs ---- ===== Administrateur Agence ===== Responsable opérationnel. ==== Droits ==== * Gestion des collaborateurs * Gestion catalogue * Gestion contrats ---- ===== Gestionnaire ===== ==== Droits ==== * Gestion réservations * Gestion clients * Gestion documents ---- ===== Commercial ===== ==== Droits ==== * Création de prospects * Gestion des visites * Transformation en locataires ---- ===== Propriétaire ===== ==== Droits ==== * Consultation de ses biens * Consultation des revenus * Téléchargement des contrats ---- ===== Client / Locataire ===== ==== Droits ==== * Réservation * Paiement * Signature * Historique ---- ====== 5. Modules fonctionnels ====== ===== Module 1 : Authentification ===== ==== Fonctionnalités ==== === Inscription === Informations : * Nom * Prénom * Email * Téléphone * Mot de passe === Connexion === * Email / Mot de passe * Double authentification (phase 2) === Réinitialisation === * Lien email * Expiration 24h ---- ===== Module 2 : Catalogue des biens ===== ==== Création d'un bien ==== === Identification === * Référence * Nom commercial * Statut === Adresse === * Adresse * Ville * Code postal * Pays * Coordonnées GPS === Caractéristiques === * Type * Surface * Nombre de pièces * Chambres * Salle de bain * Étage * Capacité === Équipements === * Wifi * Climatisation * Piscine * Parking * Ascenseur * Terrasse * Jardin === Description === * Description courte * Description longue === Médias === * Photos * Vidéos * Documents ---- ===== Module 3 : Disponibilités ===== ==== Calendrier ==== Actions : * Bloquer une période * Ouvrir une période * Synchronisation calendrier externe === Statuts === * Disponible * Option * Réservé * Loué * Maintenance ---- ===== Module 4 : Recherche ===== ==== Critères ==== * Ville * Rayon * Prix minimum * Prix maximum * Surface * Chambres * Équipements ==== Tri ==== * Prix croissant * Prix décroissant * Surface * Date disponibilité ---- ===== Module 5 : Réservations ===== ==== Processus ==== - Sélection du bien - Choix des dates - Calcul du tarif - Validation - Paiement - Signature - Confirmation ---- ===== Module 6 : Gestion Clients ===== ==== Fiche client ==== === Informations === * Identité * Coordonnées * Documents === Historique === * Réservations * Contrats * Paiements === Statistiques === * Nombre de locations * Chiffre d'affaires ---- ===== Module 7 : Gestion Propriétaires ===== ==== Fiche propriétaire ==== === Coordonnées === * Identité * Adresse * Téléphone * Email === Fiscalité === * Numéro fiscal * TVA === Paiements === * RIB * Reversements === Biens associés === Liste des biens. ---- ===== Module 8 : Contrats ===== ==== Génération automatique PDF ==== Variables : Nom locataire Nom propriétaire Adresse du bien Dates Montants Caution Conditions générales ==== Signature électronique ==== === Statuts === * Brouillon * Envoyé * Signé * Refusé ---- ===== Module 9 : Paiements ===== ==== Moyens de paiement ==== * Carte bancaire * Virement * Prélèvement ==== Gestion ==== * Acompte * Solde * Caution ==== Facturation ==== * Facture PDF * Avoir * Relance ---- ===== Module 10 : Messagerie ===== ==== Messages ==== Agence ↔ Client Agence ↔ Propriétaire ==== Fonctions ==== * Notifications * Pièces jointes * Historique ---- ===== Module 11 : Administration ===== ==== Paramètres ==== === Agence === * Logo * Coordonnées * Conditions générales === Utilisateurs === * Création * Désactivation * Permissions === Journaux === Traçabilité : * Connexions * Modifications * Suppressions ---- ====== 6. Modèle de données (version simplifiée) ====== User ├─ Owner ├─ Tenant └─ Employee Property ├─ PropertyPhoto ├─ PropertyEquipment ├─ PropertyRate ├─ PropertyAvailability └─ PropertyDocument Reservation ├─ ReservationStatus ├─ Payment └─ Contract Contract ├─ Signatures └─ Documents Invoice Message Notification AuditLog ---- ====== 7. Architecture technique ====== ===== Frontend ===== * Next.js * TypeScript * Tailwind CSS * PWA ===== Backend ===== * NestJS * TypeScript Architecture : API │ ├── Auth ├── Property ├── Reservation ├── Contract ├── Payment ├── CRM ├── Messaging └── Administration ===== Base de données ===== * PostgreSQL ===== Stockage fichiers ===== S3 Compatible : * AWS S3 * MinIO * OVH Object Storage ---- ====== 8. API REST (principales) ====== ===== Auth ===== POST /api/auth/login POST /api/auth/register POST /api/auth/forgot-password ===== Biens ===== GET /api/properties GET /api/properties/{id} POST /api/properties PUT /api/properties/{id} DELETE /api/properties/{id} ===== Réservations ===== GET /api/reservations POST /api/reservations PUT /api/reservations/{id} ===== Contrats ===== POST /api/contracts/generate POST /api/contracts/sign ===== Paiements ===== POST /api/payments GET /api/payments/{id} ---- ====== 9. Exigences non fonctionnelles ====== ===== Performance ===== * Temps de réponse inférieur à 2 secondes * 500 utilisateurs simultanés ===== Disponibilité ===== * 99,9 % ===== Sécurité ===== * RGPD * HTTPS * Chiffrement des mots de passe * Journalisation * Gestion des droits ===== Sauvegardes ===== * Quotidiennes * Conservation 30 jours ---- ====== 10. Roadmap ====== ===== MVP (3 mois) ===== * Authentification * Catalogue * Réservations * Contrats PDF * Gestion clients * Gestion propriétaires ===== V2 (6 mois) ===== * Paiement en ligne * Signature électronique * Portail propriétaire * Notifications ===== V3 (9 à 12 mois) ===== * Application mobile * Synchronisation Airbnb / Booking * Reporting avancé * IA de génération d'annonces * IA d'assistance commerciale ---- ====== Livrables attendus ====== - Maquettes UX/UI (Figma) - Schéma de base de données complet - Spécifications API (OpenAPI / Swagger) - Développement Frontend - Développement Backend - Tests - Documentation d'exploitation - Mise en production ---- ====== Étape suivante ====== Pour un projet industrialisable, prévoir les documents complémentaires suivants : * Dossier d'architecture détaillé * Schéma PostgreSQL complet (60 à 80 tables) * Modèle UML (cas d'utilisation, classes, séquences) * Maquettage détaillé des écrans * Spécification OpenAPI complète * Découpage Agile : * Epics * Features * User Stories * Tasks