ujusum:2-implantation:4-catalogue-immobilier
Différences
Ci-dessous, les différences entre deux révisions de la page.
| ujusum:2-implantation:4-catalogue-immobilier [2026/06/20 15:24] – créée 88.174.75.218 | ujusum:2-implantation:4-catalogue-immobilier [2026/06/29 22:02] (Version actuelle) – supprimée 83.202.252.200 | ||
|---|---|---|---|
| Ligne 1: | Ligne 1: | ||
| - | ====== Sprint 3 — Catalogue Immobilier ====== | ||
| - | ===== Objectif du Sprint ===== | ||
| - | |||
| - | Mettre en œuvre le premier domaine métier central de la plateforme : | ||
| - | |||
| - | **la gestion complète des biens immobiliers.** | ||
| - | |||
| - | À l' | ||
| - | |||
| - | * Un gestionnaire peut créer un bien | ||
| - | * Un gestionnaire peut modifier un bien | ||
| - | * Un gestionnaire peut publier un bien | ||
| - | * Un gestionnaire peut gérer les médias | ||
| - | * Un gestionnaire peut gérer les équipements | ||
| - | * Un gestionnaire peut gérer les disponibilités | ||
| - | * Un gestionnaire peut gérer les tarifs | ||
| - | * Un visiteur peut consulter une annonce publique | ||
| - | |||
| - | Ce sprint constitue le premier incrément métier visible du produit. | ||
| - | |||
| - | ---- | ||
| - | |||
| - | ====== Périmètre ====== | ||
| - | |||
| - | ===== Modules concernés ===== | ||
| - | |||
| - | < | ||
| - | PropertiesModule | ||
| - | |||
| - | PropertyMediaModule | ||
| - | |||
| - | PropertyFeaturesModule | ||
| - | |||
| - | PropertyAvailabilityModule | ||
| - | |||
| - | PropertyRatesModule | ||
| - | |||
| - | PropertySearchModule | ||
| - | </ | ||
| - | |||
| - | ---- | ||
| - | |||
| - | ====== User Stories ====== | ||
| - | |||
| - | ===== US-301 : Créer un bien ===== | ||
| - | |||
| - | **En tant que gestionnaire** | ||
| - | |||
| - | Je souhaite créer un bien | ||
| - | |||
| - | Afin de le proposer à la location. | ||
| - | |||
| - | ---- | ||
| - | |||
| - | ===== Endpoint ===== | ||
| - | |||
| - | <code http> | ||
| - | POST /properties | ||
| - | </ | ||
| - | |||
| - | ---- | ||
| - | |||
| - | ===== Données obligatoires ===== | ||
| - | |||
| - | < | ||
| - | Référence | ||
| - | |||
| - | Titre | ||
| - | |||
| - | Type | ||
| - | |||
| - | Catégorie | ||
| - | |||
| - | Adresse | ||
| - | |||
| - | Capacité | ||
| - | |||
| - | Surface | ||
| - | |||
| - | Description | ||
| - | </ | ||
| - | |||
| - | ---- | ||
| - | |||
| - | ===== Critères ===== | ||
| - | |||
| - | * Référence unique | ||
| - | * Validation des données | ||
| - | * Création en statut DRAFT | ||
| - | * Historisation | ||
| - | |||
| - | ---- | ||
| - | |||
| - | ====== US-302 : Modifier un bien ====== | ||
| - | |||
| - | ===== Endpoint ===== | ||
| - | |||
| - | <code http> | ||
| - | PUT / | ||
| - | </ | ||
| - | |||
| - | ---- | ||
| - | |||
| - | ===== Critères ===== | ||
| - | |||
| - | * Mise à jour complète | ||
| - | * Historisation | ||
| - | * Audit | ||
| - | |||
| - | ---- | ||
| - | |||
| - | ====== US-303 : Consulter un bien ====== | ||
| - | |||
| - | ===== Endpoint ===== | ||
| - | |||
| - | <code http> | ||
| - | GET / | ||
| - | </ | ||
| - | |||
| - | ---- | ||
| - | |||
| - | ===== Informations retournées ===== | ||
| - | |||
| - | < | ||
| - | Informations générales | ||
| - | |||
| - | Adresse | ||
| - | |||
| - | Photos | ||
| - | |||
| - | Équipements | ||
| - | |||
| - | Disponibilités | ||
| - | |||
| - | Tarifs | ||
| - | </ | ||
| - | |||
| - | ---- | ||
| - | |||
| - | ====== US-304 : Archiver un bien ====== | ||
| - | |||
| - | ===== Endpoint ===== | ||
| - | |||
| - | <code http> | ||
| - | DELETE / | ||
| - | </ | ||
| - | |||
| - | ---- | ||
| - | |||
| - | ===== Comportement ===== | ||
| - | |||
| - | < | ||
| - | Soft Delete | ||
| - | </ | ||
| - | |||
| - | ---- | ||
| - | |||
| - | ====== US-305 : Publier un bien ====== | ||
| - | |||
| - | ===== Endpoint ===== | ||
| - | |||
| - | <code http> | ||
| - | POST / | ||
| - | </ | ||
| - | |||
| - | ---- | ||
| - | |||
| - | ===== Conditions ===== | ||
| - | |||
| - | < | ||
| - | Titre renseigné | ||
| - | |||
| - | Description renseignée | ||
| - | |||
| - | Adresse renseignée | ||
| - | |||
| - | Photo principale présente | ||
| - | |||
| - | Tarif actif présent | ||
| - | </ | ||
| - | |||
| - | ---- | ||
| - | |||
| - | ===== Workflow ===== | ||
| - | |||
| - | < | ||
| - | DRAFT | ||
| - | |||
| - | ↓ | ||
| - | |||
| - | PUBLISHED | ||
| - | |||
| - | ↓ | ||
| - | |||
| - | RENTED | ||
| - | |||
| - | ↓ | ||
| - | |||
| - | ARCHIVED | ||
| - | </ | ||
| - | |||
| - | ---- | ||
| - | |||
| - | ====== Gestion des médias ====== | ||
| - | |||
| - | ===== US-306 : Ajouter une photo ===== | ||
| - | |||
| - | ===== Endpoint ===== | ||
| - | |||
| - | <code http> | ||
| - | POST / | ||
| - | </ | ||
| - | |||
| - | ---- | ||
| - | |||
| - | ===== Formats autorisés ===== | ||
| - | |||
| - | < | ||
| - | jpg | ||
| - | |||
| - | jpeg | ||
| - | |||
| - | png | ||
| - | |||
| - | webp | ||
| - | </ | ||
| - | |||
| - | ---- | ||
| - | |||
| - | ===== Taille maximale ===== | ||
| - | |||
| - | < | ||
| - | 20 Mo | ||
| - | </ | ||
| - | |||
| - | ---- | ||
| - | |||
| - | ====== US-307 : Définir la photo principale ===== | ||
| - | |||
| - | ===== Endpoint ===== | ||
| - | |||
| - | <code http> | ||
| - | POST / | ||
| - | </ | ||
| - | |||
| - | ---- | ||
| - | |||
| - | ====== US-308 : Supprimer une photo ===== | ||
| - | |||
| - | ===== Endpoint ===== | ||
| - | |||
| - | <code http> | ||
| - | DELETE / | ||
| - | </ | ||
| - | |||
| - | ---- | ||
| - | |||
| - | ====== Gestion des équipements ====== | ||
| - | |||
| - | ===== US-309 : Associer des équipements ===== | ||
| - | |||
| - | ===== Endpoint ===== | ||
| - | |||
| - | <code http> | ||
| - | PUT / | ||
| - | </ | ||
| - | |||
| - | ---- | ||
| - | |||
| - | ===== Liste initiale ===== | ||
| - | |||
| - | < | ||
| - | Wifi | ||
| - | |||
| - | Piscine | ||
| - | |||
| - | Climatisation | ||
| - | |||
| - | Parking | ||
| - | |||
| - | Terrasse | ||
| - | |||
| - | Balcon | ||
| - | |||
| - | Jardin | ||
| - | |||
| - | Barbecue | ||
| - | |||
| - | Cuisine équipée | ||
| - | |||
| - | Lave-vaisselle | ||
| - | |||
| - | Lave-linge | ||
| - | |||
| - | Télévision | ||
| - | |||
| - | Fibre | ||
| - | |||
| - | Animaux autorisés | ||
| - | </ | ||
| - | |||
| - | ---- | ||
| - | |||
| - | ====== Gestion des disponibilités ====== | ||
| - | |||
| - | ===== US-310 : Créer une période ===== | ||
| - | |||
| - | ===== Endpoint ===== | ||
| - | |||
| - | <code http> | ||
| - | POST / | ||
| - | </ | ||
| - | |||
| - | ---- | ||
| - | |||
| - | ===== Données ===== | ||
| - | |||
| - | < | ||
| - | Date début | ||
| - | |||
| - | Date fin | ||
| - | |||
| - | Statut | ||
| - | </ | ||
| - | |||
| - | ---- | ||
| - | |||
| - | ===== Statuts ===== | ||
| - | |||
| - | < | ||
| - | AVAILABLE | ||
| - | |||
| - | UNAVAILABLE | ||
| - | |||
| - | MAINTENANCE | ||
| - | |||
| - | BLOCKED | ||
| - | </ | ||
| - | |||
| - | ---- | ||
| - | |||
| - | ====== US-311 : Bloquer une période ===== | ||
| - | |||
| - | ===== Cas d' | ||
| - | |||
| - | < | ||
| - | Travaux | ||
| - | |||
| - | Occupation propriétaire | ||
| - | |||
| - | Maintenance | ||
| - | </ | ||
| - | |||
| - | ---- | ||
| - | |||
| - | ====== Gestion tarifaire ====== | ||
| - | |||
| - | ===== US-312 : Créer un tarif ===== | ||
| - | |||
| - | ===== Endpoint ===== | ||
| - | |||
| - | <code http> | ||
| - | POST / | ||
| - | </ | ||
| - | |||
| - | ---- | ||
| - | |||
| - | ===== Champs ===== | ||
| - | |||
| - | < | ||
| - | Nom | ||
| - | |||
| - | Prix nuit | ||
| - | |||
| - | Prix semaine | ||
| - | |||
| - | Prix mois | ||
| - | |||
| - | Taxe séjour | ||
| - | |||
| - | Caution | ||
| - | </ | ||
| - | |||
| - | ---- | ||
| - | |||
| - | ====== US-313 : Tarification saisonnière ===== | ||
| - | |||
| - | ===== Exemple ===== | ||
| - | |||
| - | < | ||
| - | Basse saison | ||
| - | |||
| - | Moyenne saison | ||
| - | |||
| - | Haute saison | ||
| - | |||
| - | Très haute saison | ||
| - | </ | ||
| - | |||
| - | ---- | ||
| - | |||
| - | ===== Endpoint ===== | ||
| - | |||
| - | <code http> | ||
| - | POST / | ||
| - | </ | ||
| - | |||
| - | ---- | ||
| - | |||
| - | ====== Consultation publique ====== | ||
| - | |||
| - | ===== US-314 : Recherche publique ===== | ||
| - | |||
| - | ===== Endpoint ===== | ||
| - | |||
| - | <code http> | ||
| - | GET / | ||
| - | </ | ||
| - | |||
| - | ---- | ||
| - | |||
| - | ===== Critères ===== | ||
| - | |||
| - | < | ||
| - | Ville | ||
| - | |||
| - | Prix min | ||
| - | |||
| - | Prix max | ||
| - | |||
| - | Capacité | ||
| - | |||
| - | Chambres | ||
| - | |||
| - | Équipements | ||
| - | </ | ||
| - | |||
| - | ---- | ||
| - | |||
| - | ====== US-315 : Consultation fiche publique ===== | ||
| - | |||
| - | ===== Endpoint ===== | ||
| - | |||
| - | <code http> | ||
| - | GET / | ||
| - | </ | ||
| - | |||
| - | ---- | ||
| - | |||
| - | ===== Données exposées ===== | ||
| - | |||
| - | < | ||
| - | Titre | ||
| - | |||
| - | Description | ||
| - | |||
| - | Galerie | ||
| - | |||
| - | Équipements | ||
| - | |||
| - | Tarifs | ||
| - | |||
| - | Disponibilités | ||
| - | </ | ||
| - | |||
| - | ---- | ||
| - | |||
| - | ====== Modèle Prisma ====== | ||
| - | |||
| - | ===== Property ===== | ||
| - | |||
| - | <code prisma> | ||
| - | model Property { | ||
| - | |||
| - | id String @id @default(uuid()) | ||
| - | |||
| - | propertyCode | ||
| - | |||
| - | title | ||
| - | |||
| - | slug String @unique | ||
| - | |||
| - | status | ||
| - | |||
| - | surface | ||
| - | |||
| - | roomCount | ||
| - | |||
| - | bedroomCount | ||
| - | |||
| - | bathroomCount | ||
| - | |||
| - | maxCapacity | ||
| - | |||
| - | descriptionShort | ||
| - | |||
| - | descriptionLong | ||
| - | |||
| - | } | ||
| - | </ | ||
| - | |||
| - | ---- | ||
| - | |||
| - | ===== PropertyPhoto ===== | ||
| - | |||
| - | <code prisma> | ||
| - | model PropertyPhoto { | ||
| - | |||
| - | id String @id @default(uuid()) | ||
| - | |||
| - | propertyId | ||
| - | |||
| - | fileName | ||
| - | |||
| - | storagePath | ||
| - | |||
| - | isCover | ||
| - | |||
| - | displayOrder | ||
| - | } | ||
| - | </ | ||
| - | |||
| - | ---- | ||
| - | |||
| - | ===== Feature ===== | ||
| - | |||
| - | <code prisma> | ||
| - | model Feature { | ||
| - | |||
| - | id String @id @default(uuid()) | ||
| - | |||
| - | code String @unique | ||
| - | |||
| - | label | ||
| - | } | ||
| - | </ | ||
| - | |||
| - | ---- | ||
| - | |||
| - | ===== PropertyAvailability ===== | ||
| - | |||
| - | <code prisma> | ||
| - | model PropertyAvailability { | ||
| - | |||
| - | id String @id @default(uuid()) | ||
| - | |||
| - | propertyId | ||
| - | |||
| - | startDate | ||
| - | |||
| - | endDate | ||
| - | |||
| - | status | ||
| - | } | ||
| - | </ | ||
| - | |||
| - | ---- | ||
| - | |||
| - | ===== PropertyRate ===== | ||
| - | |||
| - | <code prisma> | ||
| - | model PropertyRate { | ||
| - | |||
| - | id String @id @default(uuid()) | ||
| - | |||
| - | propertyId | ||
| - | |||
| - | nightlyRate | ||
| - | |||
| - | weeklyRate | ||
| - | |||
| - | monthlyRate | ||
| - | |||
| - | } | ||
| - | </ | ||
| - | |||
| - | ---- | ||
| - | |||
| - | ====== Architecture Backend ====== | ||
| - | |||
| - | < | ||
| - | src/ | ||
| - | |||
| - | ├── properties | ||
| - | │ | ||
| - | ├── media | ||
| - | │ | ||
| - | ├── features | ||
| - | │ | ||
| - | ├── availability | ||
| - | │ | ||
| - | ├── rates | ||
| - | │ | ||
| - | ├── search | ||
| - | │ | ||
| - | └── public | ||
| - | </ | ||
| - | |||
| - | ---- | ||
| - | |||
| - | ====== Swagger ====== | ||
| - | |||
| - | ===== Tags ===== | ||
| - | |||
| - | < | ||
| - | Properties | ||
| - | |||
| - | PropertyMedia | ||
| - | |||
| - | PropertyFeatures | ||
| - | |||
| - | PropertyAvailability | ||
| - | |||
| - | PropertyRates | ||
| - | |||
| - | PropertySearch | ||
| - | </ | ||
| - | |||
| - | ---- | ||
| - | |||
| - | ===== Volume API ===== | ||
| - | |||
| - | Environ : | ||
| - | |||
| - | < | ||
| - | 35 endpoints | ||
| - | </ | ||
| - | |||
| - | ---- | ||
| - | |||
| - | ====== Frontend ====== | ||
| - | |||
| - | ===== Back Office ===== | ||
| - | |||
| - | Pages : | ||
| - | |||
| - | < | ||
| - | /properties | ||
| - | |||
| - | / | ||
| - | |||
| - | / | ||
| - | |||
| - | / | ||
| - | |||
| - | / | ||
| - | |||
| - | / | ||
| - | </ | ||
| - | |||
| - | ---- | ||
| - | |||
| - | ===== Front Office ===== | ||
| - | |||
| - | Pages : | ||
| - | |||
| - | < | ||
| - | /search | ||
| - | |||
| - | / | ||
| - | </ | ||
| - | |||
| - | ---- | ||
| - | |||
| - | ===== Composants ===== | ||
| - | |||
| - | < | ||
| - | PropertyForm | ||
| - | |||
| - | PropertyCard | ||
| - | |||
| - | PropertyGallery | ||
| - | |||
| - | PropertyAvailabilityCalendar | ||
| - | |||
| - | PropertyRatesTable | ||
| - | |||
| - | PropertyFeatureSelector | ||
| - | </ | ||
| - | |||
| - | ---- | ||
| - | |||
| - | ====== Tests ====== | ||
| - | |||
| - | ===== Unitaires ===== | ||
| - | |||
| - | < | ||
| - | PropertyService | ||
| - | |||
| - | PropertyRateService | ||
| - | |||
| - | PropertyAvailabilityService | ||
| - | |||
| - | PropertyMediaService | ||
| - | </ | ||
| - | |||
| - | ---- | ||
| - | |||
| - | ===== Intégration ===== | ||
| - | |||
| - | < | ||
| - | Create Property | ||
| - | |||
| - | ↓ | ||
| - | |||
| - | Upload Photos | ||
| - | |||
| - | ↓ | ||
| - | |||
| - | Add Features | ||
| - | |||
| - | ↓ | ||
| - | |||
| - | Add Availability | ||
| - | |||
| - | ↓ | ||
| - | |||
| - | Publish | ||
| - | </ | ||
| - | |||
| - | ---- | ||
| - | |||
| - | ===== E2E ===== | ||
| - | |||
| - | < | ||
| - | Gestionnaire | ||
| - | |||
| - | ↓ | ||
| - | |||
| - | Créer bien | ||
| - | |||
| - | ↓ | ||
| - | |||
| - | Ajouter photo | ||
| - | |||
| - | ↓ | ||
| - | |||
| - | Ajouter tarif | ||
| - | |||
| - | ↓ | ||
| - | |||
| - | Publier | ||
| - | |||
| - | ↓ | ||
| - | |||
| - | Visible sur site public | ||
| - | </ | ||
| - | |||
| - | ---- | ||
| - | |||
| - | ====== Définition de terminé ====== | ||
| - | |||
| - | Le Sprint 3 est terminé lorsque : | ||
| - | |||
| - | * CRUD Bien fonctionnel | ||
| - | * Photos fonctionnelles | ||
| - | * Équipements fonctionnels | ||
| - | * Disponibilités fonctionnelles | ||
| - | * Tarifs fonctionnels | ||
| - | * Publication fonctionnelle | ||
| - | * Recherche publique fonctionnelle | ||
| - | * Swagger à jour | ||
| - | * Tests verts | ||
| - | * CI verte | ||
| - | |||
| - | ---- | ||
| - | |||
| - | ====== Livrables ====== | ||
| - | |||
| - | * PropertiesModule | ||
| - | * PropertyMediaModule | ||
| - | * PropertyFeaturesModule | ||
| - | * PropertyAvailabilityModule | ||
| - | * PropertyRatesModule | ||
| - | * PropertySearchModule | ||
| - | * Migrations Prisma | ||
| - | * DTO | ||
| - | * Swagger | ||
| - | * Tests | ||
| - | |||
| - | ---- | ||
| - | |||
| - | ====== Démonstration Sprint ====== | ||
| - | |||
| - | Scénario métier : | ||
| - | |||
| - | < | ||
| - | 1. Création d'un bien | ||
| - | |||
| - | 2. Ajout de photos | ||
| - | |||
| - | 3. Ajout d' | ||
| - | |||
| - | 4. Définition des disponibilités | ||
| - | |||
| - | 5. Définition des tarifs | ||
| - | |||
| - | 6. Publication | ||
| - | |||
| - | 7. Recherche publique | ||
| - | |||
| - | 8. Consultation fiche publique | ||
| - | </ | ||
| - | |||
| - | ---- | ||
| - | |||
| - | ====== Sprint suivant ====== | ||
| - | |||
| - | ===== Sprint 4 — Réservation & Calendrier ===== | ||
| - | |||
| - | Objectif : | ||
| - | |||
| - | Permettre aux clients de réserver un bien. | ||
| - | |||
| - | Modules concernés : | ||
| - | |||
| - | < | ||
| - | ReservationsModule | ||
| - | |||
| - | ReservationCalendarModule | ||
| - | |||
| - | ReservationGuestModule | ||
| - | |||
| - | PricingModule | ||
| - | </ | ||
| - | |||
| - | Fonctionnalités : | ||
| - | |||
| - | * Vérification disponibilité | ||
| - | * Création réservation | ||
| - | * Gestion des voyageurs | ||
| - | * Calcul tarifaire | ||
| - | * Blocage calendrier | ||
| - | * Confirmation réservation | ||
| - | |||
| - | À l' | ||
ujusum/2-implantation/4-catalogue-immobilier.1781961890.txt.gz · Dernière modification : 2026/06/20 15:24 de 88.174.75.218