Restructuration majeure du projet: migration de flutt vers app, ajout de l'API et mise à jour du site web

This commit is contained in:
d6soft
2025-05-16 09:19:03 +02:00
parent b5aafc424b
commit 5c2620de30
391 changed files with 19780 additions and 7233 deletions

View File

@@ -0,0 +1,118 @@
# 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.dart`
- `dashboard_layout.dart`
- `responsive_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.dart`
- `admin_history_page.dart`
- `admin_communication_page.dart`
- `admin_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.dart`
- `user_statistics_page.dart`
- `user_history_page.dart`
- `user_communication_page.dart`
- `user_map_page.dart`
### 4. Pages d'authentification
Migrer les pages d'authentification de `lib/features/auth/presentation/` vers `lib/presentation/auth/` :
- `login_page.dart`
- `register_page.dart`
- `forgot_password_page.dart`
- etc.
### 5. Pages publiques
Migrer les pages publiques de `lib/features/public/presentation/` vers `lib/presentation/public/` :
- `landing_page.dart`
- `about_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 :
```dart
// 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
1. **Séparation claire des responsabilités** : La nouvelle structure sépare clairement la présentation (UI) de la logique métier (core).
2. **Organisation par fonctionnalité** : Les fichiers sont organisés par fonctionnalité (admin, user, auth, public) plutôt que par type (pages, widgets).
3. **Facilité de maintenance** : Il est plus facile de trouver et de modifier les fichiers liés à une fonctionnalité spécifique.
4. **É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` :
1. Copier le fichier de `lib/features/admin/admin_dashboard_page.dart` vers `lib/presentation/admin/admin_dashboard_page.dart`
2. Mettre à jour les imports dans le nouveau fichier
3. Mettre à jour les références à ce fichier dans d'autres fichiers
4. Tester que tout fonctionne correctement
5. 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.