Outils pour utilisateurs

Outils du site


ujusum:2-implantation:4-catalogue-immobilier

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

ujusum:2-implantation:4-catalogue-immobilier [2026/06/20 15:24] – créée 88.174.75.218ujusum: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'issue du Sprint 3 : 
- 
-  * 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 ===== 
- 
-<code> 
-PropertiesModule 
- 
-PropertyMediaModule 
- 
-PropertyFeaturesModule 
- 
-PropertyAvailabilityModule 
- 
-PropertyRatesModule 
- 
-PropertySearchModule 
-</code> 
- 
----- 
- 
-====== 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 
-</code> 
- 
----- 
- 
-===== Données obligatoires ===== 
- 
-<code> 
-Référence 
- 
-Titre 
- 
-Type 
- 
-Catégorie 
- 
-Adresse 
- 
-Capacité 
- 
-Surface 
- 
-Description 
-</code> 
- 
----- 
- 
-===== 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 /properties/{id} 
-</code> 
- 
----- 
- 
-===== Critères ===== 
- 
-  * Mise à jour complète 
-  * Historisation 
-  * Audit 
- 
----- 
- 
-====== US-303 : Consulter un bien ====== 
- 
-===== Endpoint ===== 
- 
-<code http> 
-GET /properties/{id} 
-</code> 
- 
----- 
- 
-===== Informations retournées ===== 
- 
-<code> 
-Informations générales 
- 
-Adresse 
- 
-Photos 
- 
-Équipements 
- 
-Disponibilités 
- 
-Tarifs 
-</code> 
- 
----- 
- 
-====== US-304 : Archiver un bien ====== 
- 
-===== Endpoint ===== 
- 
-<code http> 
-DELETE /properties/{id} 
-</code> 
- 
----- 
- 
-===== Comportement ===== 
- 
-<code> 
-Soft Delete 
-</code> 
- 
----- 
- 
-====== US-305 : Publier un bien ====== 
- 
-===== Endpoint ===== 
- 
-<code http> 
-POST /properties/{id}/publish 
-</code> 
- 
----- 
- 
-===== Conditions ===== 
- 
-<code> 
-Titre renseigné 
- 
-Description renseignée 
- 
-Adresse renseignée 
- 
-Photo principale présente 
- 
-Tarif actif présent 
-</code> 
- 
----- 
- 
-===== Workflow ===== 
- 
-<code> 
-DRAFT 
- 
- 
- 
-PUBLISHED 
- 
- 
- 
-RENTED 
- 
- 
- 
-ARCHIVED 
-</code> 
- 
----- 
- 
-====== Gestion des médias ====== 
- 
-===== US-306 : Ajouter une photo ===== 
- 
-===== Endpoint ===== 
- 
-<code http> 
-POST /properties/{id}/photos 
-</code> 
- 
----- 
- 
-===== Formats autorisés ===== 
- 
-<code> 
-jpg 
- 
-jpeg 
- 
-png 
- 
-webp 
-</code> 
- 
----- 
- 
-===== Taille maximale ===== 
- 
-<code> 
-20 Mo 
-</code> 
- 
----- 
- 
-====== US-307 : Définir la photo principale ===== 
- 
-===== Endpoint ===== 
- 
-<code http> 
-POST /properties/{id}/photos/{photoId}/cover 
-</code> 
- 
----- 
- 
-====== US-308 : Supprimer une photo ===== 
- 
-===== Endpoint ===== 
- 
-<code http> 
-DELETE /properties/{id}/photos/{photoId} 
-</code> 
- 
----- 
- 
-====== Gestion des équipements ====== 
- 
-===== US-309 : Associer des équipements ===== 
- 
-===== Endpoint ===== 
- 
-<code http> 
-PUT /properties/{id}/features 
-</code> 
- 
----- 
- 
-===== Liste initiale ===== 
- 
-<code> 
-Wifi 
- 
-Piscine 
- 
-Climatisation 
- 
-Parking 
- 
-Terrasse 
- 
-Balcon 
- 
-Jardin 
- 
-Barbecue 
- 
-Cuisine équipée 
- 
-Lave-vaisselle 
- 
-Lave-linge 
- 
-Télévision 
- 
-Fibre 
- 
-Animaux autorisés 
-</code> 
- 
----- 
- 
-====== Gestion des disponibilités ====== 
- 
-===== US-310 : Créer une période ===== 
- 
-===== Endpoint ===== 
- 
-<code http> 
-POST /properties/{id}/availability 
-</code> 
- 
----- 
- 
-===== Données ===== 
- 
-<code> 
-Date début 
- 
-Date fin 
- 
-Statut 
-</code> 
- 
----- 
- 
-===== Statuts ===== 
- 
-<code> 
-AVAILABLE 
- 
-UNAVAILABLE 
- 
-MAINTENANCE 
- 
-BLOCKED 
-</code> 
- 
----- 
- 
-====== US-311 : Bloquer une période ===== 
- 
-===== Cas d'usage ===== 
- 
-<code> 
-Travaux 
- 
-Occupation propriétaire 
- 
-Maintenance 
-</code> 
- 
----- 
- 
-====== Gestion tarifaire ====== 
- 
-===== US-312 : Créer un tarif ===== 
- 
-===== Endpoint ===== 
- 
-<code http> 
-POST /properties/{id}/rates 
-</code> 
- 
----- 
- 
-===== Champs ===== 
- 
-<code> 
-Nom 
- 
-Prix nuit 
- 
-Prix semaine 
- 
-Prix mois 
- 
-Taxe séjour 
- 
-Caution 
-</code> 
- 
----- 
- 
-====== US-313 : Tarification saisonnière ===== 
- 
-===== Exemple ===== 
- 
-<code> 
-Basse saison 
- 
-Moyenne saison 
- 
-Haute saison 
- 
-Très haute saison 
-</code> 
- 
----- 
- 
-===== Endpoint ===== 
- 
-<code http> 
-POST /properties/{id}/seasons 
-</code> 
- 
----- 
- 
-====== Consultation publique ====== 
- 
-===== US-314 : Recherche publique ===== 
- 
-===== Endpoint ===== 
- 
-<code http> 
-GET /search/properties 
-</code> 
- 
----- 
- 
-===== Critères ===== 
- 
-<code> 
-Ville 
- 
-Prix min 
- 
-Prix max 
- 
-Capacité 
- 
-Chambres 
- 
-Équipements 
-</code> 
- 
----- 
- 
-====== US-315 : Consultation fiche publique ===== 
- 
-===== Endpoint ===== 
- 
-<code http> 
-GET /public/properties/{slug} 
-</code> 
- 
----- 
- 
-===== Données exposées ===== 
- 
-<code> 
-Titre 
- 
-Description 
- 
-Galerie 
- 
-Équipements 
- 
-Tarifs 
- 
-Disponibilités 
-</code> 
- 
----- 
- 
-====== Modèle Prisma ====== 
- 
-===== Property ===== 
- 
-<code prisma> 
-model Property { 
- 
-  id                String @id @default(uuid()) 
- 
-  propertyCode      String @unique 
- 
-  title             String 
- 
-  slug              String @unique 
- 
-  status            PropertyStatus 
- 
-  surface           Decimal? 
- 
-  roomCount         Int? 
- 
-  bedroomCount      Int? 
- 
-  bathroomCount     Int? 
- 
-  maxCapacity       Int? 
- 
-  descriptionShort  String? 
- 
-  descriptionLong   String? 
- 
-} 
-</code> 
- 
----- 
- 
-===== PropertyPhoto ===== 
- 
-<code prisma> 
-model PropertyPhoto { 
- 
-  id              String @id @default(uuid()) 
- 
-  propertyId      String 
- 
-  fileName        String 
- 
-  storagePath     String 
- 
-  isCover         Boolean 
- 
-  displayOrder    Int 
-} 
-</code> 
- 
----- 
- 
-===== Feature ===== 
- 
-<code prisma> 
-model Feature { 
- 
-  id              String @id @default(uuid()) 
- 
-  code            String @unique 
- 
-  label           String 
-} 
-</code> 
- 
----- 
- 
-===== PropertyAvailability ===== 
- 
-<code prisma> 
-model PropertyAvailability { 
- 
-  id              String @id @default(uuid()) 
- 
-  propertyId      String 
- 
-  startDate       DateTime 
- 
-  endDate         DateTime 
- 
-  status          String 
-} 
-</code> 
- 
----- 
- 
-===== PropertyRate ===== 
- 
-<code prisma> 
-model PropertyRate { 
- 
-  id              String @id @default(uuid()) 
- 
-  propertyId      String 
- 
-  nightlyRate     Decimal 
- 
-  weeklyRate      Decimal? 
- 
-  monthlyRate     Decimal? 
- 
-} 
-</code> 
- 
----- 
- 
-====== Architecture Backend ====== 
- 
-<code> 
-src/modules/properties 
- 
-├── properties 
- 
-├── media 
- 
-├── features 
- 
-├── availability 
- 
-├── rates 
- 
-├── search 
- 
-└── public 
-</code> 
- 
----- 
- 
-====== Swagger ====== 
- 
-===== Tags ===== 
- 
-<code> 
-Properties 
- 
-PropertyMedia 
- 
-PropertyFeatures 
- 
-PropertyAvailability 
- 
-PropertyRates 
- 
-PropertySearch 
-</code> 
- 
----- 
- 
-===== Volume API ===== 
- 
-Environ : 
- 
-<code> 
-35 endpoints 
-</code> 
- 
----- 
- 
-====== Frontend ====== 
- 
-===== Back Office ===== 
- 
-Pages : 
- 
-<code> 
-/properties 
- 
-/properties/create 
- 
-/properties/[id] 
- 
-/properties/[id]/photos 
- 
-/properties/[id]/availability 
- 
-/properties/[id]/rates 
-</code> 
- 
----- 
- 
-===== Front Office ===== 
- 
-Pages : 
- 
-<code> 
-/search 
- 
-/property/[slug] 
-</code> 
- 
----- 
- 
-===== Composants ===== 
- 
-<code> 
-PropertyForm 
- 
-PropertyCard 
- 
-PropertyGallery 
- 
-PropertyAvailabilityCalendar 
- 
-PropertyRatesTable 
- 
-PropertyFeatureSelector 
-</code> 
- 
----- 
- 
-====== Tests ====== 
- 
-===== Unitaires ===== 
- 
-<code> 
-PropertyService 
- 
-PropertyRateService 
- 
-PropertyAvailabilityService 
- 
-PropertyMediaService 
-</code> 
- 
----- 
- 
-===== Intégration ===== 
- 
-<code> 
-Create Property 
- 
- 
- 
-Upload Photos 
- 
- 
- 
-Add Features 
- 
- 
- 
-Add Availability 
- 
- 
- 
-Publish 
-</code> 
- 
----- 
- 
-===== E2E ===== 
- 
-<code> 
-Gestionnaire 
- 
- 
- 
-Créer bien 
- 
- 
- 
-Ajouter photo 
- 
- 
- 
-Ajouter tarif 
- 
- 
- 
-Publier 
- 
- 
- 
-Visible sur site public 
-</code> 
- 
----- 
- 
-====== 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 : 
- 
-<code> 
-1. Création d'un bien 
- 
-2. Ajout de photos 
- 
-3. Ajout d'équipements 
- 
-4. Définition des disponibilités 
- 
-5. Définition des tarifs 
- 
-6. Publication 
- 
-7. Recherche publique 
- 
-8. Consultation fiche publique 
-</code> 
- 
----- 
- 
-====== Sprint suivant ====== 
- 
-===== Sprint 4 — Réservation & Calendrier ===== 
- 
-Objectif : 
- 
-Permettre aux clients de réserver un bien. 
- 
-Modules concernés : 
- 
-<code> 
-ReservationsModule 
- 
-ReservationCalendarModule 
- 
-ReservationGuestModule 
- 
-PricingModule 
-</code> 
- 
-Fonctionnalités : 
- 
-  * Vérification disponibilité 
-  * Création réservation 
-  * Gestion des voyageurs 
-  * Calcul tarifaire 
-  * Blocage calendrier 
-  * Confirmation réservation 
- 
-À l'issue du Sprint 4, un client pourra effectuer une réservation complète depuis le Front Office. 
ujusum/2-implantation/4-catalogue-immobilier.1781961890.txt.gz · Dernière modification : 2026/06/20 15:24 de 88.174.75.218

DokuWiki Appliance - Powered by TurnKey Linux