Seguro que ya me has oído hablar de los Urlan Points porque estoy dando una importante turra con ellos.
Hoy voy a compartir cómo lo estamos montando y las tecnologías que estamos usando.
Si eres un ser humano normal y corriente (sin las taras propias de quienes hemos elegido dedicarnos al desarrollo) seguramente esto te parecerá un rollo infumable.
Los Urlan Points forman parte de una cosa a la que hemos llamado Urlan Tools, un conjunto de herramientas para hacer más fácil la vida de las pequeñas empresas.
Van a ser pequeñas herramientas independientes pero con cuentas de usuario comunes. Y con un login común. Esto hace que las cosas sean más complicadas y te cuento la solución que estamos usando.
API con Laravel
En el centro de todo hemos montado una API que será la que dará servicio a todas las herramientas. Esta API usa Oauth2 para identificar a los usuarios.
La API la hemos creado (cómo no) con la última versión de Laravel disponible a día de hoy.
Por supuesto lo hemos desarrollado todo con TDD (Test Driven Development), ni una línea de código no requerida por un test. Y aún así hacemos alguna cagadilla, claro.
Laravel tiene un montón de cosas «mágicas» que facilitan mucho la vida pero hacen que el código quede muy dependiente del framework. Así que yo hay muchas cosas que prefiero no usar por si tengo que reutilizar en otros proyectos.
Ah, y la base de datos es un MySQL. No esperamos millones de usuarios (ojalá) así que preferimos las ventajas que nos da una base de datos relacional sobre la rapidez de respuesta de algo como Mongo.
VueJS / Nuxt / Vuetify
Y para la parte front hemos usado la última versión de VueJS. Esto nos ha obligado a usar la última de Nuxt y Vuetify y nos ha generado algunos problemas. Los problemas con por algún componente de Vuetify que no está del todo estable.
Nuxt es un framework basado en VueJS que te permite crear una aplicación con todo lo que necesitas ya de serie. Te ahorra bastante tiempo.
Hemos conseguido que todas las aplicaciones tengan un login común aunque creemos que aún no está del todo fino. Seguimos trabajando en ello.
En esta parte de front no hemos metido aún test «end to end» pero lo estamos valorando.
Servidor Nginx
El servidor es Nginx que da servicio tanto a la API como a la aplicación Nuxt.
Dado el bajísimo tráfico que tenemos ambas están en un mismo servidor.
Para ejecutar la aplicación de front hemos usado pm2 que te permite mantener siempre activa una aplicación Node.
¿Por qué hemos elegido estas tecnologías?
La respuesta es sencilla: son con las que más rápido trabajamos porque tenemos el culo pelado de usarlas. No hay más misterio.
Estamos en una fase muy inicial con un tráfico ridículo así que no es tiempo para virguerías. Según vayamos creciendo ya nos complicaremos la vida.
Resumen
En resumen, PHP/Laravel+VueJS+OAuth2+MySQL.
Y si quieres enterarte paso a paso de lo que estamos haciendo apúntate a mi newsletter donde cuento un montón de cosas interesantes de forma muy divertida:
No te lo pierdas, apúntate aquí: