feat: Implement Database Service and ViewModels for Messages and Support Requests

- Added DatabaseService to handle database operations for messages and support requests.
- Created IDatabaseService interface to define the contract for database operations.
- Developed ViewModels for Dashboard, Messages, and Support pages to manage data and commands.
- Implemented XAML views for Dashboard, Messages, and Support, including data binding and UI elements.
- Created SQL script for setting up the database schema and inserting test data.
This commit is contained in:
Van Leemput Dayron
2026-01-12 18:04:10 +01:00
parent 74586c20ba
commit f9690045ea
60 changed files with 4325 additions and 0 deletions

182
CHANGELOG.md Normal file
View File

@@ -0,0 +1,182 @@
# 📅 Changelog - TravelMate Admin
Toutes les modifications notables de ce projet seront documentées dans ce fichier.
Le format est basé sur [Keep a Changelog](https://keepachangelog.com/fr/1.0.0/),
et ce projet adhère à [Semantic Versioning](https://semver.org/lang/fr/).
## [1.0.0] - 2026-01-12
### ✨ Ajouté
#### Architecture & Structure
- Architecture MVVM complète avec CommunityToolkit.Mvvm
- Pattern strict avec séparation Models/Views/ViewModels/Services
- Injection de dépendances configurée dans MauiProgram.cs
- Navigation Shell avec TabBar
#### Models
- `Message.cs` : Modèle pour les messages de demande avec propriétés calculées
- `SupportRequest.cs` : Modèle pour les demandes support avec propriétés calculées
#### Services
- `IDatabaseService.cs` : Interface du service de base de données
- `DatabaseService.cs` : Implémentation complète avec MySqlConnector
- Connexion à MariaDB/MySQL
- Méthodes CRUD asynchrones
- Gestion des erreurs et logs
- Test de connexion
#### ViewModels
- `DashboardViewModel.cs` : Gestion du tableau de bord avec statistiques
- `MessagesViewModel.cs` : Gestion de la liste des messages avec filtres
- `SupportViewModel.cs` : Gestion des demandes support avec filtres
- Utilisation de `[ObservableProperty]` et `[RelayCommand]`
- Commandes asynchrones pour toutes les opérations
#### Views
- `DashboardPage.xaml/.cs` : Page principale avec cartes de statistiques
- `MessagesPage.xaml/.cs` : Liste des messages avec CollectionView
- `SupportPage.xaml/.cs` : Liste des demandes support
- Design moderne avec dark theme (#1a1a1a)
- Layout responsive
- Indicateurs de chargement
#### UI/UX
- Dark theme par défaut avec palette de couleurs cohérente
- Cartes avec ombres et coins arrondis
- Animations smooth pour les interactions
- Empty states pour listes vides
- Pull-to-refresh sur les listes
- Filtres dynamiques (Tout / À faire / Fait)
#### Converters
- `BoolToStatusTextConverter` : Conversion bool → texte bouton
- `BoolToColorConverter` : Conversion bool → couleur bouton
#### Configuration
- `AppSettings.cs` : Configuration centralisée de la connexion DB
- Paramètres modifiables (Server, Port, Database, User, Password)
#### Base de Données
- Script SQL `database_setup.sql` complet :
- Création de la base `travelmateadmin`
- Table `messages` avec 8 colonnes et index
- Table `support_requests` avec 8 colonnes et index
- 4 messages de test
- 4 demandes support de test
- Encodage UTF-8 (utf8mb4)
#### Fonctionnalités
- Dashboard avec statistiques en temps réel
- Filtrage des demandes (tout/à faire/fait)
- Changement de statut d'une demande (toggle done)
- Tri par date (plus récent en haut)
- Rafraîchissement manuel des données
- Navigation entre les sections
- Indicateur de connexion DB
#### Packages NuGet
- `CommunityToolkit.Mvvm` v8.3.2
- `MySqlConnector` v2.4.0
#### Documentation
- `README.md` : Documentation complète du projet (sections détaillées)
- `QUICKSTART.md` : Guide de démarrage rapide (5 minutes)
- `CONFIGURATION.md` : Guide de configuration DB avec exemples
- `ARCHITECTURE.md` : Documentation architecture MVVM détaillée
- `COMMANDS.md` : Référence des commandes de développement
- `SQL_REFERENCE.md` : Référence complète des requêtes SQL
- `PROJECT_SUMMARY.md` : Résumé du projet et checklist
- `.gitignore` : Configuration Git adaptée .NET MAUI
#### DevOps
- Configuration csproj pour multi-plateforme (Mac/Win/Android/iOS)
- Build scripts pour toutes les plateformes
- Compilation vérifiée et réussie
### 🎯 Plateformes Supportées
- ✅ macOS (MacCatalyst) - net10.0-maccatalyst
- ✅ Windows - net10.0-windows10.0.19041.0
- ⚠️ Android - net10.0-android (non testé)
- ⚠️ iOS - net10.0-ios (non testé)
### 📊 Statistiques
- **Fichiers créés** : 35+
- **Lignes de code** : ~2000+ (C# + XAML)
- **Modèles** : 2
- **Services** : 1 (+ interface)
- **ViewModels** : 3
- **Views** : 3 (+ code-behind)
- **Documentation** : 8 fichiers MD
---
## [Unreleased] - Fonctionnalités Futures
### 🚀 Planifié pour v1.1.0
- [ ] Mode light/dark configurable
- [ ] Recherche/filtrage avancé
- [ ] Export de données (CSV, PDF)
- [ ] Pagination pour grandes listes
- [ ] Statistiques graphiques (charts)
### 🔮 Planifié pour v1.2.0
- [ ] Authentification utilisateur
- [ ] Gestion des permissions
- [ ] Historique des modifications
- [ ] Notifications push
- [ ] Multi-langue (i18n)
### 🧪 Planifié pour v1.3.0
- [ ] Tests unitaires (ViewModels)
- [ ] Tests d'intégration (Services)
- [ ] CI/CD avec GitHub Actions
- [ ] Couverture de code
### 🎨 Améliorations UI/UX
- [ ] Animations de transitions
- [ ] Thèmes personnalisables
- [ ] Accessibilité (screen readers)
- [ ] Raccourcis clavier
### 🔧 Améliorations Techniques
- [ ] Connection pooling optimisé
- [ ] Cache des données
- [ ] Offline mode
- [ ] Synchronisation automatique
- [ ] Logs structurés (Serilog)
### 🔐 Sécurité
- [ ] Chiffrement de la chaîne de connexion
- [ ] Variables d'environnement
- [ ] Azure Key Vault integration
- [ ] Audit trail
- [ ] Rate limiting
---
## Types de Changements
- `Added` ✨ : Nouvelles fonctionnalités
- `Changed` 🔄 : Modifications de fonctionnalités existantes
- `Deprecated` ⚠️ : Fonctionnalités bientôt supprimées
- `Removed` 🗑️ : Fonctionnalités supprimées
- `Fixed` 🐛 : Corrections de bugs
- `Security` 🔐 : Corrections de sécurité
---
## Format des Versions
```
[MAJOR.MINOR.PATCH] - YYYY-MM-DD
MAJOR : Changements incompatibles de l'API
MINOR : Nouvelles fonctionnalités rétrocompatibles
PATCH : Corrections de bugs rétrocompatibles
```
---
**Note** : Ce fichier sera mis à jour à chaque release avec les changements apportés.