Application mobile et web de backoffice pour la gestion de l'activité ECP, développée en Flutter. Elle communique avec une API REST Spring Boot.
| Module | Opérations disponibles |
|---|---|
| Produits | Lister, créer, modifier, supprimer |
| Types de produits | Lister, créer, modifier, supprimer |
| Promotions | Lister, créer, modifier, supprimer |
| Utilisateurs | Lister, modifier, supprimer |
| Commandes | Lister, créer, supprimer |
| Factures | Lister, créer, supprimer |
| Avis | Lister, créer, supprimer |
| Clients | Lister |
| Rendez-vous | Lister, créer, mettre à jour le statut, supprimer |
- Flutter SDK >= 3.11.3
- Dart >= 3.0
- API Spring Boot démarrée et accessible sur
http://localhost:8080
# Cloner le dépôt
git clone <url-du-repo>
cd ECPflutter
# Installer les dépendances
flutter pub get
# Lancer l'application
flutter runL'URL de l'API est définie dans lib/services/api_service.dart :
static const String baseUrl = 'http://localhost:8080/api';Modifier cette valeur pour pointer vers un environnement différent (staging, production, etc.).
lib/
├── main.dart # Point d'entrée, thème Material 3, Provider
├── screens/
│ ├── login_screen.dart # Écran de connexion
│ ├── home_screen.dart # Navigation principale (Rail / Drawer)
│ ├── produits_screen.dart
│ ├── type_produits_screen.dart
│ ├── promos_screen.dart
│ ├── utilisateurs_screen.dart
│ ├── commandes_screen.dart
│ ├── factures_screen.dart
│ ├── avis_screen.dart
│ ├── clients_screen.dart
│ └── rendez_vous_screen.dart
└── services/
├── api_service.dart # Appels HTTP vers l'API REST
└── auth_service.dart # Gestion de l'authentification (JWT + SharedPreferences)
- Provider +
ChangeNotifierpour l'authentification (AuthService) - L'état de session (token JWT, rôle, nom) est persisté via
SharedPreferenceset restauré au démarrage
L'interface est responsive :
- Écran large (> 700 px) :
NavigationRaillatérale, étendue au-delà de 900 px - Écran étroit (mobile) :
AppBar+Drawer
La connexion envoie un POST /api/auth/login avec email et password. L'API retourne un JWT qui est joint dans l'en-tête Authorization: Bearer <token> de toutes les requêtes suivantes.
Les rôles gérés : ROLE_ADMIN, ROLE_USER.
| Package | Rôle |
|---|---|
provider |
Gestion d'état réactive |
http |
Appels HTTP vers l'API |
shared_preferences |
Persistance locale de la session |
cupertino_icons |
Icônes iOS |
- Android
- iOS
- Web
- Windows
flutter test