
Pasantía de desarrollador web (Laravel) para On The Road a Game
Después de un proyecto de fin de año en la escuela con un cliente real, fui contratado como desarrollador web de prácticas en la empresa On The Road a Game.

Desde hace más de 7 años, On The Road A Game organiza viajes que combinan misterios, juegos, aventuras y sobre todo encuentros humanos y culturales. Este concepto único permite a sus participantes volver a los orígenes del viaje: el descubrimiento de otros.
Cuando un viajero se embarca en una sesión de On The Road a Game, no sabe a dónde se dirige. No es posible ninguna preparación. Por lo tanto, es un verdadero viaje de misterio, junto con un juego entre equipos que condimenta esta extraordinaria experiencia.
Participamos en un equipo de 2 personas, no hay eliminación. El equipo ganador se determina sobre la base de desafíos y un presupuesto para (no) gastar. La cantidad total en exceso recolectada al final del juego se dona a una organización benéfica, elegida por el equipo ganador.
Al comienzo del juego, se ofrece una serie de desafíos a los equipos. La cantidad de puntos otorgados depende de la dificultad del desafío.
La crisis sanitaria provocó la cancelación de los 4 viajes OTR previstos para 2020, lo que provocó una importante pérdida de facturación y una ralentización del proceso de desarrollo de la marca.
Dada la incertidumbre actual, es necesario :
- Encuentrar otras fuentes de ingresos que, incluso si el viaje no se puede reanudar de inmediato
- Encuentrar una manera de comunicarse activamente con viajeros anteriores y futuros e involucrarlos en otra forma de aventura

Por eso nos llamaron a nosotros, estudiantes de segundo año, para llevar a cabo el proyecto @Home a Game! Escribí un artículo en mis proyectos, que habla con más detalle sobre las características solicitadas en este proyecto escolar, puedes acceder aquí.
En resumen, el objetivo de este concepto es ofrecer sesiones de juego como OTR, pero con desafíos que deben lograrse cerca de casa y publicarlos en un sitio dedicado.
Después de hacer los exámenes orales en la escuela frente al cliente para mostrarle el resultado final de nuestra producción, llamó a mi grupo y nos dijo que estaba muy interesado en lo que le mostramos.
Fui yo quien desarrolló el sitio del proyecto de la A a la Z, estaba extremadamente feliz de tener la oportunidad de continuarlo y que es más solo un proyecto escolar, pero que los usuarios realmente lo ponen en línea y lo usan.
Así que acepté y comencé mi pasantía este verano después de la de Ynov como mentor (puedes leer el artículo al respecto aquí.)

Luego de haber rehecho una demostración de mi proyecto frente a los directores de la empresa, desarrollamos las funcionalidades para hacer, mejorar o cambiar para un lanzamiento de producción para septiembre / octubre de 2021 con un orden de prioridad.
Dada la crisis actual, y realmente no tienen oficina, trabajo desde casa. Usamos Asana para programar tareas y Slack para comunicarnos con todo el equipo.
Yo soy la única que trabaja en el proyecto, pensé que sería un problema, pero finalmente logro trabajar por mi cuenta, el proyecto lo conozco muy bien, mi código también, solo tengo que mejorarlo. Entonces ya lo había desarrollado 4 meses antes para el proyecto escolar.
Había elegido Laravel 8 para este proyecto en la escuela, explico esta elección con más detalle en un artículo de mis proyectos que puedes encontrar aquí. Por tanto, era normal continuar con esta tecnología, sabiendo que es compatible con el actual host de OTR.
Mi primera tarea fue revisar todo el diseño de la base de datos para tener en cuenta las nuevas funciones. Después de eso, tuvimos que corregir el código existente con las modificaciones de la base de datos, por ejemplo, para una sesión de juego, no había título, agregué uno en la base de datos pero algunos de repente mi código anterior ya no es bueno. Me tomó bastante tiempo, a pesar de algunos cambios importantes en la base de datos.

