- Ajout système complet de gestion des secteurs avec contours géographiques - Import des contours départementaux depuis GeoJSON - API REST pour la gestion des secteurs (/api/sectors) - Service de géolocalisation pour déterminer les secteurs - Migration base de données avec tables x_departements_contours et sectors_adresses - Interface Flutter pour visualisation et gestion des secteurs - Ajout thème sombre dans l'application - Corrections diverses et optimisations 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
4.7 KiB
Executable File
Guide de migration vers la nouvelle structure
Ce document explique comment migrer l'application GeoSector vers la nouvelle structure de dossiers.
Nouvelle structure
lib/
├── presentation/ # Tout ce qui concerne l'interface utilisateur
│ ├── admin/ # Pages et widgets spécifiques à l'interface administrateur
│ ├── user/ # Pages et widgets spécifiques à l'interface utilisateur
│ │ └── pages/ # Pages de l'interface utilisateur
│ ├── auth/ # Pages et widgets liés à l'authentification
│ ├── public/ # Pages et widgets accessibles sans authentification
│ └── widgets/ # Widgets partagés utilisés dans plusieurs parties de l'application
├── core/ # Logique métier et services (reste inchangé)
│ ├── constants/ # Constantes de l'application
│ ├── data/ # Modèles de données
│ ├── repositories/ # Repositories pour accéder aux données
│ ├── services/ # Services de l'application
│ └── theme/ # Thème de l'application
└── shared/ # Code partagé entre les différentes parties de l'application
Étapes de migration
1. Widgets communs
Les widgets communs ont déjà été migrés vers lib/presentation/widgets/ :
dashboard_app_bar.dartdashboard_layout.dartresponsive_navigation.dart
2. Pages administrateur
Migrer les pages administrateur de lib/features/admin/ vers lib/presentation/admin/ :
admin_dashboard_page.dart(déjà migré)admin_statistics_page.dartadmin_history_page.dartadmin_communication_page.dartadmin_map_page.dart
3. Pages utilisateur
Migrer les pages utilisateur de lib/features/user/presentation/pages/ vers lib/presentation/user/pages/ :
- Créer le dossier
lib/presentation/user/pages/ - Migrer les fichiers suivants :
user_dashboard_home_page.dartuser_statistics_page.dartuser_history_page.dartuser_communication_page.dartuser_map_page.dart
4. Pages d'authentification
Migrer les pages d'authentification de lib/features/auth/presentation/ vers lib/presentation/auth/ :
login_page.dartregister_page.dartforgot_password_page.dart- etc.
5. Pages publiques
Migrer les pages publiques de lib/features/public/presentation/ vers lib/presentation/public/ :
landing_page.dartabout_page.dart- etc.
6. Mise à jour des imports
Après avoir migré tous les fichiers, il faudra mettre à jour les imports dans tous les fichiers pour refléter la nouvelle structure.
Exemple :
// Ancien import
import 'package:geosector_app/core/widgets/dashboard_app_bar.dart';
// Nouvel import
import 'package:geosector_app/presentation/widgets/dashboard_app_bar.dart';
7. Mise à jour des routes
Mettre à jour le fichier de routes (lib/core/routes/app_router.dart) pour refléter les nouveaux chemins des pages.
8. Tests
Après avoir effectué toutes les migrations, exécuter les tests pour s'assurer que tout fonctionne correctement.
Avantages de la nouvelle structure
- Séparation claire des responsabilités : La nouvelle structure sépare clairement la présentation (UI) de la logique métier (core).
- Organisation par fonctionnalité : Les fichiers sont organisés par fonctionnalité (admin, user, auth, public) plutôt que par type (pages, widgets).
- Facilité de maintenance : Il est plus facile de trouver et de modifier les fichiers liés à une fonctionnalité spécifique.
- Évolutivité : La nouvelle structure est plus évolutive et permet d'ajouter facilement de nouvelles fonctionnalités.
Approche progressive
La migration peut être effectuée progressivement, en commençant par les widgets communs, puis en migrant les pages une par une. Cela permet de continuer à développer l'application pendant la migration.
Exemple de migration d'une page
Voici un exemple de migration de la page admin_dashboard_page.dart :
- Copier le fichier de
lib/features/admin/admin_dashboard_page.dartverslib/presentation/admin/admin_dashboard_page.dart - Mettre à jour les imports dans le nouveau fichier
- Mettre à jour les références à ce fichier dans d'autres fichiers
- Tester que tout fonctionne correctement
- Supprimer l'ancien fichier une fois que tout fonctionne
Conclusion
Cette migration permettra d'améliorer la structure de l'application et de faciliter son évolution future. Elle peut être effectuée progressivement pour minimiser l'impact sur le développement en cours.