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 :
Ce sprint transforme la plateforme en outil opérationnel de terrain.
MobileModule PWAModule OfflineModule CheckInModule CheckOutModule FieldOperationsModule InspectionModule
NextJS PWA ↓ Service Worker ↓ IndexedDB ↓ API NestJS ↓ Synchronisation
Utilisateur ↓ Travail hors ligne ↓ Stockage local ↓ Retour réseau ↓ Synchronisation automatique
En tant qu'utilisateur
Je souhaite installer l'application sur mon mobile
Afin d'y accéder rapidement.
Android iOS Windows macOS
Installation écran accueil Icône personnalisée Splash Screen Notifications Push
Check-in Check-out États des lieux Photos Commentaires
IndexedDB
POST /checkins
Réservation Date Agent Commentaires
Arrivée client ↓ Contrôle logement ↓ Signature ↓ Validation
Identité Réservation Voyageurs Documents
POST /inspections
Entrée Salon Cuisine Salle de bain Chambres Extérieur
Propreté Équipements Dégradations Observations
Capture photo Compression Géolocalisation Horodatage
JPEG PNG WEBP
Commentaire Zone concernée Niveau gravité
Client Agent
POST /inspections/{id}/sign
PDF signé Archivage
POST /checkouts
État logement Clés Équipements Consommations
Description Photos Montant estimé Responsable
Retour connexion Synchronisation manuelle Planification
Photos États des lieux Signatures Commentaires
Modification locale + Modification serveur
Last Write Wins ou Validation manuelle
Arrivée client Départ client Nouvelle mission Retard paiement Contrat signé
GET /field-operations/tasks
Check-in Check-out Ménage Maintenance Inspection
Mission ↓ Intervention ↓ Photos ↓ Validation ↓ Clôture
model CheckIn {
id String @id @default(uuid())
reservationId String
agentId String
checkedInAt DateTime
notes String?
}
model CheckOut {
id String @id @default(uuid())
reservationId String
agentId String
checkedOutAt DateTime
notes String?
}
model Inspection {
id String @id @default(uuid())
reservationId String
inspectionType String
status String
createdAt DateTime
}
model InspectionPhoto {
id String @id @default(uuid())
inspectionId String
filePath String
comment String?
}
model FieldTask {
id String @id @default(uuid())
assignedToId String
taskType String
status String
dueDate DateTime
}
src/modules/mobile ├── checkins │ ├── checkouts │ ├── inspections │ ├── field-operations │ ├── offline-sync │ └── push-notifications
apps/web ├── app/mobile │ ├── app/checkin │ ├── app/checkout │ ├── app/inspections │ ├── app/tasks │ └── app/offline
Biens Réservations Clients Missions Checklists
Background Sync Service Worker Queue Offline
CheckInCompleted
InspectionSigned
OfflineSyncCompleted
CheckIns CheckOuts Inspections FieldOperations Mobile
Environ :
30 endpoints
/mobile /mobile/tasks /mobile/checkin /mobile/checkout /mobile/inspections /mobile/offline
CheckInWizard CheckOutWizard InspectionForm PhotoUploader SignaturePad OfflineSyncIndicator
CheckInService CheckOutService InspectionService OfflineSyncService
Mode Offline ↓ Création Inspection ↓ Retour réseau ↓ Synchronisation
Mission terrain ↓ Check-in ↓ Photos ↓ Signature ↓ Mode hors ligne ↓ Synchronisation ↓ Archivage
Le Sprint 16 est terminé lorsque :
À l'issue du Sprint 16 :
La plateforme couvre désormais l'ensemble des opérations de terrain nécessaires à une activité de location professionnelle.
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 :
À l'issue du Sprint 17, la plateforme disposera d'un moteur avancé d'optimisation des revenus.