ujusum:2-implantation:3-gestion_utilisateur
Différences
Ci-dessous, les différences entre deux révisions de la page.
| ujusum:2-implantation:3-gestion_utilisateur [2026/06/20 15:24] – créée 88.174.75.218 | ujusum:2-implantation:3-gestion_utilisateur [2026/06/29 22:02] (Version actuelle) – supprimée 83.202.252.200 | ||
|---|---|---|---|
| Ligne 1: | Ligne 1: | ||
| - | ====== Sprint 2 — Gestion Utilisateurs ====== | ||
| - | ===== Objectif du Sprint ===== | ||
| - | |||
| - | Compléter le domaine Utilisateurs afin de disposer d'un référentiel utilisateur exploitable par tous les modules métiers. | ||
| - | |||
| - | À l' | ||
| - | |||
| - | * Les utilisateurs disposent d'un profil complet | ||
| - | * Les adresses sont gérées | ||
| - | * Les documents sont téléversables | ||
| - | * Les sessions sont historisées | ||
| - | * Les connexions sont tracées | ||
| - | * Les préférences utilisateur sont configurables | ||
| - | * Les notifications sont personnalisables | ||
| - | * Les fondations KYC sont prêtes | ||
| - | |||
| - | Ce sprint clôture le domaine Utilisateurs avant le démarrage du cœur métier immobilier. | ||
| - | |||
| - | ---- | ||
| - | |||
| - | ====== Périmètre ====== | ||
| - | |||
| - | ===== Modules concernés ===== | ||
| - | |||
| - | < | ||
| - | UsersModule | ||
| - | |||
| - | ProfilesModule | ||
| - | |||
| - | DocumentsModule | ||
| - | |||
| - | SessionsModule | ||
| - | |||
| - | NotificationsModule | ||
| - | </ | ||
| - | |||
| - | ---- | ||
| - | |||
| - | ====== User Stories ====== | ||
| - | |||
| - | ===== US-201 : Consulter son profil ===== | ||
| - | |||
| - | **En tant qu' | ||
| - | |||
| - | Je souhaite consulter mes informations | ||
| - | |||
| - | Afin de vérifier leur exactitude. | ||
| - | |||
| - | ---- | ||
| - | |||
| - | ===== Endpoint ===== | ||
| - | |||
| - | <code http> | ||
| - | GET /users/me | ||
| - | </ | ||
| - | |||
| - | ---- | ||
| - | |||
| - | ===== Critères ===== | ||
| - | |||
| - | * Profil complet affiché | ||
| - | * Données à jour | ||
| - | * Temps de réponse < 500 ms | ||
| - | |||
| - | ---- | ||
| - | |||
| - | ====== US-202 : Modifier son profil ====== | ||
| - | |||
| - | ===== Endpoint ===== | ||
| - | |||
| - | <code http> | ||
| - | PUT /users/me | ||
| - | </ | ||
| - | |||
| - | ---- | ||
| - | |||
| - | ===== Champs ===== | ||
| - | |||
| - | < | ||
| - | Prénom | ||
| - | |||
| - | Nom | ||
| - | |||
| - | Téléphone | ||
| - | |||
| - | Date de naissance | ||
| - | |||
| - | Nationalité | ||
| - | </ | ||
| - | |||
| - | ---- | ||
| - | |||
| - | ====== US-203 : Gérer ses adresses ====== | ||
| - | |||
| - | ===== Endpoints ===== | ||
| - | |||
| - | <code http> | ||
| - | GET / | ||
| - | |||
| - | POST / | ||
| - | |||
| - | PUT / | ||
| - | |||
| - | DELETE / | ||
| - | </ | ||
| - | |||
| - | ---- | ||
| - | |||
| - | ===== Données ===== | ||
| - | |||
| - | < | ||
| - | Adresse | ||
| - | |||
| - | Complément | ||
| - | |||
| - | Code Postal | ||
| - | |||
| - | Ville | ||
| - | |||
| - | Pays | ||
| - | |||
| - | Adresse principale | ||
| - | </ | ||
| - | |||
| - | ---- | ||
| - | |||
| - | ====== US-204 : Déposer un document ====== | ||
| - | |||
| - | ===== Objectif ===== | ||
| - | |||
| - | Préparer la vérification d' | ||
| - | |||
| - | ---- | ||
| - | |||
| - | ===== Types ===== | ||
| - | |||
| - | < | ||
| - | IDENTITY_CARD | ||
| - | |||
| - | PASSPORT | ||
| - | |||
| - | DRIVING_LICENSE | ||
| - | |||
| - | PROOF_OF_ADDRESS | ||
| - | |||
| - | OTHER | ||
| - | </ | ||
| - | |||
| - | ---- | ||
| - | |||
| - | ===== Endpoint ===== | ||
| - | |||
| - | <code http> | ||
| - | POST / | ||
| - | </ | ||
| - | |||
| - | ---- | ||
| - | |||
| - | ===== Critères ===== | ||
| - | |||
| - | * Upload sécurisé | ||
| - | * Virus Scan futur compatible | ||
| - | * Stockage MinIO/S3 | ||
| - | |||
| - | ---- | ||
| - | |||
| - | ====== US-205 : Consulter ses documents ====== | ||
| - | |||
| - | ===== Endpoint ===== | ||
| - | |||
| - | <code http> | ||
| - | GET / | ||
| - | </ | ||
| - | |||
| - | ---- | ||
| - | |||
| - | ====== US-206 : Vérification identité ====== | ||
| - | |||
| - | ===== Statuts ===== | ||
| - | |||
| - | < | ||
| - | PENDING | ||
| - | |||
| - | UNDER_REVIEW | ||
| - | |||
| - | VALIDATED | ||
| - | |||
| - | REJECTED | ||
| - | </ | ||
| - | |||
| - | ---- | ||
| - | |||
| - | ===== Endpoint ===== | ||
| - | |||
| - | <code http> | ||
| - | POST / | ||
| - | </ | ||
| - | |||
| - | ---- | ||
| - | |||
| - | ===== Évolution future ===== | ||
| - | |||
| - | Intégration : | ||
| - | |||
| - | < | ||
| - | FranceConnect | ||
| - | |||
| - | Onfido | ||
| - | |||
| - | Stripe Identity | ||
| - | </ | ||
| - | |||
| - | ---- | ||
| - | |||
| - | ====== US-207 : Consulter ses sessions ====== | ||
| - | |||
| - | ===== Endpoint ===== | ||
| - | |||
| - | <code http> | ||
| - | GET / | ||
| - | </ | ||
| - | |||
| - | ---- | ||
| - | |||
| - | ===== Informations ===== | ||
| - | |||
| - | < | ||
| - | Date | ||
| - | |||
| - | Adresse IP | ||
| - | |||
| - | Navigateur | ||
| - | |||
| - | Pays | ||
| - | |||
| - | Statut | ||
| - | </ | ||
| - | |||
| - | ---- | ||
| - | |||
| - | ====== US-208 : Révoquer une session ====== | ||
| - | |||
| - | ===== Endpoint ===== | ||
| - | |||
| - | <code http> | ||
| - | DELETE / | ||
| - | </ | ||
| - | |||
| - | ---- | ||
| - | |||
| - | ===== Critères ===== | ||
| - | |||
| - | * Déconnexion immédiate | ||
| - | * Token invalidé | ||
| - | |||
| - | ---- | ||
| - | |||
| - | ====== US-209 : Historique de connexion ====== | ||
| - | |||
| - | ===== Endpoint ===== | ||
| - | |||
| - | <code http> | ||
| - | GET / | ||
| - | </ | ||
| - | |||
| - | ---- | ||
| - | |||
| - | ===== Données ===== | ||
| - | |||
| - | < | ||
| - | Date | ||
| - | |||
| - | IP | ||
| - | |||
| - | Navigateur | ||
| - | |||
| - | Résultat | ||
| - | |||
| - | Pays | ||
| - | </ | ||
| - | |||
| - | ---- | ||
| - | |||
| - | ====== US-210 : Préférences utilisateur ====== | ||
| - | |||
| - | ===== Endpoint ===== | ||
| - | |||
| - | <code http> | ||
| - | GET / | ||
| - | |||
| - | PUT / | ||
| - | </ | ||
| - | |||
| - | ---- | ||
| - | |||
| - | ===== Préférences ===== | ||
| - | |||
| - | < | ||
| - | Langue | ||
| - | |||
| - | Fuseau horaire | ||
| - | |||
| - | Devise | ||
| - | |||
| - | Format date | ||
| - | |||
| - | Format heure | ||
| - | </ | ||
| - | |||
| - | ---- | ||
| - | |||
| - | ====== US-211 : Notifications ====== | ||
| - | |||
| - | ===== Endpoint ===== | ||
| - | |||
| - | <code http> | ||
| - | GET / | ||
| - | |||
| - | PUT / | ||
| - | </ | ||
| - | |||
| - | ---- | ||
| - | |||
| - | ===== Paramètres ===== | ||
| - | |||
| - | < | ||
| - | |||
| - | |||
| - | SMS | ||
| - | |||
| - | Push | ||
| - | |||
| - | Marketing | ||
| - | |||
| - | Paiements | ||
| - | |||
| - | Réservations | ||
| - | |||
| - | Contrats | ||
| - | </ | ||
| - | |||
| - | ---- | ||
| - | |||
| - | ====== Architecture Prisma ====== | ||
| - | |||
| - | ===== UserAddress ===== | ||
| - | |||
| - | <code prisma> | ||
| - | model UserAddress { | ||
| - | |||
| - | id String @id @default(uuid()) | ||
| - | |||
| - | userId | ||
| - | |||
| - | address1 | ||
| - | |||
| - | address2 | ||
| - | |||
| - | postalCode | ||
| - | |||
| - | city String | ||
| - | |||
| - | country | ||
| - | |||
| - | isDefault | ||
| - | |||
| - | user User @relation( | ||
| - | | ||
| - | | ||
| - | ) | ||
| - | } | ||
| - | </ | ||
| - | |||
| - | ---- | ||
| - | |||
| - | ===== UserDocument ===== | ||
| - | |||
| - | <code prisma> | ||
| - | model UserDocument { | ||
| - | |||
| - | id String @id @default(uuid()) | ||
| - | |||
| - | userId | ||
| - | |||
| - | documentType | ||
| - | |||
| - | fileName | ||
| - | |||
| - | storagePath | ||
| - | |||
| - | status | ||
| - | |||
| - | uploadedAt | ||
| - | |||
| - | } | ||
| - | </ | ||
| - | |||
| - | ---- | ||
| - | |||
| - | ===== UserSession ===== | ||
| - | |||
| - | <code prisma> | ||
| - | model UserSession { | ||
| - | |||
| - | id String @id @default(uuid()) | ||
| - | |||
| - | userId | ||
| - | |||
| - | refreshToken | ||
| - | |||
| - | ipAddress | ||
| - | |||
| - | userAgent | ||
| - | |||
| - | expiresAt | ||
| - | |||
| - | } | ||
| - | </ | ||
| - | |||
| - | ---- | ||
| - | |||
| - | ===== LoginHistory ===== | ||
| - | |||
| - | <code prisma> | ||
| - | model LoginHistory { | ||
| - | |||
| - | id String @id @default(uuid()) | ||
| - | |||
| - | userId | ||
| - | |||
| - | ipAddress | ||
| - | |||
| - | userAgent | ||
| - | |||
| - | success | ||
| - | |||
| - | createdAt | ||
| - | } | ||
| - | </ | ||
| - | |||
| - | ---- | ||
| - | |||
| - | ===== UserPreference ===== | ||
| - | |||
| - | <code prisma> | ||
| - | model UserPreference { | ||
| - | |||
| - | id String @id @default(uuid()) | ||
| - | |||
| - | userId | ||
| - | |||
| - | language | ||
| - | |||
| - | timezone | ||
| - | |||
| - | currency | ||
| - | |||
| - | } | ||
| - | </ | ||
| - | |||
| - | ---- | ||
| - | |||
| - | ====== Structure Backend ====== | ||
| - | |||
| - | < | ||
| - | src/ | ||
| - | |||
| - | ├── profile | ||
| - | │ | ||
| - | ├── addresses | ||
| - | │ | ||
| - | ├── documents | ||
| - | │ | ||
| - | ├── sessions | ||
| - | │ | ||
| - | ├── preferences | ||
| - | │ | ||
| - | ├── notifications | ||
| - | │ | ||
| - | └── login-history | ||
| - | </ | ||
| - | |||
| - | ---- | ||
| - | |||
| - | ====== Swagger ====== | ||
| - | |||
| - | ===== Nouveaux tags ===== | ||
| - | |||
| - | < | ||
| - | Profiles | ||
| - | |||
| - | Addresses | ||
| - | |||
| - | Documents | ||
| - | |||
| - | Sessions | ||
| - | |||
| - | Preferences | ||
| - | |||
| - | Notifications | ||
| - | </ | ||
| - | |||
| - | ---- | ||
| - | |||
| - | ===== Nouveaux endpoints ===== | ||
| - | |||
| - | Environ : | ||
| - | |||
| - | < | ||
| - | 20 endpoints REST | ||
| - | </ | ||
| - | |||
| - | ---- | ||
| - | |||
| - | ====== Frontend ====== | ||
| - | |||
| - | ===== Pages ===== | ||
| - | |||
| - | < | ||
| - | /profile | ||
| - | |||
| - | / | ||
| - | |||
| - | / | ||
| - | |||
| - | / | ||
| - | |||
| - | / | ||
| - | |||
| - | / | ||
| - | |||
| - | / | ||
| - | </ | ||
| - | |||
| - | ---- | ||
| - | |||
| - | ===== Composants ===== | ||
| - | |||
| - | < | ||
| - | ProfileCard | ||
| - | |||
| - | AddressForm | ||
| - | |||
| - | DocumentUploader | ||
| - | |||
| - | SessionTable | ||
| - | |||
| - | PreferencesForm | ||
| - | |||
| - | NotificationSettings | ||
| - | </ | ||
| - | |||
| - | ---- | ||
| - | |||
| - | ====== Tests ====== | ||
| - | |||
| - | ===== Unitaires ===== | ||
| - | |||
| - | < | ||
| - | UserProfileService | ||
| - | |||
| - | AddressService | ||
| - | |||
| - | DocumentService | ||
| - | |||
| - | SessionService | ||
| - | </ | ||
| - | |||
| - | ---- | ||
| - | |||
| - | ===== Intégration ===== | ||
| - | |||
| - | < | ||
| - | Upload document | ||
| - | |||
| - | ↓ | ||
| - | |||
| - | Consultation document | ||
| - | |||
| - | ↓ | ||
| - | |||
| - | Suppression document | ||
| - | </ | ||
| - | |||
| - | ---- | ||
| - | |||
| - | ===== E2E ===== | ||
| - | |||
| - | < | ||
| - | Login | ||
| - | |||
| - | ↓ | ||
| - | |||
| - | Modifier profil | ||
| - | |||
| - | ↓ | ||
| - | |||
| - | Ajouter adresse | ||
| - | |||
| - | ↓ | ||
| - | |||
| - | Uploader document | ||
| - | |||
| - | ↓ | ||
| - | |||
| - | Modifier préférences | ||
| - | |||
| - | ↓ | ||
| - | |||
| - | Consulter sessions | ||
| - | </ | ||
| - | |||
| - | ---- | ||
| - | |||
| - | ====== Définition de terminé ====== | ||
| - | |||
| - | Le Sprint 2 est terminé lorsque : | ||
| - | |||
| - | * Profil complet opérationnel | ||
| - | * Adresses opérationnelles | ||
| - | * Documents opérationnels | ||
| - | * Sessions opérationnelles | ||
| - | * Historique opérationnel | ||
| - | * Préférences opérationnelles | ||
| - | * Swagger à jour | ||
| - | * Tests verts | ||
| - | * CI verte | ||
| - | |||
| - | ---- | ||
| - | |||
| - | ====== Livrables ====== | ||
| - | |||
| - | * UserProfileModule | ||
| - | * UserAddressModule | ||
| - | * UserDocumentModule | ||
| - | * UserSessionModule | ||
| - | * UserPreferenceModule | ||
| - | * NotificationPreferenceModule | ||
| - | * DTO | ||
| - | * Migrations Prisma | ||
| - | * Swagger | ||
| - | * Tests | ||
| - | |||
| - | ---- | ||
| - | |||
| - | ====== Démonstration Sprint ====== | ||
| - | |||
| - | Scénario complet : | ||
| - | |||
| - | < | ||
| - | 1. Création compte | ||
| - | |||
| - | 2. Connexion | ||
| - | |||
| - | 3. Modification profil | ||
| - | |||
| - | 4. Ajout adresse | ||
| - | |||
| - | 5. Upload document | ||
| - | |||
| - | 6. Modification préférences | ||
| - | |||
| - | 7. Consultation sessions | ||
| - | |||
| - | 8. Déconnexion d'une session | ||
| - | </ | ||
| - | |||
| - | ---- | ||
| - | |||
| - | ====== Sprint suivant ====== | ||
| - | |||
| - | ===== Sprint 3 — Catalogue Immobilier ===== | ||
| - | |||
| - | Objectif : | ||
| - | |||
| - | Construire le premier domaine métier cœur de la plateforme. | ||
| - | |||
| - | Modules concernés : | ||
| - | |||
| - | < | ||
| - | PropertiesModule | ||
| - | |||
| - | PropertyMediaModule | ||
| - | |||
| - | PropertyFeaturesModule | ||
| - | |||
| - | PropertyAvailabilityModule | ||
| - | |||
| - | PropertyRatesModule | ||
| - | </ | ||
| - | |||
| - | Fonctionnalités : | ||
| - | |||
| - | * Création d'un bien | ||
| - | * Modification d'un bien | ||
| - | * Publication d'un bien | ||
| - | * Gestion des photos | ||
| - | * Gestion des équipements | ||
| - | * Gestion des disponibilités | ||
| - | * Gestion des tarifs | ||
| - | * Consultation publique | ||
| - | |||
| - | À l' | ||
ujusum/2-implantation/3-gestion_utilisateur.1781961864.txt.gz · Dernière modification : 2026/06/20 15:24 de 88.174.75.218