Création d'un serveur de jeu en ligne avec un système d'achat et de facturation géré par un progiciel de gestion ainsi qu'un système d'échange entre joueurs via un site web.
L'objectif principal réside dans l'intégration des 3 services suivants et reposant sur une seule base de données :
→ Le jeu open source Minetest
→ Le progiciel de gestion open source Dolibarr
→ Un site web PHP Symfony
Ce projet correspond à la SAE du cinquième semestre du BUT Informatique. Celle-ci a duré 7 semaines et a été réalisé par une équipe de 4 étudiants. Elle a donné lieu à une soutenance finale de 45 min et plusieurs rapports techniques ont été réalisés. Nous avons adopté une gestion de projet SCRUM.
Notre projet propose un serveur Minetest permettant aux joueurs ayant le client du jeu de pouvoir s'y connecter. Celui-ci comprend un module que nous avons créé en langage LUA afin de permettre la communication avec Dolibarr. Nous avons pour cela utilisé les fonctionnalités d'API inclus dans le jeu. Les données du joueur sont ainsi envoyées à intervalle régulier vers la base de données de Dolibarr. Ce système de polling permet également de récupérer les modifications réalisées depuis Dolibarr à la suite d'un achat ou d'un échange.
Ce progiciel de gestion (ERP) permet d'écouter et répondre aux requêtes de Minetest à l'aide d'un module personnalisé que nous avons créé. Celui-ci comprend sa propre API ainsi que toute la logique de mise à jour de la base de données. Il dispose également d'une page dédiée permettant aux administrateurs de consulter les inventaires de chaque joueur. L'intégration d'un progiciel de gestion permet principalement de profiter de ses nombreuses fonctionnalités. Nous avons choisi d'utiliser le système de facturation que nous avons associé à la plateforme de paiement en ligne Stripe.
Notre site web s'appuie sur la même base de données que Dolibarr et permet aux joueurs de s'y connecter avec les mêmes identifiants que le serveur Minetest et d'y réaliser des actions telles que l'échange d'objets entre joueurs et la mise aux enchères via un hôtel des ventes. Pour cela, nous avons introduit la monnaie Minecoin. Les joueurs peuvent s'en procurer en vendant leurs objets à une "banque". Le site propose également d'acheter directement des Minecoin avec de l'argent réel. Nous avons pour cela intégré Stripe pour permettre la simulation de paiement. Une facture est ensuite éditée par Dolibarr et envoyée à l'adresse mail du joueur.
Apprentissages critiques (AC) et Composantes essentielles (CE) mobilisés :
AC 1.1 - Choisir et implémenter les architectures adaptées
CE 1.4 - En choisissant les ressources techniques appropriées
En plus d'avoir amplement consulté la documentation de Dolibarr et Minetest, nous avons expérimenté plusieurs solutions permettant de répondre au problème posé par l'API de Minetest.
En effet, celle-ci ne permet pas d'écouter les requêtes entrantes.
Nous avons dans un premier temps essayé d'intégrer LuaSocket dans le client Minetest afin de compléter les services API.
Nous avons également développé un léger serveur Python intégré au module Minetest permettant de faire relais en écoutant les requêtes entrantes et en les intégrant à une liste d'attente.
C'est finalement la solution la plus simple que nous avons conservée. Celle-ci réside dans un booléen qui atteste d'une potentielle modification réalisée côté serveur.
AC 1.3 - Intégrer des solutions dans un environnement de production
CE 1.3 - En veillant à la qualité du code et à sa documentation
Dans ce projet, nous avons appliqué des principes de conteneurisation avec Docker afin d'isoler les services, de faciliter le déploiement et d'assurer la reproductibilité.
Nous avons pour cela utilisé des images officielles puis avons créé notre propre image.
Le déploiement des divers services nécessite tout de même une certaine attention, comme le site web ou la configuration de Dolibarr.
C'est pourquoi nous avons veillé à rédiger et mettre à jour des fichiers README détaillés pour chacun d'entre eux.
Une fois notre projet pratiquement terminé, nous avons eu l'occasion de le mettre en pratique dans un environnement de production afin qu'il soit expérimenté et critiqué par nos camarades de promotion.
AC 5.2 - Savoir intégrer un projet informatique dans le système d'information d'une organisation
CE 5.2 - En respectant les règles juridiques et les normes en vigueur
Notre projet intégrant déjà Dolibarr, il est aisé de pouvoir y ajouter les modules nécessaires pour gérer des employés et transformer ce projet en entreprise.
Nous aurions également pu développer notre projet autour d'un progiciel de gestion existant en y rajoutant nos tables SQL.
L'essentiel est que nous avons veillé à assurer une certaine interopérabilité.
Par exemple, en respectant l'architecture et les normes de nommage de Dolibarr.
De plus, nous avons rédigé une documentation complète et avons veillé au respect des principes du RGPD.
AC 6.4 - Accompagner le management de projet informatique
CE 6.4 - En développant une communication efficace et collaborative
Ce projet a été très formateur d'un point de vue du management en me permettant d'endosser le rôle de SCRUM master.
J'ai ainsi organisé les réunions quotidiennes et fait respecter la ligne directrice du projet.
J'ai également géré l'orientation de la charge de travail, notamment lorsqu'un membre a été absent plusieurs jours alors qu'il devait finaliser une partie essentielle pour la continuité du travail.
Nous avons alors mis en place un service alternatif pour ne pas retarder notre avancée.
Afin de soutenir l’engagement de chacun, j'ai utilisé une communication assertive permettant de faire comprendre au mieux nos objectifs communs.