Files
TravelMateAdmin/COMMANDS.md
Van Leemput Dayron f9690045ea 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.
2026-01-12 18:04:10 +01:00

5.8 KiB

Commandes Utiles - TravelMate Admin

🔧 Développement

Restaurer les packages

dotnet restore

Build le projet

# MacCatalyst
dotnet build -f net10.0-maccatalyst

# Windows
dotnet build -f net10.0-windows10.0.19041.0

# Android
dotnet build -f net10.0-android

# iOS
dotnet build -f net10.0-ios

Lancer l'application

# MacCatalyst
dotnet build -t:Run -f net10.0-maccatalyst

# Windows
dotnet build -t:Run -f net10.0-windows10.0.19041.0

Nettoyer le projet

dotnet clean
rm -rf TravelMateAdmin/bin TravelMateAdmin/obj

Rebuild complet

dotnet clean
dotnet restore
dotnet build

🗄️ Base de Données

Créer la base de données

mysql -u root -p < database_setup.sql

Se connecter à MySQL

mysql -u root -p travelmateadmin

Afficher les tables

USE travelmateadmin;
SHOW TABLES;

Voir les données

-- Tous les messages
SELECT * FROM messages ORDER BY created_at DESC;

-- Messages en attente
SELECT * FROM messages WHERE done = FALSE;

-- Statistiques
SELECT 
    COUNT(*) as total,
    SUM(done = FALSE) as pending,
    SUM(done = TRUE) as completed
FROM messages;

Ajouter un message de test

INSERT INTO messages (nom, prenom, email, message, done, created_at) 
VALUES ('Test', 'User', 'test@example.com', 'Ceci est un test', FALSE, NOW());

Marquer tous les messages comme non traités

UPDATE messages SET done = FALSE;
UPDATE support_requests SET done = FALSE;

Réinitialiser les données

mysql -u root -p travelmateadmin < database_setup.sql

Backup de la base

mysqldump -u root -p travelmateadmin > backup_$(date +%Y%m%d_%H%M%S).sql

Restore depuis un backup

mysql -u root -p travelmateadmin < backup_20260112_143000.sql

📦 NuGet Packages

Voir les packages installés

dotnet list TravelMateAdmin/TravelMateAdmin.csproj package

Mettre à jour un package

dotnet add TravelMateAdmin/TravelMateAdmin.csproj package CommunityToolkit.Mvvm
dotnet add TravelMateAdmin/TravelMateAdmin.csproj package MySqlConnector

Mettre à jour tous les packages

dotnet list TravelMateAdmin/TravelMateAdmin.csproj package --outdated

🐛 Debugging

Voir les logs

Dans le terminal où vous avez lancé l'app, les logs apparaissent via :

System.Diagnostics.Debug.WriteLine("Mon log");

Tests de connexion MySQL

# Tester si MySQL est accessible
nc -zv localhost 3306

# Voir les processus MySQL
ps aux | grep mysql

# Démarrer MySQL (Mac avec Homebrew)
brew services start mysql

# Démarrer MySQL (Linux)
sudo service mysql start

# Démarrer MySQL (MAMP)
# Utiliser l'interface MAMP

📱 Plateforme Spécifique

MacCatalyst - Voir les logs système

log stream --predicate 'processImagePath contains "TravelMateAdmin"' --level debug

Android - Voir les logs

adb logcat | grep TravelMateAdmin

iOS Simulator - Voir les logs

xcrun simctl spawn booted log stream --level debug | grep TravelMateAdmin

🔍 Code Analysis

Format le code

dotnet format TravelMateAdmin/TravelMateAdmin.csproj

Analyser le code

dotnet build /p:TreatWarningsAsErrors=true

📊 Statistiques du Projet

Compter les lignes de code

find TravelMateAdmin -name "*.cs" -not -path "*/obj/*" -not -path "*/bin/*" | xargs wc -l

Voir l'arborescence

tree -I 'bin|obj' TravelMateAdmin/

Taille du projet

du -sh TravelMateAdmin/

🚀 Publication

Publish MacCatalyst

dotnet publish -f net10.0-maccatalyst -c Release -p:CreatePackage=true

Publish Windows

dotnet publish -f net10.0-windows10.0.19041.0 -c Release

Créer un package pour Mac App Store

dotnet publish -f net10.0-maccatalyst -c Release \
    -p:RuntimeIdentifier=maccatalyst-arm64 \
    -p:CreatePackage=true \
    -p:CodesignKey="Apple Distribution: Your Name" \
    -p:CodesignProvision="Your Provisioning Profile"

🧪 Tests (futur)

Ajouter un projet de tests

dotnet new xunit -n TravelMateAdmin.Tests
dotnet sln add TravelMateAdmin.Tests/TravelMateAdmin.Tests.csproj
dotnet add TravelMateAdmin.Tests reference TravelMateAdmin/TravelMateAdmin.csproj

Lancer les tests

dotnet test

📝 Git

Initialiser le repo

git init
git add .
git commit -m "Initial commit: TravelMate Admin MAUI app"

Ignorer les fichiers de build

Le .gitignore est déjà configuré pour :

  • bin/, obj/
  • .vs/, .vscode/
  • Configuration sensible

Créer une branche

git checkout -b feature/nouvelle-fonctionnalite

🔐 Sécurité

Chiffrer la configuration (exemple)

# Générer une clé
openssl rand -base64 32

# Chiffrer un fichier
openssl enc -aes-256-cbc -salt -in AppSettings.cs -out AppSettings.cs.enc

# Déchiffrer
openssl enc -d -aes-256-cbc -in AppSettings.cs.enc -out AppSettings.cs

🛠️ Maintenance

Vérifier les dépendances obsolètes

dotnet list package --outdated

Mettre à jour .NET

# Vérifier la version actuelle
dotnet --version

# Télécharger la dernière version
# https://dotnet.microsoft.com/download

Nettoyer NuGet cache

dotnet nuget locals all --clear

💡 Tips & Tricks

Hot Reload

Lors du développement, les changements XAML sont appliqués en temps réel avec Hot Reload.

Raccourcis Visual Studio

  • F5 : Run avec debug
  • Ctrl+F5 (Cmd+F5 Mac) : Run sans debug
  • Shift+F5 : Stop debugging

Performance

# Build en Release pour tester les performances réelles
dotnet build -c Release -f net10.0-maccatalyst

Multi-targeting

Pour cibler plusieurs plateformes en une fois :

dotnet build
# Build toutes les plateformes définies dans TargetFrameworks