From 74586c20bad4a3cf93bb688aafd167375bc0fb9c Mon Sep 17 00:00:00 2001 From: Van Leemput Dayron Date: Mon, 12 Jan 2026 18:03:21 +0100 Subject: [PATCH] first commit --- README.md | 207 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 207 insertions(+) create mode 100644 README.md diff --git a/README.md b/README.md new file mode 100644 index 0000000..99dd0e8 --- /dev/null +++ b/README.md @@ -0,0 +1,207 @@ +# 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 +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 ``) : + +```xml +#1a1a1a +#2d2d2d +#5E50D9 +#4CAF50 +#FFA726 +``` + +### 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 !