first commit
This commit is contained in:
207
README.md
Normal file
207
README.md
Normal file
@@ -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 <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 !
|
||||
Reference in New Issue
Block a user