mirror of
https://github.com/Ladebeze66/ft_irc.git
synced 2025-12-15 13:47:08 +01:00
85 lines
4.6 KiB
Plaintext
85 lines
4.6 KiB
Plaintext
Plan d'action pour le développement
|
|
|
|
Étape 1: Configuration de l'environnement de développement
|
|
|
|
Installation des outils : Assurez-vous d'avoir un compilateur C++ qui supporte C++98, comme g++.
|
|
Structure de base du projet : Créez un répertoire de projet avec des sous-répertoires pour les fichiers sources (src), les en-têtes (include), et les objets (build).
|
|
|
|
Étape 2: Conception de l'architecture de base
|
|
|
|
Définition des modules : Identifiez les principaux composants du serveur, tels que la gestion des connexions réseau, le traitement des commandes IRC, et la gestion des utilisateurs et des canaux.
|
|
Création des fichiers :
|
|
main.cpp : Le point d'entrée du programme.
|
|
Server.cpp et Server.hpp : Gérer la logique du serveur, les sockets, et les connexions.
|
|
Client.cpp et Client.hpp : Gérer les informations et interactions spécifiques aux clients.
|
|
Channel.cpp et Channel.hpp : Gérer les opérations liées aux canaux.
|
|
CommandHandler.cpp et CommandHandler.hpp : Interpréter et exécuter les commandes IRC.
|
|
Utilities.cpp et Utilities.hpp : Fonctions utilitaires, comme la manipulation de chaînes et le logging.
|
|
|
|
Étape 3: Implémentation des fonctionnalités de base
|
|
|
|
Gestion des sockets : Écrivez le code pour créer, lier, et écouter les sockets.
|
|
Connexion des clients : Implémentez la logique pour accepter les nouvelles connexions des clients.
|
|
Réception et envoi de messages : Codez la réception des commandes des clients et l'envoi de réponses.
|
|
|
|
Étape 4: Gestion des commandes et des canaux
|
|
|
|
Traitement des commandes : Développez le traitement des commandes telles que JOIN, NICK, PRIVMSG.
|
|
Gestion des canaux : Implémentez la logique pour créer, modifier, et gérer les canaux.
|
|
|
|
Étape 5: Tests et débogage
|
|
|
|
Tests unitaires : Écrivez des tests pour chaque composant.
|
|
Tests d'intégration : Testez le fonctionnement global du serveur avec des clients IRC.
|
|
Débogage : Corrigez les bugs identifiés lors des tests.
|
|
|
|
Étape 6: Préparation pour les fonctionnalités bonus
|
|
|
|
Architecture extensible : Assurez-vous que votre conception permet facilement l'ajout de nouvelles fonctionnalités, comme le transfert de fichiers ou un bot IRC.
|
|
Documentation : Documentez les points d'extension pour les fonctionnalités bonus.
|
|
|
|
Étape 7: Documentation et finalisation
|
|
|
|
Documentation du code : Assurez-vous que chaque fonction et module est bien documenté.
|
|
Nettoyage du code : Revoyez votre code pour vous assurer qu'il est propre et bien organisé.
|
|
Intégration des fonctionnalités bonus
|
|
Planification conditionnelle : Les fonctionnalités bonus ne doivent être abordées que si la partie obligatoire est parfaitement fonctionnelle et testée.
|
|
Modularité : Gardez les modules bonus séparés et veillez à ce qu'ils ne perturbent pas le fonctionnement de base.
|
|
|
|
Arborescence du pojet:
|
|
|
|
irc_server/
|
|
│
|
|
├── src/
|
|
│ ├── main.cpp # Point d'entrée du programme.
|
|
│ ├── Server.cpp # Implémentation des fonctionnalités du serveur.
|
|
│ ├── Client.cpp # Gestion des clients.
|
|
│ ├── Channel.cpp # Gestion des canaux.
|
|
│ ├── CommandHandler.cpp # Traitement et exécution des commandes IRC.
|
|
│ ├── Utilities.cpp # Fonctions utilitaires.
|
|
│ ├── FileTransfer.cpp # Gestion du transfert de fichiers (bonus).
|
|
│ └── Bot.cpp # Logique du bot IRC (bonus).
|
|
│
|
|
├── include/
|
|
│ ├── Server.hpp # Déclarations pour la gestion du serveur.
|
|
│ ├── Client.hpp # Déclarations pour la gestion des clients.
|
|
│ ├── Channel.hpp # Déclarations pour la gestion des canaux.
|
|
│ ├── CommandHandler.hpp # Déclarations pour le traitement des commandes.
|
|
│ ├── Utilities.hpp # Déclarations pour les fonctions utilitaires.
|
|
│ ├── FileTransfer.hpp # Déclarations pour la gestion du transfert de fichiers (bonus).
|
|
│ └── Bot.hpp # Déclarations pour la logique du bot IRC (bonus).
|
|
│
|
|
├── build/
|
|
│ └── (fichiers objets et binaires générés lors de la compilation)
|
|
│
|
|
├── tests/
|
|
│ ├── server_tests.cpp # Tests unitaires pour le serveur.
|
|
│ ├── client_tests.cpp # Tests pour les fonctionnalités client.
|
|
│ ├── channel_tests.cpp # Tests pour les canaux.
|
|
│ ├── file_transfer_tests.cpp # Tests pour le transfert de fichiers (bonus).
|
|
│ └── bot_tests.cpp # Tests pour le bot IRC (bonus).
|
|
│
|
|
├── Makefile # Makefile pour compiler le projet.
|
|
│
|
|
└── README.md # Instructions de base et documentation.
|