Drapeau France Drapeau Espagne
on the road a game

Stage Développeuse Web (Laravel) pour On The Road a Game


A la suite d’un projet de fin d’année à l’école avec un client réel, j’ai été recrutée en tant que développeuse Web en stage dans la société On The Road a Game.


Bandeau on the road

Depuis plus de 7 ans, On The Road A Game organise des voyages qui mêlent mystères, jeux, aventures et surtout rencontres humaines et culturelles. Ce concept unique permet à ses participants de revenir aux origines du voyage : la découverte des autres.

Lorsqu’un voyageur se lance dans une session de On The Road a Game, il ne sait pas où il va. Aucune préparation possible. Il s’agit donc d’un véritable voyage-mystère, couplé à un jeu entre équipes qui vient pimenter cette expérience hors du commun.

On participe en équipe de 2 personnes, il n’y a pas d’élimination. L’équipe gagnante est déterminée sur la base de défis à relever et d’un budget à (ne pas) dépenser. La somme excédentaire totale récoltée à l’issue du jeu est reversée à une association caritative, choisie par l’équipe gagnante.

Au départ du jeu, une série de défis est proposée aux équipes. Le nombre de points attribués dépend de la difficulté du défi.

La crise sanitaire a entraîné l’annulation des 4 voyages OTR prévus en 2020, entraînant une perte de chiffre d’affaire conséquente et un ralentissement du processus de développement de la marque.

Vu l’incertitude actuelle, il est nécessaire de :

  • Trouver d’autres sources de revenus qui, même si les voyages ne peuvent reprendre dans l’immédiat
  • Trouver un moyen de communiquer activement avec les anciens et futurs voyageurs et de les impliquer dans une autre forme d’aventure

Home a game

C’est pour cela qu’ils ont fait appel à nous, étudiants en deuxième années afin de réaliser le projet @Home a Game ! J’ai écrit un article dans mes projets, qui parle plus en détails des fonctionnalités demandées dans ce projet d’école, vous pouvez y accéder juste ici.

En résumé, le but de ce concept, est de proposer des sessions de jeu comme OTR, mais avec des défis à réaliser près de chez soi et les poster sur un site dédié !

Après avoir passé les oraux à l’école devant le client pour lui montrer le résultat final de notre réalisation, il a rappelé mon groupe en nous disant qu’il était très intéressé par ce que nous lui avons montré.

C’est moi qui ai développé de A à Z le site du projet, j’étais extrêmement contente d’avoir l’opportunité de le continuer et que ce soit plus juste un projet d’école mais qu’il soit vraiment mis en ligne et utiliser par des utilisateurs.

J’ai donc accepté et commencé mon stage cet été après celui à Ynov en tant que Mentor (vous pouvez lire l’article à ce sujet juste ici.)


Laravel

Après avoir refait une démonstration de mon projet devant les directeurs de la société, nous avons élaboré les fonctionnalités à faire, à améliorer ou changer pour une mise en production pour septembre/octobre 2021 avec un ordre de priorité.

Etant donné la crise actuelle, et qu’ils n’ont pas vraiment de bureau, je travaille en télétravail. Nous utilisons Asana pour la planification des tâches, et Slack pour la communication avec toute l’équipe.

Je suis seule à travailler sur le projet, je pensais que ça serait un souci, mais finalement j’arrive à travailler toute seule, le projet je le connais très bien, mon code aussi, j’ai juste à l’améliorer. Puis j’avais déjà développé 4 mois dessus auparavant pour le projet de l’école.

J’avais choisi Laravel 8 pour ce projet à l’école, j’explique ce choix plus en détails dans un article dans mes projets que vous pouvez retrouver juste ici. Il était donc normal de continuer avec cette technologie, sachant qu’il est compatible avec l’hébergeur actuel de OTR.

Ma première mission a été de revoir toute la conception de la base de données pour prendre en compte les nouvelles fonctionnalités. Après ça, il a fallu corriger le code existant avec les modifications de la base de données, par exemple, pour une session de jeu, il n’y avait pas de titre, j’en ai rajouté un dans la base de données mais du coup mon ancien code n’est plus bon. Cela m’a pris pas mal de temps, malgré peu de changement majeur dans la base de données.



infomaniak
Infomaniak

Après une semaine de travail, on m’a demandé de mettre en production ce que j’ai fait pour le moment pour qu’ils puissent vraiment tester eux-mêmes le site, trouver des bugs, ou des choses qui ne conviennent pas. Je n’ai jamais mis en ligne un de mes projets (ce portfolio est hébergé grâce à GitHub donc rien à faire en particulier), surtout qu’il y a une base de données avec.

Pour notre projet de fin d’années nous devions simuler un hébergement grâce à des VM Linux, mais nous avions eu énormément de soucis, comme le HTTPS, puis c’est mon binôme qui s’est occupé en profondeur de cette partie-là car je manque de connaissances en infrastructure.

