Outils pour utilisateurs

Outils du site


ujusum:1-implantation:4-catalogue-immobilier

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

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

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

PUT /properties/{id}

Critères

  • Mise à jour complète
  • Historisation
  • Audit

US-303 : Consulter un bien

Endpoint

GET /properties/{id}

Informations retournées

Informations générales

Adresse

Photos

Équipements

Disponibilités

Tarifs

US-304 : Archiver un bien

Endpoint

DELETE /properties/{id}

Comportement

Soft Delete

US-305 : Publier un bien

Endpoint

POST /properties/{id}/publish

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

POST /properties/{id}/photos

Formats autorisés

jpg

jpeg

png

webp

Taille maximale

20 Mo

US-307 : Définir la photo principale

Endpoint

POST /properties/{id}/photos/{photoId}/cover

US-308 : Supprimer une photo

Endpoint

DELETE /properties/{id}/photos/{photoId}

Gestion des équipements

US-309 : Associer des équipements

Endpoint

PUT /properties/{id}/features

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

POST /properties/{id}/availability

Données

Date début

Date fin

Statut

Statuts

AVAILABLE

UNAVAILABLE

MAINTENANCE

BLOCKED

US-311 : Bloquer une période

Cas d'usage

Travaux

Occupation propriétaire

Maintenance

Gestion tarifaire

US-312 : Créer un tarif

Endpoint

POST /properties/{id}/rates

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

POST /properties/{id}/seasons

Consultation publique

US-314 : Recherche publique

Endpoint

GET /search/properties

Critères

Ville

Prix min

Prix max

Capacité

Chambres

Équipements

US-315 : Consultation fiche publique

Endpoint

GET /public/properties/{slug}

Données exposées

Titre

Description

Galerie

Équipements

Tarifs

Disponibilités

Modèle Prisma

Property

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?
 
}

PropertyPhoto

model PropertyPhoto {
 
  id              String @id @default(uuid())
 
  propertyId      String
 
  fileName        String
 
  storagePath     String
 
  isCover         Boolean
 
  displayOrder    Int
}

Feature

model Feature {
 
  id              String @id @default(uuid())
 
  code            String @unique
 
  label           String
}

PropertyAvailability

model PropertyAvailability {
 
  id              String @id @default(uuid())
 
  propertyId      String
 
  startDate       DateTime
 
  endDate         DateTime
 
  status          String
}

PropertyRate

model PropertyRate {
 
  id              String @id @default(uuid())
 
  propertyId      String
 
  nightlyRate     Decimal
 
  weeklyRate      Decimal?
 
  monthlyRate     Decimal?
 
}

Architecture Backend

src/modules/properties

├── 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

/properties/create

/properties/[id]

/properties/[id]/photos

/properties/[id]/availability

/properties/[id]/rates

Front Office

Pages :

/search

/property/[slug]

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'équipements

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'issue du Sprint 4, un client pourra effectuer une réservation complète depuis le Front Office.

ujusum/1-implantation/4-catalogue-immobilier.txt · Dernière modification : 2026/06/06 03:13 de 91.170.108.99

DokuWiki Appliance - Powered by TurnKey Linux