nettoyage: Suppression des dossiers de la maquette initiale
|
Before Width: | Height: | Size: 2.3 MiB |
|
Before Width: | Height: | Size: 1.6 MiB |
|
Before Width: | Height: | Size: 2.2 MiB |
|
Before Width: | Height: | Size: 1.7 MiB |
|
Before Width: | Height: | Size: 2.2 MiB |
|
Before Width: | Height: | Size: 1.2 MiB |
|
Before Width: | Height: | Size: 2.3 MiB |
|
Before Width: | Height: | Size: 157 KiB |
|
Before Width: | Height: | Size: 1.4 MiB |
|
Before Width: | Height: | Size: 2.5 MiB |
|
Before Width: | Height: | Size: 1.8 MiB |
|
Before Width: | Height: | Size: 1.7 MiB |
|
Before Width: | Height: | Size: 1.9 MiB |
|
Before Width: | Height: | Size: 2.2 MiB |
|
Before Width: | Height: | Size: 2.3 MiB |
|
Before Width: | Height: | Size: 2.8 MiB |
|
Before Width: | Height: | Size: 157 KiB |
|
Before Width: | Height: | Size: 1.4 MiB |
|
Before Width: | Height: | Size: 662 KiB |
|
Before Width: | Height: | Size: 1.4 MiB |
|
Before Width: | Height: | Size: 1.4 MiB |
|
Before Width: | Height: | Size: 366 KiB |
|
Before Width: | Height: | Size: 501 KiB |
|
Before Width: | Height: | Size: 563 KiB |
|
Before Width: | Height: | Size: 498 KiB |
|
Before Width: | Height: | Size: 1.4 MiB |
|
Before Width: | Height: | Size: 1.3 MiB |
|
Before Width: | Height: | Size: 164 KiB |
|
Before Width: | Height: | Size: 1.2 MiB |
@ -1,51 +0,0 @@
|
|||||||
# Charte graphique · **P'titsPas**
|
|
||||||
*Version 1.0 – avril 2025*
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## 1. Essentiel de la marque
|
|
||||||
| Élément | Raison d'être |
|
|
||||||
|---------|---------------|
|
|
||||||
| **Nom** | *P'titsPas* · évoque le cheminement serein des 0-3 ans |
|
|
||||||
| **Signature** | « Grandir pas à pas, sereinement » |
|
|
||||||
| **Valeurs** | Bienveillance · Transparence · Simplicité · Modernité |
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## 2. Logos officiels
|
|
||||||
|
|
||||||
| Variante | Aperçu | Usage |
|
|
||||||
|----------|--------|-------|
|
|
||||||
| **Principal** |  | Headers, back-office, print A4+ |
|
|
||||||
| **Icône** |  | Favicon, PWA, app mobile |
|
|
||||||
| **Monochrome** |  | Sérigraphie, tampon, textile sombre |
|
|
||||||
|
|
||||||
> **Zone de protection** : laisser au minimum l'équivalent d'une pierre pastel autour du logotype.
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## 3. Palette de couleurs
|
|
||||||
|
|
||||||
| Nom | Hex | Rôle |
|
|
||||||
|-----|-----|------|
|
|
||||||
| Violet Pastel | `#c6a3d8` | Accent / information |
|
|
||||||
| Turquoise | `#8ad0c8` | Actions primaires |
|
|
||||||
| Jaune Doux | `#f2d269` | Avertissements légers |
|
|
||||||
| Corail | `#f4a28c` | États d'erreur ou badges « conflit » |
|
|
||||||
| Encre | `#2f2f2f` | Texte principal |
|
|
||||||
| Ivoire BG | `#fffef9` | Fond d'application & documents |
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## 4. Typographies
|
|
||||||
|
|
||||||
| Contexte | Fonte | Chargement |
|
|
||||||
|----------|-------|------------|
|
|
||||||
| Titres & accroches | **Merienda 600** | Google Fonts |
|
|
||||||
| Texte courant | **Merriweather 300/400** | Google Fonts |
|
|
||||||
| UI compact | **Inter** (fallback système) | CDN |
|
|
||||||
|
|
||||||
```css
|
|
||||||
h1, h2 { font-family: "Merienda", cursive; }
|
|
||||||
body { font-family: "Merriweather", serif; }
|
|
||||||
```
|
|
||||||
@ -1,257 +0,0 @@
|
|||||||
# Évolutions du Cahier des Charges
|
|
||||||
|
|
||||||
Ce document liste les modifications à apporter au cahier des charges original pour le rendre conforme à l'application développée.
|
|
||||||
|
|
||||||
## 1. Gestion des Enfants
|
|
||||||
|
|
||||||
### Modifications à apporter dans la section "Création de compte parent"
|
|
||||||
|
|
||||||
#### Situation actuelle dans le CDC :
|
|
||||||
- Mentionne uniquement la collecte d'informations sur l'enfant
|
|
||||||
- Ne précise pas la possibilité d'ajouter plusieurs enfants
|
|
||||||
- Ne mentionne pas la gestion des naissances multiples
|
|
||||||
- Ne mentionne pas la gestion des enfants à naître
|
|
||||||
|
|
||||||
#### Modifications proposées :
|
|
||||||
|
|
||||||
Ajouter le paragraphe suivant après la description de la collecte d'informations sur l'enfant :
|
|
||||||
|
|
||||||
```
|
|
||||||
Les parents peuvent ajouter autant d'enfants que nécessaire. Pour chaque enfant, les informations suivantes sont collectées :
|
|
||||||
- Prénom
|
|
||||||
- Date de naissance (ou date prévue pour les enfants à naître)
|
|
||||||
- Photo (optionnelle)
|
|
||||||
- Consentement pour l'utilisation de la photo
|
|
||||||
- Indication si l'enfant fait partie d'une naissance multiple (jumeaux, triplés, etc.)
|
|
||||||
|
|
||||||
Les parents peuvent :
|
|
||||||
- Ajouter un nouvel enfant à tout moment
|
|
||||||
- Supprimer un enfant ajouté
|
|
||||||
- Modifier les informations d'un enfant existant
|
|
||||||
- Indiquer si l'enfant est à naître
|
|
||||||
- Indiquer si l'enfant fait partie d'une naissance multiple
|
|
||||||
- Donner ou retirer leur consentement pour l'utilisation de la photo de l'enfant
|
|
||||||
```
|
|
||||||
|
|
||||||
### Modifications à apporter dans la section "Workflow de création de compte"
|
|
||||||
|
|
||||||
#### Situation actuelle dans le CDC :
|
|
||||||
- Étape 3 : "Collecte des informations sur l'enfant"
|
|
||||||
|
|
||||||
#### Modifications proposées :
|
|
||||||
|
|
||||||
Remplacer l'étape 3 par :
|
|
||||||
```
|
|
||||||
3. Collecte des informations sur les enfants
|
|
||||||
- Ajout d'un premier enfant
|
|
||||||
- Possibilité d'ajouter d'autres enfants
|
|
||||||
- Pour chaque enfant :
|
|
||||||
* Saisie du prénom
|
|
||||||
* Saisie de la date de naissance (ou date prévue)
|
|
||||||
* Option d'ajout d'une photo
|
|
||||||
* Option de consentement photo
|
|
||||||
* Indication si naissance multiple
|
|
||||||
* Indication si enfant à naître
|
|
||||||
- Possibilité de modifier ou supprimer un enfant
|
|
||||||
```
|
|
||||||
|
|
||||||
## 2. Workflow de Création de Compte
|
|
||||||
|
|
||||||
### Modifications à apporter dans la section "Workflow de création de compte"
|
|
||||||
|
|
||||||
#### Situation actuelle dans le CDC :
|
|
||||||
- Ne précise pas l'ordre exact des étapes
|
|
||||||
- Ne mentionne pas le statut du compte après création
|
|
||||||
- Ne détaille pas le processus de validation
|
|
||||||
|
|
||||||
#### Modifications proposées :
|
|
||||||
|
|
||||||
Ajouter les précisions suivantes au workflow :
|
|
||||||
|
|
||||||
```
|
|
||||||
Le processus de création de compte suit l'ordre suivant :
|
|
||||||
1. Collecte des informations du premier parent
|
|
||||||
2. Option d'ajout d'un second parent
|
|
||||||
3. Collecte des informations sur les enfants
|
|
||||||
4. Description de la situation familiale
|
|
||||||
5. Acceptation des conditions générales
|
|
||||||
6. Résumé et validation finale
|
|
||||||
|
|
||||||
Après la validation :
|
|
||||||
- Le compte est créé avec le statut "en attente"
|
|
||||||
- Un gestionnaire doit valider le compte avant son activation
|
|
||||||
- Les parents reçoivent une notification de la création de leur compte
|
|
||||||
- Une notification est envoyée aux gestionnaires pour validation
|
|
||||||
```
|
|
||||||
|
|
||||||
## 3. Informations Supplémentaires
|
|
||||||
|
|
||||||
### Modifications à apporter dans la section "Création de compte parent"
|
|
||||||
|
|
||||||
#### Situation actuelle dans le CDC :
|
|
||||||
- Ne mentionne pas la possibilité de présentation personnelle
|
|
||||||
- Ne mentionne pas la gestion des photos
|
|
||||||
- Ne précise pas les statuts possibles du compte
|
|
||||||
|
|
||||||
#### Modifications proposées :
|
|
||||||
|
|
||||||
Ajouter les sections suivantes :
|
|
||||||
|
|
||||||
```
|
|
||||||
### Informations complémentaires
|
|
||||||
Le premier parent peut optionnellement ajouter une présentation personnelle pour décrire sa situation et ses attentes.
|
|
||||||
|
|
||||||
### Gestion des photos
|
|
||||||
Pour chaque enfant, les parents peuvent :
|
|
||||||
- Ajouter une photo
|
|
||||||
- Donner ou retirer leur consentement pour l'utilisation de la photo
|
|
||||||
- La photo est stockée de manière sécurisée
|
|
||||||
- Le consentement est enregistré avec date et heure
|
|
||||||
|
|
||||||
### Statut du compte
|
|
||||||
Les statuts possibles du compte sont :
|
|
||||||
- En attente : compte créé, en attente de validation
|
|
||||||
- Validé : compte activé par un gestionnaire
|
|
||||||
- Rejeté : compte refusé par un gestionnaire
|
|
||||||
- Suspendu : compte temporairement désactivé
|
|
||||||
```
|
|
||||||
|
|
||||||
## 4. Validation et Sécurité
|
|
||||||
|
|
||||||
### Modifications à apporter dans la section "Validation"
|
|
||||||
|
|
||||||
#### Situation actuelle dans le CDC :
|
|
||||||
- Mentionne la validation par un gestionnaire
|
|
||||||
- Ne précise pas le processus de validation
|
|
||||||
- Ne mentionne pas les notifications
|
|
||||||
|
|
||||||
#### Modifications proposées :
|
|
||||||
|
|
||||||
Ajouter la section suivante :
|
|
||||||
|
|
||||||
```
|
|
||||||
### Processus de validation
|
|
||||||
1. Création du compte avec statut "en attente"
|
|
||||||
2. Notification automatique aux gestionnaires
|
|
||||||
3. Revue des informations par un gestionnaire
|
|
||||||
4. Décision de validation ou rejet
|
|
||||||
5. Notification aux parents de la décision
|
|
||||||
6. Activation ou rejet du compte selon la décision
|
|
||||||
|
|
||||||
### Notifications
|
|
||||||
- Les parents reçoivent une notification à chaque changement de statut
|
|
||||||
- Les gestionnaires reçoivent une notification pour chaque nouveau compte
|
|
||||||
- Un historique des validations est conservé
|
|
||||||
```
|
|
||||||
|
|
||||||
## 5. Initialisation de l'Application
|
|
||||||
|
|
||||||
### Ajout de l'administrateur par défaut
|
|
||||||
|
|
||||||
#### Situation actuelle dans le CDC :
|
|
||||||
- Ne mentionne pas l'existence d'un administrateur par défaut
|
|
||||||
- Ne précise pas les identifiants de connexion par défaut
|
|
||||||
|
|
||||||
#### Modifications proposées :
|
|
||||||
|
|
||||||
Ajouter la section suivante :
|
|
||||||
|
|
||||||
```
|
|
||||||
### Administrateur par défaut
|
|
||||||
Lors du premier démarrage de l'application, un compte administrateur est automatiquement créé avec les identifiants suivants :
|
|
||||||
- Email : administrateur@ptitspas.fr
|
|
||||||
- Mot de passe : password
|
|
||||||
|
|
||||||
Ce compte permet d'accéder à toutes les fonctionnalités administratives de l'application.
|
|
||||||
Le changement de mot de passe est obligatoire lors de la première connexion.
|
|
||||||
L'application doit forcer ce changement avant d'autoriser l'accès aux fonctionnalités administratives.
|
|
||||||
```
|
|
||||||
|
|
||||||
## 6. Changement de Nom de l'Application
|
|
||||||
|
|
||||||
### Situation actuelle dans le CDC :
|
|
||||||
- L'application est nommée "SuperNounou" dans tout le document
|
|
||||||
- Les références à l'application utilisent ce nom
|
|
||||||
|
|
||||||
### Modifications proposées :
|
|
||||||
|
|
||||||
Ajouter la section suivante :
|
|
||||||
|
|
||||||
```
|
|
||||||
### Changement de nom
|
|
||||||
L'application est renommée "P'titsPas" dans toute la documentation et l'interface utilisateur.
|
|
||||||
Ce changement implique :
|
|
||||||
- Mise à jour de toutes les références à "SuperNounou" dans le CDC
|
|
||||||
- Mise à jour des mentions légales
|
|
||||||
- Mise à jour de la documentation technique
|
|
||||||
- Mise à jour des interfaces utilisateur
|
|
||||||
- Mise à jour des messages système et notifications
|
|
||||||
- Mise à jour des adresses email (ex: support@ptitspas.fr)
|
|
||||||
```
|
|
||||||
|
|
||||||
### Impact sur l'application :
|
|
||||||
- Mise à jour de tous les textes statiques dans le code
|
|
||||||
- Mise à jour des templates d'email
|
|
||||||
- Mise à jour des messages de notification
|
|
||||||
- Mise à jour de la documentation utilisateur
|
|
||||||
- Mise à jour des mentions légales et CGU
|
|
||||||
|
|
||||||
## Format de présentation
|
|
||||||
|
|
||||||
Pour chaque évolution identifiée, ce document suivra la structure suivante :
|
|
||||||
1. Section concernée dans le CDC
|
|
||||||
2. Situation actuelle
|
|
||||||
3. Modifications proposées
|
|
||||||
4. Impact sur l'application
|
|
||||||
|
|
||||||
## Prochaines évolutions à documenter
|
|
||||||
|
|
||||||
- [x] Ajouter d'autres évolutions identifiées
|
|
||||||
- [ ] Mettre à jour le CDC original
|
|
||||||
- [ ] Valider les modifications avec les parties prenantes
|
|
||||||
|
|
||||||
# Évolutions proposées au cahier des charges
|
|
||||||
|
|
||||||
## 1. Workflow de création de compte
|
|
||||||
|
|
||||||
### 1.1 Récupération de compte
|
|
||||||
|
|
||||||
#### 1.1.1 Fonctionnalités
|
|
||||||
- Ajout d'un lien "Mot de passe oublié" sur la page de connexion
|
|
||||||
- Processus de récupération en 3 étapes :
|
|
||||||
1. Saisie de l'adresse email
|
|
||||||
2. Envoi d'un lien unique de réinitialisation (valide 24h)
|
|
||||||
3. Création d'un nouveau mot de passe
|
|
||||||
|
|
||||||
#### 1.1.2 Sécurité
|
|
||||||
- Le lien de réinitialisation doit être unique et à usage unique
|
|
||||||
- Le lien expire après 24 heures
|
|
||||||
- Le nouveau mot de passe doit respecter les mêmes critères que lors de la création de compte
|
|
||||||
- Notification par email lors de la réinitialisation du mot de passe
|
|
||||||
|
|
||||||
#### 1.1.3 Interface
|
|
||||||
- Page dédiée pour la saisie de l'email
|
|
||||||
- Page de confirmation d'envoi du lien
|
|
||||||
- Formulaire de réinitialisation du mot de passe
|
|
||||||
- Messages d'erreur clairs en cas de :
|
|
||||||
- Email non trouvé
|
|
||||||
- Lien expiré
|
|
||||||
- Mot de passe non conforme
|
|
||||||
|
|
||||||
## X. Amélioration de la Gestion des Photos Utilisateurs (Proposition)
|
|
||||||
|
|
||||||
### X.1 Recadrage et Redimensionnement des Photos
|
|
||||||
|
|
||||||
#### X.1.1 Fonctionnalités
|
|
||||||
- **Contexte :** Lors du téléchargement de photos par les utilisateurs (photos de profil, photos d'enfants).
|
|
||||||
- **Besoin :** Permettre à l'utilisateur de recadrer l'image (notamment en format carré pour les avatars) et potentiellement de la faire pivoter ou de zoomer avant son enregistrement final.
|
|
||||||
- **Objectif :** Améliorer l'expérience utilisateur, assurer une meilleure qualité et cohérence visuelle des images stockées et affichées dans l'application.
|
|
||||||
|
|
||||||
#### X.1.2 Solution Technique Envisagée (pour discussion)
|
|
||||||
- L'intégration d'une librairie Flutter tierce dédiée au recadrage d'image (par exemple, `image_cropper` ou `crop_image`) sera nécessaire après la sélection initiale de l'image via `image_picker`.
|
|
||||||
- La tentative initiale avec `image_cropper` (version 5.0.1) a rencontré des difficultés techniques d'intégration (erreur "Too many positional arguments" persistante avec `AndroidUiSettings`) et a été mise en attente. Une investigation plus approfondie ou l'évaluation d'alternatives sera requise.
|
|
||||||
|
|
||||||
#### X.1.3 Impact sur l'application
|
|
||||||
- Modification du flux de sélection d'image dans les écrans concernés (ex: `parent_register_step3_screen.dart`).
|
|
||||||
- Ajout potentiel de nouvelles dépendances et configurations spécifiques aux plateformes.
|
|
||||||
- Mise à jour de la documentation utilisateur si cette fonctionnalité est implémentée.
|
|
||||||
@ -1,108 +0,0 @@
|
|||||||
# SuperNounou – SSS-001
|
|
||||||
## Spécification technique & opérationnelle unifiée
|
|
||||||
_Version 0.2 – 24 avril 2025_
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## 1. Objet
|
|
||||||
Centraliser tous les aspects **techniques et opérationnels** de la plateforme SuperNounou :
|
|
||||||
- Sauvegarde & Plan de Reprise d’Activité (PRA)
|
|
||||||
- Spécifications des API & intégrations
|
|
||||||
- Directives de déploiement, d’observabilité, de CI/CD
|
|
||||||
|
|
||||||
## 2. Portée
|
|
||||||
Instances de production, pré-production et recette (Frontend, Backend, PostgreSQL, stockage objets), scripts d’installation, pipelines CI/CD, journaux et métriques.
|
|
||||||
|
|
||||||
## 3. Références
|
|
||||||
- CDC SuperNounou V1.1
|
|
||||||
- ISO 27001 / ISO 22301 bonnes pratiques
|
|
||||||
- Politique sécurité DSI Enedis #SEC-POL-2024
|
|
||||||
- RGPD (2016/679)
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
# A – Sauvegarde & Plan de Reprise d’Activité
|
|
||||||
|
|
||||||
### A.1 Architecture de sauvegarde
|
|
||||||
Schéma bloc, chiffrement AES-256 (KMS), réplication hors-site « Object Storage B ».
|
|
||||||
|
|
||||||
### A.2 Stratégie de sauvegarde
|
|
||||||
|
|
||||||
| Type | Fréquence | Rétention | Support |
|
|
||||||
|-------------------|-------------|-----------|--------------------|
|
|
||||||
| Incrémentale | Quotidienne | 30 j | Object Storage A |
|
|
||||||
| Complète | Hebdomadaire| 6 mois | Object Storage B |
|
|
||||||
| Export logique DB | Mensuelle | 5 ans | Stockage Glacier |
|
|
||||||
|
|
||||||
### A.3 PRA
|
|
||||||
RPO 24 h / RTO 4 h – scénarios : panne VM, corruption DB, sinistre DC – procédure détaillée + escalade.
|
|
||||||
|
|
||||||
### A.4 Tests de restauration
|
|
||||||
Intégrale semestrielle, partielle trimestrielle – rapport d’audit et actions correctives.
|
|
||||||
|
|
||||||
### A.5 Monitoring & alertes
|
|
||||||
Endpoint Prometheus `/metrics`, tableau Grafana « Backup status », alerte > 26 h sans backup.
|
|
||||||
|
|
||||||
### A.6 Rôles
|
|
||||||
DevOps Lead (implémentation), DBA (tests restore), RSSI (audit).
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
# B – API & Intégrations
|
|
||||||
|
|
||||||
### B.1 Conventions
|
|
||||||
OpenAPI 3 livré (`openapi.yaml`), version URL `/api/v1`, ISO 8601 dates.
|
|
||||||
|
|
||||||
### B.2 Sécurité API
|
|
||||||
JWT Bearer (ou OAuth 2), TLS 1.3, rate-limit 100 req/min/IP, signature HMAC pour webhooks.
|
|
||||||
|
|
||||||
### B.3 Exemples
|
|
||||||
Collection Postman, scripts cURL, guide « Appeler l’API ».
|
|
||||||
|
|
||||||
### B.4 Intégrations futures
|
|
||||||
SSO LDAP/SAML, webhook `contract.validated`, export statistiques CSV.
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
# C – Déploiement, CI/CD et Observabilité *(nouveau)*
|
|
||||||
|
|
||||||
### C.1 Déploiement communal (on-premise)
|
|
||||||
- **Objectif** : installation complète sur un serveur Linux ou VM en moins d’1 h.
|
|
||||||
- **Livrable** : solution de packaging **au choix** (Docker Compose, image VM, paquet .deb/.rpm).
|
|
||||||
- **Script update / rollback** : `update.sh` ou équivalent (backup ➜ pull ➜ migrate ➜ vérif ; rollback ≤ 5 min).
|
|
||||||
- **Config** : fichier `.env.sample` décrivant toutes les variables.
|
|
||||||
|
|
||||||
### C.2 Environnements
|
|
||||||
- Developpement local (Docker Compose).
|
|
||||||
- Recette & Production (serveur communal).
|
|
||||||
- Les étudiants doivent décrire la procédure de bascule Recette → Prod.
|
|
||||||
|
|
||||||
### C.3 Pipeline CI/CD
|
|
||||||
- Pipeline automatisé (tests unitaires + build image + scan CVE) déclenché à chaque merge.
|
|
||||||
- L’école fournit son propre dépôt Git/runner.
|
|
||||||
- Artifacts : images taguées, notes de version (`CHANGELOG.md`).
|
|
||||||
|
|
||||||
### C.4 Observabilité & logs
|
|
||||||
- Journaux applicatifs JSON (timestamp UTC, level, traceId).
|
|
||||||
- Rotation/retention : 7 jours sur disque, 30 jours sur archive compressée.
|
|
||||||
- Export métriques Prometheus (`/metrics`) : latence API, nombre de sessions, files d’attente hors-ligne.
|
|
||||||
- Tableaux Grafana d’exemple inclus (`grafana_dashboard.json`).
|
|
||||||
|
|
||||||
### C.5 SLA et performances (indicatifs)
|
|
||||||
- Disponibilité mensuelle cible : **≥ 98 %**.
|
|
||||||
- Temps de réponse P95 des opérations courantes : **< 500 ms**.
|
|
||||||
- Capacité test : **≈ 50 sessions simultanées** sans dégradation (> 1 s).
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
# D – Glossaire
|
|
||||||
AES-256, JWT, KMS, OpenAPI, RPO, RTO, rate-limit, HMAC, Compose, CI/CD…
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
# E – Historique des versions
|
|
||||||
|
|
||||||
| Version | Date | Auteur | Commentaire |
|
|
||||||
|---------|------------|------------------|---------------------------------|
|
|
||||||
| 0.1-draft | 2025-04-24 | Équipe projet | Création du SSS unifié |
|
|
||||||
| 0.2 | 2025-04-24 | ChatGPT & Julien | Ajout déploiement / CI/CD / logs |
|
|
||||||
@ -1,55 +0,0 @@
|
|||||||
import 'package:flutter/material.dart';
|
|
||||||
import 'package:google_fonts/google_fonts.dart';
|
|
||||||
import 'package:p_tits_pas/screens/auth/login_screen.dart';
|
|
||||||
import 'package:p_tits_pas/screens/auth/register_choice_screen.dart';
|
|
||||||
import 'package:p_tits_pas/screens/auth/parent_register_step1_screen.dart';
|
|
||||||
import 'package:p_tits_pas/screens/auth/parent_register_step2_screen.dart';
|
|
||||||
import 'package:p_tits_pas/screens/auth/parent_register_step3_screen.dart';
|
|
||||||
|
|
||||||
void main() {
|
|
||||||
// TODO: Initialiser SharedPreferences, Provider, etc.
|
|
||||||
runApp(const MyApp());
|
|
||||||
}
|
|
||||||
|
|
||||||
class MyApp extends StatelessWidget {
|
|
||||||
const MyApp({super.key});
|
|
||||||
|
|
||||||
@override
|
|
||||||
Widget build(BuildContext context) {
|
|
||||||
return MaterialApp(
|
|
||||||
title: 'P\'titsPas',
|
|
||||||
theme: ThemeData(
|
|
||||||
primarySwatch: Colors.blue, // TODO: Utiliser la palette de la charte graphique
|
|
||||||
textTheme: GoogleFonts.merriweatherTextTheme(
|
|
||||||
Theme.of(context).textTheme,
|
|
||||||
),
|
|
||||||
visualDensity: VisualDensity.adaptivePlatformDensity,
|
|
||||||
),
|
|
||||||
// Gestionnaire de routes initial (simple pour l'instant)
|
|
||||||
initialRoute: '/', // Ou '/login' selon le point d'entrée désiré
|
|
||||||
routes: {
|
|
||||||
'/': (context) => const LoginScreen(), // Exemple, pourrait être RegisterChoiceScreen aussi
|
|
||||||
'/login': (context) => const LoginScreen(),
|
|
||||||
'/register-choice': (context) => const RegisterChoiceScreen(),
|
|
||||||
'/parent-register/step1': (context) => const ParentRegisterStep1Screen(),
|
|
||||||
'/parent-register/step2': (context) => const ParentRegisterStep2Screen(),
|
|
||||||
'/parent-register/step3': (context) => const ParentRegisterStep3Screen(),
|
|
||||||
// TODO: Ajouter les autres routes (step 4, etc., dashboard...)
|
|
||||||
},
|
|
||||||
// Gestion des routes inconnues
|
|
||||||
onUnknownRoute: (settings) {
|
|
||||||
return MaterialPageRoute(
|
|
||||||
builder: (context) => Scaffold(
|
|
||||||
body: Center(
|
|
||||||
child: Text(
|
|
||||||
'Route inconnue :\n${settings.name}',
|
|
||||||
style: GoogleFonts.merriweather(fontSize: 20, color: Colors.red),
|
|
||||||
textAlign: TextAlign.center,
|
|
||||||
),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
);
|
|
||||||
},
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@ -1 +0,0 @@
|
|||||||
|
|
||||||
@ -1,22 +0,0 @@
|
|||||||
CustomAppTextField(
|
|
||||||
controller: _firstNameController,
|
|
||||||
labelText: 'Prénom',
|
|
||||||
hintText: 'Facultatif si à naître',
|
|
||||||
isRequired: !widget.childData.isUnbornChild,
|
|
||||||
),
|
|
||||||
const SizedBox(height: 6.0),
|
|
||||||
CustomAppTextField(
|
|
||||||
controller: _lastNameController,
|
|
||||||
labelText: 'Nom',
|
|
||||||
hintText: 'Nom de l\'enfant',
|
|
||||||
enabled: true,
|
|
||||||
),
|
|
||||||
const SizedBox(height: 9.0),
|
|
||||||
CustomAppTextField(
|
|
||||||
controller: _dobController,
|
|
||||||
labelText: widget.childData.isUnbornChild ? 'Date prévisionnelle de naissance' : 'Date de naissance',
|
|
||||||
hintText: 'JJ/MM/AAAA',
|
|
||||||
readOnly: true,
|
|
||||||
onTap: widget.onDateSelect,
|
|
||||||
suffixIcon: Icons.calendar_today,
|
|
||||||
),
|
|
||||||
@ -1,3 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?><Error><Code>AuthenticationFailed</Code><Message>Server failed to authenticate the request. Make sure the value of Authorization header is formed correctly including the signature.
|
|
||||||
RequestId:32300bba-601e-0021-763f-bc1466000000
|
|
||||||
Time:2025-05-03T15:21:39.1449044Z</Message><AuthenticationErrorDetail>Signed expiry time [Sat, 03 May 2025 15:21:15 GMT] must be after signed start time [Sat, 03 May 2025 15:21:39 GMT]</AuthenticationErrorDetail></Error>
|
|
||||||
@ -1,63 +0,0 @@
|
|||||||
|
|
||||||
<!DOCTYPE html>
|
|
||||||
<html lang="fr">
|
|
||||||
<head>
|
|
||||||
<meta charset="UTF-8">
|
|
||||||
<meta name="viewport" content="width=device-width,initial-scale=1">
|
|
||||||
<title>P’titsPas – Propositions UI Wizard</title>
|
|
||||||
<link href="https://fonts.googleapis.com/css2?family=Merienda:wght@600&family=Inter:wght@400;500&display=swap" rel="stylesheet">
|
|
||||||
<style>
|
|
||||||
body{background:#fffef9;font-family:Inter,sans-serif;color:#2f2f2f;line-height:1.6;padding:2rem;}
|
|
||||||
h1,h2{font-family:Merienda,cursive;margin:.5rem 0;}
|
|
||||||
.grid{display:grid;gap:2rem;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));}
|
|
||||||
.card{background:#fff;border-radius:18px;box-shadow:0 4px 12px rgba(0,0,0,.05);padding:1.5rem;text-align:center;}
|
|
||||||
img{max-width:100%;height:auto;border-radius:12px;}
|
|
||||||
.palette{display:flex;justify-content:center;gap:.5rem;margin-top:.75rem;}
|
|
||||||
.swatch{width:28px;height:28px;border-radius:50%;}
|
|
||||||
.code{font-size:.75rem;margin-top:.25rem;}
|
|
||||||
</style>
|
|
||||||
</head>
|
|
||||||
<body>
|
|
||||||
<h1>Création de compte : idées d’enchaînement de cartes</h1>
|
|
||||||
|
|
||||||
<p>Chaque étape s’affiche dans une « carte » pastel. En validant, la carte suivante glisse vers l’avant (animation CSS : <code>transform: translateX(-100%)</code> + <code>opacity</code>). Trois styles proposés :</p>
|
|
||||||
|
|
||||||
<div class="grid">
|
|
||||||
<div class="card">
|
|
||||||
<h2>Style 1 : Watercolor</h2>
|
|
||||||
<img src="A_digital_graphic_design_image_displays_style_opti.png" alt="watercolor stack"/>
|
|
||||||
<div class="palette">
|
|
||||||
<div class="swatch" style="background:#FBC9C4"></div>
|
|
||||||
<div class="swatch" style="background:#FBD38B"></div>
|
|
||||||
<div class="swatch" style="background:#A9D8C6"></div>
|
|
||||||
</div>
|
|
||||||
<div class="code">#FBC9C4 · #FBD38B · #A9D8C6</div>
|
|
||||||
<p>Bords arrondis 22 px, texture papier sur chaque carte.<br><b>Animation</b> : légère rotation (<em>tilt</em>) pour rappeler un paquet de cartes réaliste.</p>
|
|
||||||
</div>
|
|
||||||
<div class="card">
|
|
||||||
<h2>Style 2 : Minimal pastel</h2>
|
|
||||||
<img src="A_digital_graphic_design_image_displays_style_opti.png" alt="minimal stack"/>
|
|
||||||
<div class="palette">
|
|
||||||
<div class="swatch" style="background:#E3DFFD"></div>
|
|
||||||
<div class="swatch" style="background:#CFEAE3"></div>
|
|
||||||
<div class="swatch" style="background:#FFE88A"></div>
|
|
||||||
</div>
|
|
||||||
<div class="code">#E3DFFD · #CFEAE3 · #FFE88A</div>
|
|
||||||
<p>Cartes plates, ombre portée subtile (0 2 8 rgba0,05).<br><b>Animation</b> : slide horizontal + fondu rapide.</p>
|
|
||||||
</div>
|
|
||||||
<div class="card">
|
|
||||||
<h2>Style 3 : Modern vibrant</h2>
|
|
||||||
<img src="A_digital_graphic_design_image_displays_style_opti.png" alt="modern stack"/>
|
|
||||||
<div class="palette">
|
|
||||||
<div class="swatch" style="background:#FB86A2"></div>
|
|
||||||
<div class="swatch" style="background:#F3D468"></div>
|
|
||||||
<div class="swatch" style="background:#8AC1E3"></div>
|
|
||||||
</div>
|
|
||||||
<div class="code">#FB86A2 · #F3D468 · #8AC1E3</div>
|
|
||||||
<p>Coins arrondis 12 px pour une touche « app mobile ».<br><b>Animation</b> : carte sort par la gauche, nouvelle carte zoome légèrement.</p>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<footer style="font-size:.8rem;margin-top:2rem">© 2025 P’titsPas – maquettes UI</footer>
|
|
||||||
</body>
|
|
||||||
</html>
|
|
||||||