I. Cahier des charges▲
Ce projet est né lorsque je me suis rendu compte qu'à
l'université nous ne pouvions pas communiquer par MSN/IRC/Jabber
ou autre, j'ai donc décidé de faire un système de Tchat pour que
tout le monde puisse se parler aussi bien sur le réseau de
l'université qu'ailleurs. J'ai également décidé de développer un
site un minimum communautaire autour de ce logiciel de chat afin
que tous les élèves puissent partager ce qu'ils veulent et quand
ils le veulent et aussi leur faciliter l'accès aux ressources
mises à disposition par l'université.
Nous allons donc voir
comment le projet a été conçu de A à Z.
I-A. Programme de base▲
I-A-1. Administration▲
Le serveur est administré par une ou plusieurs personnes à partir du client, celle-ci peut :
- créer, supprimer un canal et changer le sujet d'un canal ;
- ejecter un utilisateur d'un canal et bannir un utilisateur du serveur.
I-A-2. Canal de discussion▲
Un canal de discussion rassemble plusieurs clients qui discutent tous dans le même espace. Il se distingue par son nom, son sujet et sa liste d'utilisateurs. Seul l'administrateur du serveur peut créer de nouveaux canaux.
I-A-3. Discussions privées (pv)▲
Si deux utilisateurs souhaitent s'entretenir en dehors d'un canal, le serveur les met en relation directe de façon à ce qu'ils puissent communiquer sans que les messages transitent par celui-ci. L'invitation à une discussion privée peut être déclinée.
I-A-4. Transfert de fichiers▲
Deux utilisateurs peuvent échanger des fichiers. Pour cela ils ne passent pas par le serveur pour des raisons d'efficacité. De même que pour les discussions privées, un transfert de fichier peut être refusé par l'un des utilisateurs.
I-A-5. Protocole▲
Nous allons mettre en place un protocole pur texte avec l'encodage UTF-8.
I-A-6. Sécurité▲
Chaque utilisateur doit être authentifié (login/password) pour pouvoir accéder aux fonctionnalités du serveur. Pour l'authentification, une base de données stockera les identifiants et les mots de passe de chaque utilisateur. L'inscription se fera sur un site web (partie que nous ne verrons pas dans cet article ou bien alors bien plus tard).
I-B. Programme amélioré▲
Je vais lister ici certaines possibilitées d'amélioration du programme :
- comptes modérateurs ;
- la connexion client/serveur est chiffrée à l'aide de SSL/TLS ;
- émoticônes ;
- coloration syntaxique ;
- ajout d'un bot ;
- canaux de quizz ;
- ajout de module par scripting ;
- gestion des status.