Ajout de la géolocalisation automatique des casernes de pompiers et amélioration du formulaire EntiteForm

This commit is contained in:
d6soft
2025-05-16 20:55:57 +02:00
parent 5c2620de30
commit 69dcff42f8
2 changed files with 720 additions and 497 deletions

View File

@@ -53,6 +53,12 @@
- **LoginPage** : Page de connexion avec détection du type d'utilisateur - **LoginPage** : Page de connexion avec détection du type d'utilisateur
- **SplashPage** : Page de démarrage et initialisation - **SplashPage** : Page de démarrage et initialisation
- **EntiteForm** : Formulaire de gestion des amicales avec géolocalisation automatique
#### Géolocalisation et Cartographie
- **MapboxMap** : Widget de carte pour afficher la position des amicales
- **findFireStationCoordinates** : Service API pour localiser les casernes de pompiers via adresse.gouv.fr
## Technologies et Frameworks ## Technologies et Frameworks
@@ -69,6 +75,12 @@
- **Dio** : Client HTTP pour les requêtes API - **Dio** : Client HTTP pour les requêtes API
- **GoRouter** : Navigation et routage dans Flutter - **GoRouter** : Navigation et routage dans Flutter
- **Svelte 5** : Framework UI pour le site web - **Svelte 5** : Framework UI pour le site web
- **Flutter Map** : Bibliothèque de cartographie pour Flutter
### APIs Externes
- **API Adresse.gouv.fr** : Utilisée pour la géolocalisation des adresses et des casernes de pompiers
- **Stripe API** : Intégration pour les paiements par carte bancaire (commission de 1.4%)
### Base de Données ### Base de Données
@@ -100,7 +112,9 @@
### Pratiques Spécifiques au Projet ### Pratiques Spécifiques au Projet
[Toute convention ou pratique spécifique à ce projet] - Chiffrement des données sensibles (noms, emails, téléphones) dans la base de données
- Mise à jour automatique des coordonnées GPS lors des changements d'adresse
- Confirmation utilisateur pour les actions ayant un impact financier (activation Stripe)
## Flux de Travail et Processus de Développement ## Flux de Travail et Processus de Développement
@@ -181,44 +195,7 @@
## Historique des Versions ## Historique des Versions
| Version | Date | Description | | Version | Date | Description |
| ------- | ------ | ------------- | | ------- | ---------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| 1.0.0 | [Date] | [Description] | | 1.0.0 | 01/03/2025 | Version initiale du projet |
| 1.1.0 | 16/05/2025 | Ajout de la géolocalisation automatique des casernes de pompiers via API adresse.gouv.fr, amélioration du formulaire EntiteForm avec confirmation pour l'activation des paiements Stripe, mise à jour automatique des coordonnées GPS lors des changements d'adresse |
## Processus d'Authentification et Gestion des Sessions
### Flux de Connexion
1. L'utilisateur entre ses identifiants dans la page de login (username/password)
2. L'application envoie une requête POST à `/api/login` avec les identifiants et le type de connexion (user/admin)
3. Le serveur vérifie les identifiants, crée une session PHP et renvoie:
- Un `session_id` (utilisé comme token Bearer)
- Une date d'expiration de session
- Les données de l'utilisateur et les données associées (opérations, secteurs, passages)
4. L'application stocke ces données dans des boîtes Hive locales
5. Le `session_id` est utilisé pour toutes les requêtes API suivantes
### Flux de Déconnexion
1. L'utilisateur demande une déconnexion
2. L'application envoie une requête POST à `/api/logout` avec le `session_id` dans l'en-tête
3. Le serveur détruit la session PHP avec `session_unset()` et `session_destroy()`
4. L'application:
- Vide toutes les boîtes Hive sauf la boîte utilisateur
- Conserve uniquement le username et le rôle de l'utilisateur pour faciliter la reconnexion
- Réinitialise le `session_id` à null
### Particularités
- La page de login vérifie le rôle de l'utilisateur avant de pré-remplir le champ username
- Le type de connexion (user/admin) détermine les données chargées et les droits d'accès
- Les utilisateurs avec rôle=1 sont des utilisateurs standards, ceux avec rôle>1 sont des administrateurs
- Les sessions expirent après 24 heures par défaut
## Notes Spécifiques pour les Assistants IA
- Toujours vérifier les issues GitLab avant de proposer des solutions
- Respecter strictement les conventions de code mentionnées ci-dessus
- Lors de modifications des modèles Hive, s'assurer que les typeId sont uniques pour éviter les conflits
- Vérifier la compatibilité des modifications avec les trois plateformes (web, iOS, Android)
- Pour les modifications de l'API, s'assurer que la réponse reste compatible avec le format attendu par l'application

File diff suppressed because it is too large Load Diff