Feature #1133
openImplémenter une page de profil utilisateur avec gestion des crédits et des tiers d'abonnement
0%
## Spec — Page de profil utilisateur + gestion crédits & tiers (épopée #1133)
### Approche
Domaine hexagonal credits/tiers/audit dans `api/` (domain/application/infrastructure/presentation), édition réservée aux admins OmDev, événements de domaine déclenchant les notifications email. Frontend Next.js (next-intl en.ts+fr.ts, Atomic Design) : page profil client + page admin.
### Tiers
Démarrage 2 500 €, Maintenance 4 200 €, Évolutions 9 700 €, Pilotage 16 000 € (crédits/flux/SLA), seedés et synchronisés avec les offres commerciales.
### Critères d'acceptation (épopée)
- Page profil client accessible (« Mon compte »); infos perso modifiables sauf email.
- Changement mot de passe sécurisé : vérif ancien + email de confirmation.
- Jauge crédits adaptative (vert >50 %, orange <30 %, rouge <10 %).
- Tier affiché avec avantages + couleur distinctive; bouton « Demander une mise à niveau » (optionnel).
- Page admin : lister/filtrer/modifier tiers, ajuster crédits, historique consultable.
- Emails : mot de passe / tier / crédits bas (<20 %).
- Permissions : seuls les admins OmDev modifient tiers/crédits.
### Enfants (split par responsabilité)
1. Backend — modèle crédits/tiers + permissions + historique (racine).
2. Backend — notifications email (dépend de 1).
3. Frontend — page profil client (dépend de 1).
4. Fullstack — changement de mot de passe sécurisé (dépend de 1,2).
5. Fullstack — page admin (dépend de 1,2).
Description
### Problème
Actuellement, les utilisateurs de Pipeliner n'ont pas de page dédiée pour consulter ou gérer leur profil, leurs crédits disponibles, leur niveau d'abonnement (tier), ou pour modifier leur mot de passe. Les administrateurs OmDev ne peuvent pas non plus attribuer ou modifier les tiers des clients directement depuis l'interface.
### Contexte
Dans le cadre de l'amélioration de l'expérience utilisateur et de la gestion administrative, il est nécessaire d'ajouter une page de profil complète pour les clients et une interface dédiée pour les administrateurs. Cette fonctionnalité permettra :
- Aux clients de visualiser leurs informations personnelles, leurs crédits restants, leur tier actuel, et de modifier leur mot de passe.
- Aux administrateurs de gérer les tiers des clients et, optionnellement, leurs crédits.
Les tiers disponibles sont : Démarrage (2 500 €), Maintenance (4 200 €), Évolutions (9 700 €), et Pilotage (16 000 €), chacun avec des caractéristiques spécifiques (crédits, flux, SLA).
### Comportement proposé
1. **Page de profil client** :
- Affichage des informations personnelles (nom, email, entreprise).
- Section dédiée aux crédits restants avec une jauge visuelle (couleur adaptative selon le niveau de consommation).
- Affichage du tier actuel avec ses avantages (liste à puces).
- Formulaire sécurisé pour changer le mot de passe (avec vérification de l'ancien mot de passe et envoi d'un email de confirmation).
- Option : historique des consommations de crédits.
2. **Page admin** :
- Liste filtrable des clients avec leurs informations clés (nom, email, tier, crédits restants).
- Possibilité de modifier le tier d'un client via un menu déroulant.
- Option : ajout/soustraction manuelle de crédits.
- Historique des modifications apportées aux tiers et crédits.
3. **Notifications** :
- Envoi d'emails automatiques pour les changements de mot de passe, de tier, ou en cas de crédits bas (<20%).
## Acceptance criteria
['- [ ] La page de profil client est accessible depuis le menu principal (ex. : bouton "Mon compte").', '- [ ] Les informations personnelles du client sont affichées et modifiables (sauf email).', "- [ ] Le changement de mot de passe est sécurisé : vérification de l'ancien mot de passe et envoi d'un email de confirmation.", '- [ ] Les crédits restants sont affichés sous forme de jauge visuelle avec une couleur adaptative (vert >50%, orange <30%, rouge <10%).', '- [ ] Le tier actuel est affiché avec ses avantages (liste à puces) et une couleur distinctive par niveau.', '- [ ] Un bouton "Demander une mise à niveau" est présent (optionnel, redirige vers un formulaire ou un email).', '- [ ] La page admin permet de lister, filtrer et modifier les tiers des clients.', '- [ ] Les modifications de tier ou de crédits sont enregistrées dans un historique consultable.', '- [ ] Les notifications par email sont envoyées pour les changements de mot de passe, de tier, ou en cas de crédits bas.', '- [ ] Les données des crédits et des tiers sont synchronisées en temps réel avec les offres commerciales.', '- [ ] Les permissions sont vérifiées : seuls les administrateurs OmDev peuvent modifier les tiers et crédits.']
## Classification
- feature
## Complexity
- 7/10 — La complexité est élevée en raison de l'intégration de plusieurs fonctionnalités (jauges visuelles, gestion des crédits, notifications, historique), de la synchronisation avec les offres commerciales, et de la sécurisation des modifications de mot de passe.
Files
RA Updated by Redmine Admin about 2 months ago
- Status changed from Submitted to Spec
RA Updated by Redmine Admin about 2 months ago
## Spec (épopée) — Page de profil utilisateur + gestion crédits & tiers
### Problème
Les clients Pipeliner n'ont pas de page de profil (infos perso, crédits, tier, mot de passe) et les admins OmDev ne peuvent pas gérer les tiers/crédits depuis l'interface.
### Approche
Modèle hexagonal côté backend (`api/`) : nouveau domaine **credits/tiers/audit** + permissions (édition réservée aux admins OmDev), exposé via des endpoints de présentation. Notifications email (changement mot de passe / tier / crédits bas <20%) déclenchées par événements de domaine. Côté frontend Next.js : une page profil client et une page admin, en next-intl (en.ts + fr.ts) et Atomic Design, jauge via wrappers existants.
### Tiers
Démarrage (2 500 €), Maintenance (4 200 €), Évolutions (9 700 €), Pilotage (16 000 €) — chacun avec crédits/flux/SLA. Définitions seedées et synchronisées avec les offres commerciales.
### Critères d'acceptation (épopée)
- [ ] Page profil client accessible depuis le menu (« Mon compte »).
- [ ] Infos perso affichées, modifiables sauf email.
- [ ] Changement de mot de passe sécurisé : vérif ancien mot de passe + email de confirmation.
- [ ] Jauge de crédits à couleur adaptative (vert >50 %, orange <30 %, rouge <10 %).
- [ ] Tier affiché avec avantages (liste à puces) + couleur distinctive par niveau.
- [ ] Bouton « Demander une mise à niveau » (optionnel).
- [ ] Page admin : lister, filtrer, modifier les tiers ; ajuster les crédits.
- [ ] Historique des modifications tier/crédits consultable.
- [ ] Emails envoyés pour mot de passe / tier / crédits bas.
- [ ] Permissions vérifiées : seuls les admins OmDev modifient tiers/crédits.
### Décomposition (`should_split = true`)
1. **Backend** — Modèle de données crédits/tiers + permissions + historique (S/M/L : **L**) — racine, aucune dépendance.
2. **Backend** — Notifications email (mot de passe / tier / crédits bas <20 %) (**M**) — dépend de #1.
3. **Frontend** — Page de profil client (infos, jauge crédits, carte tier, upgrade) (**M**) — dépend de #1.
4. **Fullstack** — Changement de mot de passe sécurisé (vérif ancien + email de confirmation) (**M**) — dépend de #1, #2.
5. **Fullstack** — Page admin (liste filtrable, édition tier, ajustement crédits, historique) (**L**) — dépend de #1, #2.
RA Updated by Redmine Admin about 2 months ago
- spec_ref updated (diff)
RA Updated by Redmine Admin about 2 months ago
- Subtask #1141 added
RA Updated by Redmine Admin about 2 months ago
- Subtask #1142 added
RA Updated by Redmine Admin about 2 months ago
- Subtask #1143 added
RA Updated by Redmine Admin about 2 months ago
- Subtask #1144 added
RA Updated by Redmine Admin about 2 months ago
- Subtask #1145 added
RA Updated by Redmine Admin about 2 months ago
RA Updated by Redmine Admin about 2 months ago
- Status changed from Design to In development
RA Updated by Redmine Admin about 2 months ago
RA Updated by Redmine Admin about 2 months ago
- Status changed from Design to QA
Tous les 5 sous-tickets (#1141 modèle crédits/tiers, #1142 notifications email, #1143 page profil, #1144 changement mot de passe, #1145 page admin) sont implémentés (TDD), revus (code-review + corrections), et fusionnés sur `dev`. Gates verts (FE: vitest/tsc/eslint/build ; API: pytest/ruff/mypy). PRs #67, #68, #69, #70, #71. Épopée passée en QA. Reste : QA live + promotion dev→preprod→master (s'arrête à la barrière d'approbation prod).