[en] The idea on which the application developed for this project is based is to improve communications between local government entities and citizens, offering relevant information that directly affects both sides in a bidirectional way. To achieve this, the application is divided into a Notices section, where the city council is responsible for providing information to the citizen collected in different categories (Events, Information, Notices and Emergencies); and a Communicate section, where it is the citizens who report on the state of the town in form of Incidents and Suggestions. Given that time has not been enough to develop a complete application, especially taking into account the inexperience of the student, this project has been considered a pet project where the use of good practices in software development is more important than a fast and careless implementation of all features. The application is based on the MEVN Stack (MongoDB - Express - Vue.js - Node). Instead of using a local instance of MongoDB as the database, Atlas, its cloud equivalent, has been used due to the flexibility it offers. The back end has been structured with a basic three-layer architecture on an Express server, and the Quasar framework has been used for the development of the front end, which provides the basic structure to implement a Single Page Application (SPA) based on Vue.js and makes it easy to prototype the user interface with its own component library. The Test-Driven Development (TDD) cycle has been applied as much as possible, as well as the application of design principles and patterns for a clean code that is maintainable and intuitive, with a continuous refactoring of the code.

[es] La idea en la que se basa la aplicación desarrollada en este trabajo es la de mejorar las comunicaciones entre los organismos gubernamentales a nivel local y la ciudadanía, ofreciendo información relevante que afecte directamente a ambas partes de forma bidireccional. Para ello se divide en un apartado Avisos, donde el ayuntamiento se encarga de aportar información al ciudadano recogida en distintas categorías (Eventos, Información, Avisos y Emergencias); y un apartado Comunica, donde son los ciudadanos quienes informan sobre el estado de la localidad en forma de Incidencias y Sugerencias. Dado que se ha dispuesto de un tiempo limitado para desarrollar una aplicación completa, especialmente teniendo en cuenta la inexperiencia del alumno, este trabajo se ha planteado como un pet project en el que se prima el ejercitar el uso de buenas prácticas en el desarrollo software sobre la implementación rápida y descuidada de todas las funcionalidades. La aplicación está basada en el stack MEVN (MongoDB - Express - Vue.js - Node). En lugar de usar una instancia local de MongoDB como base de datos, se ha optado por usar Atlas, su equivalente en la nube, por la flexibilidad que supone. El back end se ha estructurado con una arquitectura básica de tres capas sobre un servidor Express, y se ha hecho uso del framework Quasar para el desarrollo del front end, que provee la estructura básica para implementar una Single Page Application (SPA) basada en Vue.js y facilita el prototipado de la interfaz de usuario con su propia librería de componentes. Se ha tratado de respetar en la medida de lo posible el ciclo de Desarrollo Guiado por Pruebas (TDD - Test-Driven Development), así como la aplicación de principios y patrones de diseño para un código limpio que resulte mantenible e intuitivo, destacando la refactorización constante del código.