Después de una semana de trabajo, me pidieron que pusiera en producción lo que había hecho por el momento para que realmente pudieran probar el sitio por sí mismos, encontrar errores o cosas que no fueran adecuadas. Nunca he subido uno de mis proyectos (este portafolio está alojado gracias a GitHub, así que no hay nada que hacer en particular), especialmente porque hay una base de datos con él.
Para nuestro proyecto de fin de año, tuvimos que simular el alojamiento usando máquinas virtuales Linux, pero teníamos muchas preocupaciones, como HTTPS, luego fue mi socio quien se ocupó de esta parte en profundidad porque carezco de conocimientos de infraestructura.
Vi muchos tutoriales, creé una base de datos en Infomaniak, así como un usuario, luego puse mi proyecto en la carpeta correspondiente, seguí los pasos uno tras otro, ¡y 2 días después de que funcionó!
Trabajar localmente es bueno, siempre he escuchado que es diferente en la producción ... ¡Bueno, es verdad! Noté que había muchos problemas que no podía ver en localhost, como imágenes que no se muestran bien, errores del servidor. Tuve que tomarme un poco de tiempo para poder solucionar todos sus inconvenientes.
Mi cliente me enseñó cómo proteger el sitio en producción mientras esperaba que se abriera al público gracias a los archivos .htaccess y .htpasswd, tan pronto como alguien accede al sitio, se le pide un nombre de usuario y una contraseña. Esto permite restringir el acceso para evitar que personas malintencionadas hagan algo hasta que el sitio esté completamente terminado. Encontré algunas dificultades para configurarlo debido a la ruta absoluta al archivo .htpasswd, no tomé en cuenta la estructura de árbol del host. Pero con perseverancia terminé triunfando.
Estaba tan orgullosa de haber puesto este proyecto en línea, por mi cuenta, aunque aún no estaba completo al 100%, todo estaba funcionando. Poder verlo en tu teléfono es otra cosa, entonces te das cuenta mucho mejor de los problemas de responsive o incluso UX que no va muy bien en la versión móvil, como botones que son demasiado pequeños, o demasiado cerca. Esto me permitió avanzar aún más y perfeccionar mi trabajo.
Esta primera versión sola tenía mucho más para los directores, había avanzado mucho en muy poco tiempo, luego les dio aún más ideas: adaptar el sitio @Home a Game para una sesión de On The Road a Game en octubre ! Tuve que revisar qué podíamos hacer para adaptarlo lo mejor posible, lo más rápido posible y, sobre todo, haciendo el menor cambio posible en lo que ya había hecho. Después de pensarlo bien y discutirlo con el cliente, encontramos una solución “temporal” que sería suficiente por el momento, a la espera de hacer una verdadera aplicación móvil dedicada a este propósito.

Otra de mis dificultades, que es una de las principales características de la inauguración en septiembre, es poder aceptar el envío de imágenes y videos de un desafío. No parece muy complicado, pero con el sistema de validación de Laravel es bastante complejo poder decir que aceptamos ambos, comprobar si la extensión es buena, luego ponerla en la carpeta correcta (imágenes o videos), y finalmente poder visualizarlo correctamente comprobando si es su tipo de archivo para poner la etiqueta HTML correcta.
Después de completar con éxito este paso, surgió otro problema: el formato de los videos. De hecho, en HTML solo acepta formato MP4, WebM y Ogg, pero no podríamos restringir estos formatos únicos para un usuario que quiera publicar un video. El sitio web está más diseñado para uso móvil, por lo que es complicado pedirles que conviertan su video antes de publicarlo.
Entonces pensé en una solución, incluso si el video no se muestra, los administradores podrán descargarlo directamente a través de su interfaz para poder verlo de todos modos.
En el sitio, se necesitaba un sistema de pago, pero no tengo el nivel suficiente para configurarlo, después de haber pensado en varias soluciones, lo más fácil y rápido para el lanzamiento es usar la tienda en línea ya disponible en ontheroadagame.fr.
De momento sigo trabajando en el proyecto, mi pasantía ha finalizado, pero están muy contentos con mi trabajo y esta vez me llaman como proveedor de servicios.
Me gusta mucho este proyecto, ya habíamos hecho un trabajo en grupo el año pasado para ellos, luego este año como un gran proyecto de fin de año, por lo que poder continuar esta vez de una manera realmente profesional es una consagración de todo el trabajo. que pude proporcionar.
Incluso decidimos crear una startup de Ydays para continuar nuestra colaboración, donde seré el director, y podré descubrir el rol de project manager, que también me interesa mucho.
En conclusión, fue una gran experiencia, que me enseñó mucho, solo tener que hablar con el cliente de forma regular, entender sus deseos, sus expectativas, satisfacer sus necesidades, buscar soluciones. No pensé que sería capaz de hacer todo este trabajo por mi cuenta, especialmente en cosas que no necesariamente sabía, pero con trabajo duro y perseverancia, hice todo lo posible para llegar allí.