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