docs: Ajout briefing développement frontend
This commit is contained in:
parent
95d1c3741b
commit
b3ec1b94ea
266
docs/BRIEFING-FRONTEND.md
Normal file
266
docs/BRIEFING-FRONTEND.md
Normal file
@ -0,0 +1,266 @@
|
||||
# 🎯 BRIEFING - Développement Frontend P'titsPas
|
||||
|
||||
## Projet
|
||||
Application de gestion de crèches/assistantes maternelles - Frontend Flutter Web
|
||||
|
||||
---
|
||||
|
||||
## Accès Git
|
||||
|
||||
```bash
|
||||
# Cloner le repo
|
||||
git clone https://git.ptits-pas.fr/jmartin/petitspas.git
|
||||
cd petitspas/frontend
|
||||
|
||||
# Identifiants Gitea (si demandé)
|
||||
# User: jmartin
|
||||
# Token: giteabu_1796c6aace0e2ef7e4fdb49cdc3bc1bf8ee31fbc
|
||||
|
||||
# API Gitea pour consulter les tickets frontend
|
||||
curl -H "Authorization: token giteabu_1796c6aace0e2ef7e4fdb49cdc3bc1bf8ee31fbc" \
|
||||
"https://git.ptits-pas.fr/api/v1/repos/jmartin/petitspas/issues?state=open" | jq '.[] | select(.labels[].name == "frontend") | {number, title}'
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Backend API (déjà déployé)
|
||||
|
||||
**URL de base** : `https://app.ptits-pas.fr/api/v1/`
|
||||
|
||||
### Endpoints clés disponibles
|
||||
|
||||
| Endpoint | Méthode | Description |
|
||||
|----------|---------|-------------|
|
||||
| `/configuration/setup/status` | GET | Vérifie si setup terminé (`setupCompleted: true/false`) |
|
||||
| `/auth/login` | POST | Connexion (`{email, password}`) |
|
||||
| `/auth/me` | GET | Profil utilisateur (inclut `changement_mdp_obligatoire`) |
|
||||
| `/auth/change-password-required` | POST | Changement MDP obligatoire |
|
||||
| `/auth/refresh` | POST | Rafraîchir les tokens |
|
||||
| `/configuration` | GET | Liste toutes les configs (super_admin) |
|
||||
| `/configuration/:category` | GET | Configs par catégorie (email, app, security) |
|
||||
| `/configuration/bulk` | PATCH | Mise à jour multiple des configs |
|
||||
| `/configuration/test-smtp` | POST | Test connexion SMTP |
|
||||
| `/configuration/setup/complete` | POST | Marquer setup comme terminé |
|
||||
| `/gestionnaires` | POST | Créer gestionnaire (super_admin only) |
|
||||
| `/gestionnaires` | GET | Liste des gestionnaires |
|
||||
| `/documents-legaux/actifs` | GET | CGU et Privacy actifs |
|
||||
|
||||
### Compte test super_admin
|
||||
|
||||
```
|
||||
Email: admin@ptits-pas.fr
|
||||
MDP: 4dm1n1strateur
|
||||
changement_mdp_obligatoire: true (première connexion)
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Tickets Frontend prioritaires
|
||||
|
||||
### Workflow d'initialisation (P1 - BLOQUANT)
|
||||
|
||||
| # | Ticket | Description | Effort |
|
||||
|---|--------|-------------|--------|
|
||||
| **#14** | Setup Wizard | Écran configuration initiale (SMTP, app) | 4-5h |
|
||||
| **#47** | Changement MDP Obligatoire | Modale bloquante après login si flag=true | 1-2h |
|
||||
| **#35** | Création Gestionnaire | Formulaire création gestionnaire | 2-3h |
|
||||
|
||||
### Authentification (P3)
|
||||
|
||||
| # | Ticket | Description | Effort |
|
||||
|---|--------|-------------|--------|
|
||||
| **#43** | Écran Création MDP | Page `/create-password?token=xxx` | 2h |
|
||||
| **#48** | Gestion Erreurs & Messages | Snackbars, intercepteur HTTP | 2h |
|
||||
|
||||
### Dashboard Gestionnaire (P3)
|
||||
|
||||
| # | Ticket | Description | Effort |
|
||||
|---|--------|-------------|--------|
|
||||
| **#44** | Structure Dashboard | Layout avec onglets Parents/AM | 2h |
|
||||
| **#45** | Liste Parents | Liste des parents en attente | 2h |
|
||||
| **#46** | Liste AM | Liste des AM en attente | 2h |
|
||||
|
||||
### Inscription (P3)
|
||||
|
||||
| # | Ticket | Description | Effort |
|
||||
|---|--------|-------------|--------|
|
||||
| **#38** | Inscription Parent Étape 3 | Enfants | 3h |
|
||||
| **#39** | Inscription Parent Étapes 4-6 | Finalisation | 4h |
|
||||
| **#40-42** | Inscription AM | 3 panneaux | 6h |
|
||||
| **#50** | Affichage CGU dynamique | Version lors inscription | 1h |
|
||||
|
||||
### Admin (P3)
|
||||
|
||||
| # | Ticket | Description | Effort |
|
||||
|---|--------|-------------|--------|
|
||||
| **#49** | Gestion Documents Légaux | Upload/activation CGU/Privacy | 4h |
|
||||
| **#51** | Écran Logs Admin | Optionnel v1.1 | 4h |
|
||||
|
||||
---
|
||||
|
||||
## Règles de codage
|
||||
|
||||
### Langue
|
||||
|
||||
- **Français** pour : commentaires, descriptions, noms métier
|
||||
- **Anglais** pour : termes techniques (controller, service, widget, singleton, etc.)
|
||||
|
||||
### Exemples
|
||||
|
||||
```dart
|
||||
// ✅ BON - Noms métier en français, technique en anglais
|
||||
class EcranConnexion extends StatefulWidget { }
|
||||
final utilisateurConnecte = authService.recupererUtilisateur();
|
||||
final gestionnaire = await gestionnaireService.creer(donnees);
|
||||
|
||||
// Widget avec nom métier
|
||||
class CarteEnfant extends StatelessWidget { }
|
||||
class FormulaireInscriptionParent extends StatefulWidget { }
|
||||
|
||||
// ❌ MAUVAIS - Tout en anglais
|
||||
class LoginScreen extends StatefulWidget { }
|
||||
final loggedInUser = authService.getUser();
|
||||
class ChildCard extends StatelessWidget { }
|
||||
```
|
||||
|
||||
### Termes à garder en anglais
|
||||
- Widget, StatefulWidget, StatelessWidget
|
||||
- Controller, Service, Provider
|
||||
- Singleton, Factory, Builder
|
||||
- async, await, Future, Stream
|
||||
- Navigator, Router, Route
|
||||
- API, HTTP, JSON, DTO
|
||||
|
||||
### Termes métier en français
|
||||
- Utilisateur, Parent, Enfant, Gestionnaire, Administrateur
|
||||
- AssistanteMaternelle (ou AM)
|
||||
- Inscription, Connexion, Déconnexion
|
||||
- Configuration, Paramètres
|
||||
- Validation, Refus, EnAttente
|
||||
|
||||
---
|
||||
|
||||
## Structure frontend existante
|
||||
|
||||
```
|
||||
frontend/lib/
|
||||
├── config/
|
||||
│ └── env.dart # Configuration environnement
|
||||
├── controllers/
|
||||
│ └── parent_dashboard_controller.dart
|
||||
├── models/
|
||||
│ ├── user_registration_data.dart
|
||||
│ ├── parent_user_registration_data.dart
|
||||
│ └── am_user_registration_data.dart
|
||||
├── navigation/
|
||||
│ └── app_router.dart # Routes de l'application
|
||||
├── screens/
|
||||
│ ├── auth/
|
||||
│ │ ├── login_screen.dart ✅ Fait
|
||||
│ │ ├── register_choice_screen.dart ✅ Fait
|
||||
│ │ ├── parent_register_step1-5_screen.dart ✅ Fait
|
||||
│ │ ├── am/ ✅ 4 étapes faites
|
||||
│ │ └── parent/ ✅ 5 étapes faites
|
||||
│ ├── administrateurs/
|
||||
│ │ ├── admin_dashboardScreen.dart
|
||||
│ │ └── creation/
|
||||
│ │ └── gestionnaires_create.dart ⚠️ Placeholder
|
||||
│ ├── home/
|
||||
│ │ ├── home_screen.dart
|
||||
│ │ └── parent_screen/
|
||||
│ └── legal/
|
||||
├── services/
|
||||
│ ├── auth_service.dart
|
||||
│ ├── bug_report_service.dart
|
||||
│ ├── dashboardService.dart
|
||||
│ ├── login_navigation_service.dart
|
||||
│ └── api/
|
||||
│ ├── api_config.dart
|
||||
│ └── tokenService.dart
|
||||
├── utils/
|
||||
│ └── data_generator.dart
|
||||
└── widgets/
|
||||
├── admin/
|
||||
│ ├── dashboard_admin.dart
|
||||
│ ├── gestionnaire_card.dart
|
||||
│ ├── gestionnaire_management_widget.dart
|
||||
│ └── parent_managmant_widget.dart
|
||||
├── dashbord_parent/
|
||||
└── ...
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Workflow Git
|
||||
|
||||
```bash
|
||||
# 1. Créer une branche feature
|
||||
git checkout develop
|
||||
git pull origin develop
|
||||
git checkout -b feature/XX-nom-ticket
|
||||
|
||||
# 2. Développer et commiter
|
||||
git add .
|
||||
git commit -m "feat(#XX): Description courte"
|
||||
|
||||
# 3. Pousser et créer PR
|
||||
git push -u origin feature/XX-nom-ticket
|
||||
|
||||
# 4. Créer PR vers master via Gitea ou API
|
||||
curl -X POST \
|
||||
-H "Authorization: token giteabu_1796c6aace0e2ef7e4fdb49cdc3bc1bf8ee31fbc" \
|
||||
-H "Content-Type: application/json" \
|
||||
-d '{"title":"feat(#XX): Titre","body":"Description\n\nCloses #XX","head":"feature/XX-nom-ticket","base":"master"}' \
|
||||
"https://git.ptits-pas.fr/api/v1/repos/jmartin/petitspas/pulls"
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Commandes Flutter
|
||||
|
||||
```bash
|
||||
# Installation des dépendances
|
||||
cd frontend
|
||||
flutter pub get
|
||||
|
||||
# Lancer en mode développement
|
||||
flutter run -d chrome
|
||||
# ou
|
||||
flutter run -d windows
|
||||
# ou
|
||||
flutter run -d macos
|
||||
|
||||
# Build web
|
||||
flutter build web
|
||||
|
||||
# Analyser le code
|
||||
flutter analyze
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Fichiers de configuration importants
|
||||
|
||||
### `lib/config/env.dart`
|
||||
```dart
|
||||
class Env {
|
||||
static const String apiUrl = 'https://app.ptits-pas.fr/api/v1';
|
||||
}
|
||||
```
|
||||
|
||||
### `lib/services/api/api_config.dart`
|
||||
Configuration des appels API avec intercepteurs.
|
||||
|
||||
---
|
||||
|
||||
## Recommandation de démarrage
|
||||
|
||||
1. **Ticket #47** - Modale changement MDP obligatoire (simple, rapide)
|
||||
2. **Ticket #14** - Setup Wizard (écran configuration initiale)
|
||||
3. **Ticket #35** - Formulaire création gestionnaire
|
||||
|
||||
Ces 3 tickets complètent le **workflow d'initialisation** !
|
||||
|
||||
---
|
||||
|
||||
*Dernière mise à jour : 27 janvier 2026*
|
||||
Loading…
x
Reference in New Issue
Block a user