Guide d'utilisation MateZone

Guide complet pour installer, configurer et utiliser MateZone de A à Z.

📋 Table des matières

🔧 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
Note : Vérifiez les installations avec les commandes 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;
Sécurité : Utilisez un mot de passe fort pour l'utilisateur de base de données et notez-le pour la configuration.

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
Important : Ne jamais committer le fichier 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\
Succès : Si la compilation réussit, vous devriez voir les fichiers .class dans le dossier 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
Port occupé ? Modifiez le port dans 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.

Astuce : Vous pouvez lancer plusieurs instances du client pour tester les conversations multi-utilisateurs.

3️⃣ Première connexion

Créer un compte

  1. Cliquez sur "S'inscrire" dans la fenêtre de connexion
  2. Saisissez un pseudo unique
  3. Choisissez un mot de passe sécurisé
  4. Confirmez votre mot de passe
  5. Optionnel : Ajoutez une adresse email
  6. Cliquez sur "Créer le compte"
Pseudo : Doit être unique et contenir entre 3 et 50 caractères.

Se connecter

  1. Saisissez votre pseudo
  2. Entrez votre mot de passe
  3. 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

  1. Sélectionnez un canal dans la liste
  2. Tapez votre message dans la zone de saisie
  3. Appuyez sur Entrée ou cliquez sur "Envoyer"
Raccourci : Maj + Entrée pour ajouter une nouvelle ligne sans 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
Temps réel : Les nouveaux messages apparaissent instantanément sans rafraîchissement.

🔍 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é
Attention : Les messages ne peuvent pas être modifiés ou supprimés après envoi.

🎯 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

  1. Cliquez sur "Nouveau canal" ou utilisez le menu
  2. Choisissez un nom descriptif et unique
  3. Ajoutez une description (optionnel)
  4. Sélectionnez le type de canal :
    • Public : Visible par tous
    • Privé : Sur invitation seulement
    • Direct : Conversation privée
  5. Confirmez la création
Nom du canal : Doit être unique et contenir entre 3 et 100 caractères.

👥 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
Accès immédiat : Une fois membre, vous avez accès à l'historique complet 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 serveur
  • logs/error.log - Erreurs et exceptions
  • logs/access.log - Connexions et déconnexions
  • logs/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
Rotation des logs : Configurez logrotate pour éviter que les logs prennent trop d'espace disque.

🔧 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

Avant de signaler un bug

  • Reproduisez le problème
  • Collectez les logs pertinents
  • Notez votre configuration système
  • Vérifiez les issues existantes