Messy Words es una aplicación web interactiva desarrollada con Angular que propone al usuario un reto lingüístico diario: adivinar cinco palabras que aparecen desordenadas. La dinámica del juego combina lógica, vocabulario y rapidez mental, registrando el tiempo y número de intentos para generar una puntuación final. La aplicación incluye autenticación mediante Google y almacenamiento en la nube a través de Firebase, lo que permite conservar las puntuaciones y gestionar rankings en tiempo real. El proyecto se centra en aplicar buenas prácticas de ingeniería de software, diseño responsivo y arquitectura moderna basada en componentes independientes. Messy Words pretende ofrecer una experiencia lúdica y educativa, optimizada para navegador y adaptable a dispositivos móviles mediante tecnologías web actuales.
Para el desarrollo de Messy Words se seguirá un enfoque basado en la metodología Kanban, permitiendo una planificación visual, flexible y adaptada al flujo de trabajo. Se inicia el proyecto creando un producto mínimo viable (MVP) que contempla las funciones esenciales del juego: visualización del reto diario, comprobación de palabras introducidas y el sistema básico de puntuación.
Se han identificado una serie de funcionalidades y requerimientos para la aplicación que a su vez se han desglosado en tareas atómicas. Estas tareas se han priorizado para dar mayor funcionalidad a la aplicación y se ha establecido un orden de realización.
La gestión del proyecto se apoyo en herramientas como Google Keep y Trello para el desarrollo del tablero Kanban, y GitHub como plataforma de control de versiones. Se realizaron commits a la misma a lo largo de la consecución de milestones previamente definidos.
Durante el desarrollo del proyecto se trabajaran y adquirirán múltiples competencias relacionadas con la Ingeniería de Software
-
Capacidad de análisis y resolución de problemas aplicando soluciones específicas a necesidades concretas.
-
Dominio de frameworks modernos, especialmente Angular para el Frontend y Firebase para el backend en la nube.
-
Diseño e implementación de interfaces responsive y accesibles, garantizando una experiencia fluida tanto en ordenadores como en dispositivos móviles.
-
Integración de servicios externos, como el inicio de sesión mediante Google o la compartición de puntuaciones por redes sociales.
-
Gestión y persistencia de datos en tiempo real utilizando una base de datos NoSQL como Firestore.
-
Aplicación de buenas prácticas de desarrollo web, practicando un código modular, reutilizable y mantenible.
Se ha desarrollado una aplicación web SPA (Single Page Application) usando el framework Angular en su versión standalone, junto a Tailwind CSS para los estilos, lo que ha permitido diseñar interfaces responsive, limpias y accesibles. El diseño visual fue previamente trabajado en Figma como base para la maquetación y prototipado de componentes.
Como backend en la nube, se ha integrado Firebase, utilizando Firestore para la persistencia de datos (como las palabras y las puntuaciones) y Firebase Authentication para la autenticación social mediante Google. Los datos del juego se almacenan y sincronizan en tiempo real.
Además, el proyecto contempla la integración de Jenkins como herramienta de integración continua, la cual se utilizará en fases finales del desarrollo para automatizar tareas como el testeo, compilación y el despliegue del proyecto.
Se utilizarán distintas APIS públicas para compartir puntuaciones en redes sociales:
-
URS Share Dialog para Facebook.
-
Web intent de X (Anteriormente Twitter)
-
LinkedIn Share URL para Linkedin
-
URS Share Dialog para Facebook
Se ha usado Git para el control de versiones alojado en GitHub.
Para la organización de tareas se han utilizado Google Keep y Trello.
Se utilizará Jasmine + Karma para realizar pruebas unitarias integradas en Angular como Eslint + Prettier para mantener la calidad y estilo del código.