J’ai regardé de nombreux tutos, j’ai créé une base de données sur Infomaniak, ainsi qu’un utilisateur, puis j’ai mis mon projet dans le dossier approprié, suivi les étapes les unes après les autres, et 2j après cela a fonctionné !

Travailler en local c’est bien, j’ai toujours entendu dire que c’était différent en production... Eh bien c’est vrai ! Je me suis aperçu qu’il y avait pleins de problèmes que je ne voyais pas en localhost, comme des images qui ne s’affichent pas bien, des erreurs serveurs. J’ai dû prendre un peu de temps pour pouvoir régler tous ses désagréments.


Mon client m’a appris à protéger le site en production en attendant qu’il soit ouvert au public grâce au fichier .htaccess et .htpasswd, dès que quelqu’un accède au site, on lui demande un identifiant et un mot de passe. Cela permet de restreindre les accès pour éviter que des personnes malveillantes fassent n’importe quoi tant que le site n’est pas entièrement fini. J’ai rencontré quelques difficultés à le mettre en place à cause du chemin absolu vers le fichier .htpasswd, je ne prenais pas en compte l’arborescence de l’hébergeur. Mais avec de la persévérance j’ai fini par réussir.

J’étais tellement fière d’avoir mis ce projet en ligne, toute seule, même s’il n’était pas encore terminé à 100%, tout fonctionnait. Pouvoir le voir sur son téléphone c’est autre chose, puis on se rend bien mieux compte des problèmes de responsive ou même d’UX qui ne va pas trop en version mobile, comme des boutons trop petits, ou trop proche. Cela m’a permis d’avancer encore plus, et de perfectionner mon travail.

Rien que cette première version avait beaucoup plus aux directeurs, j’avais énormément avancé en très peu de temps, puis cela leur a donnée encore plus d’idées : adapter le site @Home a Game pour une session On The Road a Game en octobre ! J’ai dû revoir ce qu’on pourrait faire pour l’adapter au mieux, dans les plus brefs délais., et surtout en faisant le moins de changement possible sur ce que j’avais déjà fait. Après y avoir bien réfléchi et discuté avec le client, nous avons trouvé une solution « temporaire » qui suffirait pour le moment, en attendant de faire une vrai application mobile dédié à cet effet.

Difficultes

Une autre de mes difficultés qui est une des fonctionnalités principales pour l’inauguration en septembre, c’est de pouvoir accepter l’envoi d’images et de vidéos sur un défi. Cela n’a pas l’air très compliqué, mais avec le système de validation Laravel, c’est assez complexe de pouvoir dire que l’on accepte les deux, bien vérifier si l’extension est bonne, puis le mettre dans le bon dossier (images ou vidéos), et enfin pouvoir l’afficher correctement en vérifiant si c’est son type de fichier pour mettre la bonne balise HTML.

Après avoir réussi cette étape, un autre problème est survenu : le format des vidéos. En effet, en HTML accepte seulement le format MP4, WebM et Ogg, mais nous ne pouvions pas restreindre ces seuls formats pour un utilisateur qui veut poster une vidéo. Le site internet est plutôt destiné à une utilisation mobile, il est donc compliqué de leur demander de convertir leur vidéo avant de poster.

J’ai donc réfléchi à une solution, même si la vidéo ne s’affiche pas, les administrateurs pourront la télécharger directement via leur interface pour pouvoir la voir quand même.

Sur le site, il fallait un système de paiement, mais je n’ai pas le niveau suffisant pour le mettre en place, après avoir réfléchis à plusieurs solutions, la plus simple et rapide pour le lancement est d’utiliser la boutique en ligne déjà disponible sur ontheroadagame.fr.



A l’heure actuelle je travaille toujours sur le projet, mon stage a pris fin, mais ils sont très contents de mon travail et on fait appel à moi en tant que prestataire cette fois-ci.

J’aime énormément ce projet, nous avions déjà effectué un travail de groupe l’année dernière pour eux, puis cette année en gros projet de fin d’année, alors pouvoir continuer cette fois-ci de façon vraiment professionnelle est une consécration de tout le travail que j’ai pu fournir.

Nous avons même conclu de faire une startup Ydays pour continuer encore notre collaboration, où je serai la directrice, et je pourrai découvrir le rôle de chef de projet, ce qui m’intéresse beaucoup également.

En conclusion, c’est une très belle expérience, qui m’a beaucoup appris, rien que de devoir discuter avec le client régulièrement, comprendre ses envies, ses attentes, répondre à ses besoins, trouver des solutions. Je ne pensais pas être capable de réussir tout ce travail toute seule, surtout sur les choses que je ne connaissais pas forcément, mais avec du travail et de la persévérance, je me suis surpassée pour y arriver.

Retour