208 lines
7.0 KiB
Markdown
208 lines
7.0 KiB
Markdown
# 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
|
|
|
|
```bash
|
|
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 :
|
|
|
|
```bash
|
|
mysql -u root -p < database_setup.sql
|
|
```
|
|
|
|
Ou manuellement dans MySQL/MariaDB :
|
|
|
|
```sql
|
|
source database_setup.sql
|
|
```
|
|
|
|
### 3. Configurer la connexion
|
|
|
|
Modifiez le fichier `Configuration/AppSettings.cs` avec vos paramètres :
|
|
|
|
```csharp
|
|
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
|
|
|
|
```bash
|
|
dotnet restore
|
|
```
|
|
|
|
### 5. Lancer l'application
|
|
|
|
Pour macOS (MacCatalyst) :
|
|
```bash
|
|
dotnet build -t:Run -f net10.0-maccatalyst
|
|
```
|
|
|
|
Pour Windows :
|
|
```bash
|
|
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 |
|
|
| email | 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
|
|
|
|
1. **Dashboard** : Visualisez rapidement les statistiques. Cliquez sur une carte pour accéder aux détails.
|
|
2. **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
|
|
3. **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>`) :
|
|
|
|
```xml
|
|
<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
|
|
|
|
1. Créez un nouveau Model dans `Models/`
|
|
2. Ajoutez les méthodes nécessaires dans `IDatabaseService` et `DatabaseService`
|
|
3. Créez un ViewModel dans `ViewModels/`
|
|
4. Créez la Vue XAML dans `Views/`
|
|
5. Enregistrez-les dans `MauiProgram.cs`
|
|
6. 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 :
|
|
```bash
|
|
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 MVVM
|
|
- `MySqlConnector` (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 !
|