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:
182
CHANGELOG.md
Normal file
182
CHANGELOG.md
Normal 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.
|
||||
Reference in New Issue
Block a user