Table des matières
Sprint 16 — Mobile, PWA & Expérience Terrain
Objectif du Sprint
Permettre aux équipes terrain, propriétaires et clients d'utiliser la plateforme depuis un smartphone ou une tablette, y compris dans des zones à faible connectivité.
À l'issue du Sprint 16 :
- La plateforme est disponible en PWA
- Le mode hors ligne est opérationnel
- Les check-in sont réalisables depuis mobile
- Les check-out sont réalisables depuis mobile
- Les états des lieux sont dématérialisés
- Les signatures sont collectées sur mobile
- Les photos terrain sont synchronisées automatiquement
- Les équipes peuvent travailler sans connexion permanente
Ce sprint transforme la plateforme en outil opérationnel de terrain.
Périmètre
Modules concernés
MobileModule PWAModule OfflineModule CheckInModule CheckOutModule FieldOperationsModule InspectionModule
Architecture Mobile
Stack cible
NextJS PWA ↓ Service Worker ↓ IndexedDB ↓ API NestJS ↓ Synchronisation
Fonctionnement
Utilisateur ↓ Travail hors ligne ↓ Stockage local ↓ Retour réseau ↓ Synchronisation automatique
User Stories
US-1601 : Installer la PWA
En tant qu'utilisateur
Je souhaite installer l'application sur mon mobile
Afin d'y accéder rapidement.
Compatibilité
Android iOS Windows macOS
Fonctionnalités
Installation écran accueil Icône personnalisée Splash Screen Notifications Push
US-1602 : Utiliser l'application hors ligne
Fonctionnalités disponibles
Check-in Check-out États des lieux Photos Commentaires
Stockage
IndexedDB
Check-In
US-1603 : Réaliser un check-in
Endpoint
POST /checkins
Données
Réservation Date Agent Commentaires
Workflow
Arrivée client ↓ Contrôle logement ↓ Signature ↓ Validation
US-1604 : Vérifier les informations client
Informations
Identité Réservation Voyageurs Documents
État des lieux
US-1605 : Créer un état des lieux
Endpoint
POST /inspections
Pièces
Entrée Salon Cuisine Salle de bain Chambres Extérieur
Contrôles
Propreté Équipements Dégradations Observations
US-1606 : Ajouter des photos
Fonctionnalités
Capture photo Compression Géolocalisation Horodatage
Formats
JPEG PNG WEBP
US-1607 : Annoter une photo
Informations
Commentaire Zone concernée Niveau gravité
Signature mobile
US-1608 : Signer l'état des lieux
Signataires
Client Agent
Endpoint
POST /inspections/{id}/sign
Résultat
PDF signé Archivage
Check-Out
US-1609 : Réaliser un check-out
Endpoint
POST /checkouts
Contrôles
État logement Clés Équipements Consommations
US-1610 : Déclarer des dommages
Informations
Description Photos Montant estimé Responsable
Synchronisation
US-1611 : Synchroniser les données
Déclencheurs
Retour connexion Synchronisation manuelle Planification
Données synchronisées
Photos États des lieux Signatures Commentaires
US-1612 : Gérer les conflits
Cas
Modification locale + Modification serveur
Stratégie
Last Write Wins ou Validation manuelle
Notifications Push
US-1613 : Recevoir une notification
Événements
Arrivée client Départ client Nouvelle mission Retard paiement Contrat signé
Missions Terrain
US-1614 : Consulter ses missions
Endpoint
GET /field-operations/tasks
Types
Check-in Check-out Ménage Maintenance Inspection
US-1615 : Clôturer une mission
Workflow
Mission ↓ Intervention ↓ Photos ↓ Validation ↓ Clôture
Modèle Prisma
CheckIn
model CheckIn {
id String @id @default(uuid())
reservationId String
agentId String
checkedInAt DateTime
notes String?
}
CheckOut
model CheckOut {
id String @id @default(uuid())
reservationId String
agentId String
checkedOutAt DateTime
notes String?
}
Inspection
model Inspection {
id String @id @default(uuid())
reservationId String
inspectionType String
status String
createdAt DateTime
}
InspectionPhoto
model InspectionPhoto {
id String @id @default(uuid())
inspectionId String
filePath String
comment String?
}
FieldTask
model FieldTask {
id String @id @default(uuid())
assignedToId String
taskType String
status String
dueDate DateTime
}
Architecture Backend
src/modules/mobile ├── checkins │ ├── checkouts │ ├── inspections │ ├── field-operations │ ├── offline-sync │ └── push-notifications
Architecture Frontend
apps/web ├── app/mobile │ ├── app/checkin │ ├── app/checkout │ ├── app/inspections │ ├── app/tasks │ └── app/offline
Capacités Offline
Cache local
Biens Réservations Clients Missions Checklists
Synchronisation
Background Sync Service Worker Queue Offline
Événements métier
CheckInCompleted
CheckInCompleted
InspectionSigned
InspectionSigned
OfflineSyncCompleted
OfflineSyncCompleted
Swagger
Tags
CheckIns CheckOuts Inspections FieldOperations Mobile
Volume API
Environ :
30 endpoints
Frontend
Pages
/mobile /mobile/tasks /mobile/checkin /mobile/checkout /mobile/inspections /mobile/offline
Composants
CheckInWizard CheckOutWizard InspectionForm PhotoUploader SignaturePad OfflineSyncIndicator
Tests
Unitaires
CheckInService CheckOutService InspectionService OfflineSyncService
Intégration
Mode Offline ↓ Création Inspection ↓ Retour réseau ↓ Synchronisation
E2E
Mission terrain ↓ Check-in ↓ Photos ↓ Signature ↓ Mode hors ligne ↓ Synchronisation ↓ Archivage
Définition de terminé
Le Sprint 16 est terminé lorsque :
- PWA installable
- Mode hors ligne opérationnel
- Check-in opérationnel
- Check-out opérationnel
- États des lieux opérationnels
- Signatures mobiles opérationnelles
- Synchronisation opérationnelle
- Notifications Push opérationnelles
- Swagger à jour
- Tests verts
- CI verte
Livrables
- MobileModule
- PWAModule
- OfflineModule
- CheckInModule
- CheckOutModule
- InspectionModule
- FieldOperationsModule
- DTO
- Swagger
- Tests
- Migrations Prisma
Bilan Release 3.2
À l'issue du Sprint 16 :
- Exploitation mobile complète
- Travail hors ligne
- États des lieux numériques
- Gestion terrain industrialisée
- Synchronisation temps réel
La plateforme couvre désormais l'ensemble des opérations de terrain nécessaires à une activité de location professionnelle.
Sprint suivant
Sprint 17 — Revenue Management & Optimisation Tarifaire
Objectif :
Maximiser les revenus locatifs grâce à des mécanismes avancés de tarification dynamique.
Modules concernés :
RevenueManagementModule DynamicPricingModule YieldManagementModule CompetitorAnalysisModule PricingRulesModule
Fonctionnalités :
- Tarification dynamique
- Analyse de la demande
- Ajustement automatique des prix
- Simulation de revenus
- Analyse concurrentielle
- Recommandations tarifaires
À l'issue du Sprint 17, la plateforme disposera d'un moteur avancé d'optimisation des revenus.