Mes Projets Informatiques
Informatique I
Projet de Programmation Système : Création d'un Chat
Le sujet de ce TP demandait de créer une application permettant de mettre en relation deux individus. Le sujet demandait d'utiliser nos connaissances en Programmation Système, et notamment la prise en charge de tubes (FIFO).
Lors du lancement du service de messagerie instantanée, nous faisons une petite explication du mode de fonctionnement pour que l’utilisateur puisse se servir directement du programme. Ainsi des le démarrage du PMI l’utilisateur est invité à s’enregistrer en tapant «son_prénom», il sera alors enregistré en tant que hôte de toutes les conversations c'est-à-dire qu’il pourra parler avec tous les utilisateurs enregistrés.
Les autres utilisateurs (virtuel) pourront quand a eux s’enregistrer après toujours grâce à la commande « -e un_prénom », cette commande rajoute le prénom du chateur qui veut s’enregistrer a la fin de la liste chainée qui gère tout les utilisateurs du chat.
L’utilisateur pourra aussi visualiser la liste des chateurs présent grâce a la commande «-l ». Il pourra par la suite utiliser la commande « -p nom_interlocteur » qui permettra d’utiliser la fonction chat en créant les 2 fenêtres Xterm qui permettront a l’utilisateur hôte et à l'invité [nom_interlocuteur] de pouvoir parler ensemble. Les fenêtres Xterm pourront être quittée grâce a la commande « /quitter », si l’un des utilisateurs rentre cette commande alors on affiche que l’un des utilisateurs veut quitter le chat et on ferme les deux fenêtres Xterm cinq secondes après avoir pris en compte la commande. Si un utilisateur ne veut plus rester dans le chat il peut alors se déconnecter grâce à la commande « -d nom_prénom », il sera alors supprimé de la liste chainé qui permet de stocker les noms des chateurs. L’utilisateur hôte pourra quand à lui utiliser la commande « -quitter » dans la console lorsqu’il veut quitter le chat.
Cependant, une des limites de ce service est qu'il utilise les FIFO. En effet, une évolution majeure serait d'utiliser le réseau internet (ou intranet d'une entreprise), afin de permettre une communication inter-utilisateurs plus élaborée et plus complète. C'est d'ailleurs ce qu'utilise notre projet de fin d'année que nous verrons prochainement.
Pour plus d'information, le code source, ainsi qu'un bref rapport, sont disponibles dans le répertoire suivant : cliquez ici.
Développement d'une application de dessin 2D et 3D en JAVA
Dans le prolongement de l'année universitaire, et notamment pendant le second semestre, nous avons du concevoir une application JAVA permettant de dessiner des formes en 2D, et de produire des objets en 3D (avec perspective, lumières et ombres, z-buffer...).
On peut alors, en deux dimensions, dessiner des formes à main levée (avec un crayon guidé par la souris, ou en sélectionnant des points qui formeront un polygone), les translater et, dans le cas des polygones, ajouter, supprimer ou déplacer des points. En outre, on peut choisir de changer de couleur via un menu déroulant (4 couleurs disponibles).
Pour la partie en 3D, l'utilisateur doit utiliser des maillages prédéfinis de formes. Il peut alors choisir de créer une sphère, un parallélépipède rectangle, un cône ou bien encore un cylindre. Les dimensions de ces maillages sont modifiables à l'aide de différents champs de saisies.
En outre, mon binôme et moi-même avons implémenté différentes fonctionnalités telles que la translations de maillage à la souris (on peut déplacer un objet dans les trois dimensions de l'espace), la rotation, etc.
De plus, nous avons implémenté le plaquage de texture. Notre sphère ressemble ainsi parfaitement à la Terre :

Enfin, l'application de la lumière est un plus indéniable quant au réalisme des formes affichées. Ainsi nous avons implémenté les trois formes de lumières suivantes :
- lumière ambiante,
- lumière ponctuelle,
- lumière ponctuelle à réflexion spéculaire.
Si ce projet vous intéresse, je vous recommande de consulter le rapport, ainsi que le code source de l'application disponibles dans le répertoire suivant : cliquez ici.
Projet de Fin d'Année : Conception et Développement d'un Forum en C, avec interface graphique et prise en charge réseau.
Créé en mode projet court (avec cahier des charges, cahier des spécifications, phases de tests, etc.), ce système se décompose en deux parties. On retrouve alors une partie serveur qui se charge de la gestion des utilisateurs et des messages postés. Une partie cliente permet alors à des utilisateurs de se connecter à ce serveur (ou de s'y enregistrer si l'utilisateur n'a pas de compte client).
Le serveur permet alors de gérer tous les messages. Il permet alors de les stocker sur son espace mémoire réservé (typiquement, un dossier du disque dur). Il maintient également une liste des utilisateurs enregistrés.
Par ailleurs, il permet de différencier différents types d'utilisateurs. On retrouve alors des administrateurs du serveurs, des modérateurs du forum et des utilisateurs lambda.
La partie cliente est composée d'une interface graphique codée en GTK. Elle permet à un utilisateur d'obtenir une interface en accord avec ses droits (un modérateur et un administrateur ont plus de fonctionnalités disponibles, et donc plus de boutons, qu'un utilisateur de base).
Dans tous les cas, cette interface permet d'avoir accès aux messages, triés par ordre de dernière modifications (typiquement, une réponse à un sujet), du plus récent au plus ancien.
En outre un système d'archivage périodique permet d'archiver les messages trop anciens. Un message archivé reste cependant consultable par tous les utilisateurs via un champ de recherche.
Le projet étant très complet, je ne peux tout expliquer sur cette simple page. Je vous recommande vivement de consulter les différents documents mis à votre disposition. Le code source est également disponible. Tout se passe par ici : cliquez ici.