Guide d'utilisation MateZone
Guide complet pour installer, configurer et utiliser MateZone de A à Z.
📋 Table des matières
Installation
Utilisation
Administration
🔧 Prérequis
Ce dont vous avez besoin avant d'installer MateZone
💻 Configuration système
| Composant | Minimum requis | Recommandé |
|---|---|---|
| OS | Windows 10, Linux, macOS | OS récent avec mises à jour |
| RAM | 2 GB | 4 GB ou plus |
| Stockage | 100 MB | 1 GB pour logs et données |
| Réseau | Connexion internet | Bande passante stable |
⚙️ Logiciels requis
| Logiciel | Version | Notes |
|---|---|---|
| Java JDK | 11 ou supérieur | Développé avec JDK 25 |
| MySQL | 8.0+ | Pour la persistance des données |
| Git | Dernière version | Pour cloner le repository |
java -version, mysql --version et git --version.
📦 Installation
Étapes détaillées pour installer MateZone sur votre système
1️⃣ Clonage du repository
Récupérez le code source depuis GitHub :
# Cloner le repository git clone https://github.com/Joshua-Hermilly/MateZone.git # Accéder au dossier cd MateZone # Vérifier les fichiers ls -la
2️⃣ Configuration de la base de données
Préparez la base de données MySQL :
Création de la base
# Connexion à MySQL mysql -u root -p # Création de la base de données CREATE DATABASE matezone CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; # Création d'un utilisateur dédié (optionnel) CREATE USER 'matezone_user'@'localhost' IDENTIFIED BY 'votre_mot_de_passe'; GRANT ALL PRIVILEGES ON matezone.* TO 'matezone_user'@'localhost'; FLUSH PRIVILEGES;
Import du schéma
# Importer le schéma de base mysql -u root -p matezone < src/server/bd/SQL/MateZone.sql # Vérifier l'import mysql -u root -p matezone > SHOW TABLES; > DESCRIBE utilisateurs;
3️⃣ Configuration de l'application
Configurez les paramètres de connexion :
# Copier le fichier de configuration cd serveur-exec cp config.properties.example config.properties # Éditer le fichier de configuration nano config.properties # ou votre éditeur préféré
Contenu du fichier config.properties :
# Configuration de base de données db.url=jdbc:mysql://localhost:3306/matezone db.username=matezone_user db.password=votre_mot_de_passe # Paramètres serveur server.port=8080 server.host=localhost # Paramètres de performance db.maxConnections=10 db.connectionTimeout=30000
config.properties ! Il
est dans le .gitignore pour votre sécurité.
4️⃣ Compilation du projet
Compilez et préparez l'application :
Linux/macOS
# Rendre le script exécutable chmod +x run.sh # Lancer la compilation ./run.sh # Vérifier la compilation ls -la bin/
Windows
# Lancer la compilation run.bat # Vérifier la compilation dir bin\
bin/.
🚀 Premiers pas
Comment démarrer et utiliser MateZone pour la première fois
1️⃣ Démarrer le serveur
Lancez d'abord le serveur MateZone :
# Depuis le dossier racine du projet java -cp "bin:lib/*" server.MainServer # Ou avec un script dédié (si disponible) ./start-server.sh
Messages attendus au démarrage :
🚀 MateZone Server démarré 📡 WebSocket serveur sur ws://localhost:8080 🗄️ Base de données connectée ✅ Serveur prêt à accepter les connexions
config.properties si le
port 8080 est déjà utilisé.
2️⃣ Lancer le client
Dans un nouveau terminal, lancez l'interface client :
# Depuis le dossier racine du projet java -cp "bin:lib/*" client.MainClient # Ou avec un script dédié (si disponible) ./start-client.sh
La fenêtre de connexion devrait s'ouvrir automatiquement.
3️⃣ Première connexion
Créer un compte
- Cliquez sur "S'inscrire" dans la fenêtre de connexion
- Saisissez un pseudo unique
- Choisissez un mot de passe sécurisé
- Confirmez votre mot de passe
- Optionnel : Ajoutez une adresse email
- Cliquez sur "Créer le compte"
Se connecter
- Saisissez votre pseudo
- Entrez votre mot de passe
- Cliquez sur "Se connecter"
Une fois connecté, l'interface principale s'affiche avec :
- La liste des canaux disponibles
- L'historique des messages
- La zone de saisie de messages
- La liste des utilisateurs connectés
💬 Utilisation de la messagerie
Comment communiquer efficacement avec MateZone
📝 Envoyer des messages
- Sélectionnez un canal dans la liste
- Tapez votre message dans la zone de saisie
- Appuyez sur Entrée ou cliquez sur "Envoyer"
Formatage basique
- Gras : Utilisez les majuscules
- Italique : Utilisez des caractères spéciaux
- Emojis : Tapez des emoticons :) :( :D
👀 Lire les messages
- Défilement : Utilisez la molette ou les barres de défilement
- Historique : Les 50 derniers messages sont chargés automatiquement
- Horodatage : Chaque message affiche l'heure d'envoi
- Auteur : Le pseudo de l'expéditeur est toujours visible
🔍 Fonctionnalités avancées
- Notifications : Alertes visuelles pour nouveaux messages
- Statut utilisateurs : Voir qui est en ligne
- Messages système : Notifications de connexion/déconnexion
- Persistance : L'historique est sauvegardé
🎯 Bonnes pratiques
Communication efficace
- Soyez clair et concis
- Utilisez des canaux appropriés
- Respectez les autres utilisateurs
- Évitez le spam de messages courts
Étiquette du chat
- Présentez-vous lors de votre première connexion
- Utilisez un langage approprié
- Respectez la thématique des canaux
- Aidez les nouveaux utilisateurs
🏷️ Gestion des canaux
Organisez vos conversations en canaux thématiques
➕ Créer un canal
- Cliquez sur "Nouveau canal" ou utilisez le menu
- Choisissez un nom descriptif et unique
- Ajoutez une description (optionnel)
- Sélectionnez le type de canal :
- Public : Visible par tous
- Privé : Sur invitation seulement
- Direct : Conversation privée
- Confirmez la création
👥 Rejoindre un canal
- Canaux publics : Visibles dans la liste, clic pour rejoindre
- Canaux privés : Nécessitent une invitation
- Recherche : Utilisez la fonction de recherche de canaux
- Invitation : Demandez à un membre du canal
⚙️ Administration des canaux
Fonctionnalités disponibles pour les créateurs et modérateurs de canaux :
👑 Créateur
- Modifier les paramètres du canal
- Inviter/exclure des membres
- Nommer des modérateurs
- Supprimer le canal
- Archiver/désarchiver
🛡️ Modérateur
- Inviter de nouveaux membres
- Gérer les permissions
- Modérer les discussions
- Éditer la description
👤 Membre
- Envoyer des messages
- Lire l'historique
- Quitter le canal
- Voir les autres membres
🖥️ Administration du serveur
Guide pour les administrateurs système
🚀 Démarrage en production
Configuration recommandée pour un environnement de production :
# Script de démarrage avec paramètres JVM optimisés
#!/bin/bash
java -Xms512m -Xmx2g \
-XX:+UseG1GC \
-XX:+UseStringDeduplication \
-Djava.awt.headless=true \
-Dfile.encoding=UTF-8 \
-cp "bin:lib/*" \
server.MainServer
Variables d'environnement
# Configuration via variables d'environnement export DB_HOST=localhost export DB_PORT=3306 export DB_NAME=matezone export DB_USER=matezone_user export DB_PASSWORD=secure_password export SERVER_PORT=8080
📊 Surveillance et logs
Monitoring et journalisation pour la production :
Fichiers de logs
logs/server.log- Logs généraux du serveurlogs/error.log- Erreurs et exceptionslogs/access.log- Connexions et déconnexionslogs/db.log- Requêtes base de données
Métriques importantes
- Nombre de connexions actives
- Messages par seconde
- Utilisation mémoire
- Temps de réponse base de données
- Erreurs de connexion
🔧 Configuration avancée
Paramètres de performance
# config.properties - Section performance server.maxConnections=100 server.threadPool=20 websocket.bufferSize=8192 db.connectionPool=15 db.maxIdleTime=300000
Paramètres de sécurité
# config.properties - Section sécurité security.sessionTimeout=3600 security.maxLoginAttempts=5 security.passwordMinLength=8 security.enableSSL=true security.sslPort=8443
🛠️ Maintenance
Tâches de maintenance régulières pour garantir le bon fonctionnement
📊 Maintenance base de données
- Sauvegarde quotidienne
mysqldump -u root -p matezone > backup_$(date +%Y%m%d).sql
- Optimisation des tables
OPTIMIZE TABLE messages, utilisateurs, canaux;
- Nettoyage des logs
DELETE FROM messages WHERE timestamp < DATE_SUB(NOW(), INTERVAL 1 YEAR);
🧹 Nettoyage système
- Rotation des logs
# /etc/logrotate.d/matezone /var/log/matezone/*.log { daily rotate 30 compress delaycompress missingok notifempty } - Nettoyage des fichiers temporaires
- Vérification de l'espace disque
🔄 Mises à jour
- Mise à jour du code
git pull origin main ./run.sh systemctl restart matezone
- Mise à jour des dépendances
- Patch de sécurité
- Tests de non-régression
🔍 Dépannage
Solutions aux problèmes courants
❌ Problèmes de connexion
Le serveur ne démarre pas
- Vérifiez que Java est installé :
java -version - Contrôlez la configuration :
config.properties - Vérifiez que le port n'est pas occupé :
netstat -an | grep 8080 - Consultez les logs d'erreur
Impossible de se connecter à la base
- Vérifiez que MySQL est démarré :
systemctl status mysql - Testez la connexion :
mysql -u username -p -h localhost - Vérifiez les permissions utilisateur
- Contrôlez l'URL de connexion
# Test de connexion base de données mysql -u matezone_user -p -h localhost matezone > SELECT COUNT(*) FROM utilisateurs;
🐛 Problèmes client
L'interface ne s'affiche pas
- Vérifiez la version Java (Swing support)
- Contrôlez les variables d'environnement d'affichage
- Testez avec
java -Djava.awt.headless=false - Vérifiez les logs client
Messages non reçus
- Vérifiez la connexion WebSocket
- Contrôlez les firewalls
- Testez la latence réseau
- Redémarrez le client
# Test de connectivité WebSocket
telnet localhost 8080
# Ou
curl -i -N -H "Connection: Upgrade" \
-H "Upgrade: websocket" \
-H "Host: localhost:8080" \
http://localhost:8080
📋 Diagnostic système
Script de diagnostic automatique :
#!/bin/bash echo "=== Diagnostic MateZone ===" # Vérification Java echo "Java version:" java -version # Vérification MySQL echo "MySQL status:" systemctl status mysql --no-pager -l # Vérification des ports echo "Ports utilisés:" netstat -tlnp | grep -E ':(8080|3306)' # Vérification de l'espace disque echo "Espace disque:" df -h # Vérification des logs récents echo "Logs récents:" tail -20 logs/server.log echo "=== Fin du diagnostic ==="
📞 Support et communauté
Ressources d'aide
- Issues GitHub
- Documentation Javadoc
- Formulaire de contact
- Logs d'erreur détaillés
Avant de signaler un bug
- Reproduisez le problème
- Collectez les logs pertinents
- Notez votre configuration système
- Vérifiez les issues existantes