1c89209cfa187d8b4381703dd2d82bf98735ab97
TravelMate Admin - Panneau d'Administration .NET MAUI
Application desktop (Mac/Windows) pour gérer les demandes clients depuis une base de données MariaDB/MySQL.
🎯 Fonctionnalités
- Dashboard : Vue d'ensemble avec statistiques des demandes (en attente vs traitées)
- Messages : Gestion des demandes de suppression de données et messages généraux
- Support : Gestion des demandes d'assistance technique
- Filtres : Voir tout, seulement les demandes à faire, ou seulement les traitées
- Actions : Marquer une demande comme traitée/non traitée d'un clic
- Design : Interface moderne avec dark theme
🛠️ Stack Technique
- .NET MAUI (Multi-platform App UI)
- Pattern MVVM avec CommunityToolkit.Mvvm
- MariaDB/MySQL via MySqlConnector
- Injection de dépendance native MAUI
📋 Prérequis
- .NET 8+ ou .NET 9+
- Visual Studio 2022 17.8+ ou VS Code avec extension C# Dev Kit
- MariaDB ou MySQL Server
- macOS (pour MacCatalyst) ou Windows
🚀 Installation
1. Cloner le projet
git clone <your-repo-url>
cd TravelMateAdmin
2. Configurer la base de données
Exécutez le script SQL fourni pour créer la base de données et les tables :
mysql -u root -p < database_setup.sql
Ou manuellement dans MySQL/MariaDB :
source database_setup.sql
3. Configurer la connexion
Modifiez le fichier Configuration/AppSettings.cs avec vos paramètres :
public const string Server = "localhost"; // Votre serveur MySQL
public const string Port = "3306"; // Port MySQL (défaut: 3306)
public const string Database = "travelmateadmin";
public const string User = "root"; // Votre utilisateur MySQL
public const string Password = "yourpassword"; // Votre mot de passe MySQL
4. Restaurer les packages NuGet
dotnet restore
5. Lancer l'application
Pour macOS (MacCatalyst) :
dotnet build -t:Run -f net10.0-maccatalyst
Pour Windows :
dotnet build -t:Run -f net10.0-windows10.0.19041.0
Ou utilisez Visual Studio : sélectionnez la plateforme cible et appuyez sur F5.
📁 Structure du Projet
TravelMateAdmin/
├── Configuration/
│ └── AppSettings.cs # Configuration de la connexion DB
├── Converters/
│ └── BoolConverters.cs # Converters XAML pour les boutons
├── Models/
│ ├── Message.cs # Modèle pour les messages
│ └── SupportRequest.cs # Modèle pour les demandes support
├── Services/
│ ├── IDatabaseService.cs # Interface du service DB
│ └── DatabaseService.cs # Implémentation du service DB
├── ViewModels/
│ ├── DashboardViewModel.cs # ViewModel du dashboard
│ ├── MessagesViewModel.cs # ViewModel des messages
│ └── SupportViewModel.cs # ViewModel du support
├── Views/
│ ├── DashboardPage.xaml(.cs) # Page dashboard
│ ├── MessagesPage.xaml(.cs) # Page messages
│ └── SupportPage.xaml(.cs) # Page support
├── App.xaml(.cs) # Configuration de l'app
├── AppShell.xaml(.cs) # Navigation Shell
└── MauiProgram.cs # Configuration DI et services
🗃️ Structure de la Base de Données
Table messages
| Colonne | Type | Description |
|---|---|---|
| id | INT | Clé primaire (auto-increment) |
| nom | VARCHAR(100) | Nom du demandeur |
| prenom | VARCHAR(100) | Prénom du demandeur |
| VARCHAR(255) | Email du demandeur | |
| message | TEXT | Contenu du message |
| done | BOOLEAN | Statut (traité ou non) |
| created_at | TIMESTAMP | Date de création |
Table support_requests
| Colonne | Type | Description |
|---|---|---|
| id | INT | Clé primaire (auto-increment) |
| nom | VARCHAR(100) | Nom du demandeur |
| prenom | VARCHAR(100) | Prénom du demandeur |
| account_email | VARCHAR(255) | Email du compte |
| contact_email | VARCHAR(255) | Email de contact |
| message | TEXT | Description du problème |
| done | BOOLEAN | Statut (traité ou non) |
| created_at | TIMESTAMP | Date de création |
💡 Utilisation
- Dashboard : Visualisez rapidement les statistiques. Cliquez sur une carte pour accéder aux détails.
- Messages/Support :
- Utilisez le filtre en haut pour afficher tout, seulement les tâches à faire, ou seulement celles faites
- Cliquez sur le bouton dans chaque carte pour changer le statut
- Utilisez le bouton ↻ pour rafraîchir les données
- Navigation : Utilisez les onglets en bas (ou le menu) pour naviguer entre les sections
🎨 Personnalisation
Changer les couleurs
Modifiez les couleurs dans les fichiers XAML (section <ContentPage.Resources>) :
<Color x:Key="Primary">#1a1a1a</Color> <!-- Fond principal -->
<Color x:Key="Secondary">#2d2d2d</Color> <!-- Fond secondaire -->
<Color x:Key="Accent">#5E50D9</Color> <!-- Couleur d'accent -->
<Color x:Key="Success">#4CAF50</Color> <!-- Vert (succès) -->
<Color x:Key="Warning">#FFA726</Color> <!-- Orange (warning) -->
Ajouter de nouvelles fonctionnalités
- Créez un nouveau Model dans
Models/ - Ajoutez les méthodes nécessaires dans
IDatabaseServiceetDatabaseService - Créez un ViewModel dans
ViewModels/ - Créez la Vue XAML dans
Views/ - Enregistrez-les dans
MauiProgram.cs - Ajoutez la navigation dans
AppShell.xaml
🐛 Dépannage
Erreur de connexion à la base de données
- Vérifiez que MySQL/MariaDB est bien démarré
- Vérifiez les paramètres dans
AppSettings.cs - Vérifiez les droits de l'utilisateur MySQL
- Regardez les logs dans la console de débogage
L'application ne se lance pas
- Assurez-vous d'avoir restauré les packages NuGet
- Vérifiez que vous avez la bonne version de .NET installée
- Nettoyez et reconstruisez le projet :
dotnet clean dotnet build
Les données ne s'affichent pas
- Vérifiez que les tables existent dans la base de données
- Vérifiez qu'il y a des données dans les tables
- Regardez les logs de débogage pour voir les erreurs SQL
📦 Packages NuGet Utilisés
CommunityToolkit.Mvvm(8.3.2) - Pour le pattern MVVMMySqlConnector(2.4.0) - Pour la connexion MySQL/MariaDB
📝 License
Ce projet est à usage personnel/éducatif.
👨💻 Développement
Créé avec ❤️ en utilisant .NET MAUI
Note: N'oubliez pas de modifier le mot de passe MySQL dans AppSettings.cs avant de déployer en production !
Description
Languages
C#
100%