[en] The purpose of this Final Degree Project is to develop a web application for the sale of the necessary infrastructure for the use of renewable energies, and to raise public awareness of the need to care for the environment. The web application is divided into front-end and back-end, which is the three-layer pattern separating the presentation layer, the business layer and persistence. The front-end (presentation layer) is a web client, which allows the application to be accessible from any computer through the use of a browser. Regardless of the computational power of the user's computer, since the business logic does not have to be installed on the device, as is the case with desktop applications, the performance of the application depends only on the server that starts this logic and the quality of the developer's work. So, it is more comfortable and accessible for the user to use this type of applications. The back-end (business layer and persistence layer) is a REST API, the business logic is therefore reusable and accessible from anywhere. Since personal customer information is handled, security has been one of the most relevant aspects, implementing an authentication and authorization system using tokens. The persistence layer makes use of a relational database, which facilitates the organization and structuring of the information. They also allow the use of restrictions that ensure the coherence and consistency of the data, so that there are no duplications, and they are reliable. They allow transactions, important for payments made by customers in the system, so that, if an inconvenience occurs, the integrity of the data is maintained. MySQL has been used for the implementation of the relational database, the Java programming language within the Spring framework for the implementation of the REST API (back-end), and the React library has been used as a framework for the front-end development, making use of the JavaScript programming language, the HTML markup language, and the CSS styling language.

[es] La finalidad de este Trabajo de Fin de Grado es desarrollar una aplicación web para la venta de la infraestructura necesaria para el aprovechamiento de las energías renovables, y concienciar a la población de la necesidad de cuidar el medio ambiente. La aplicación web se divide en front-end y back-end, que no deja de ser el patrón de tres capas separando la capa de presentación, de la de negocio y persistencia. El front-end (capa de presentación) es un cliente web, esto permite que la aplicación sea accesible desde cualquier equipo a través del uso de un navegador. Independientemente de la potencia computacional del equipo del usuario, al no tener que instalar la lógica de negocio en el dispositivo, como ocurre con las aplicaciones de escritorio, el rendimiento de la aplicación depende solo del servidor que arranca esta lógica y de la calidad del trabajo del desarrollador. Por lo que es más cómodo y accesible para el usuario el uso de este tipo de aplicaciones. El back-end (capa de negocio y capa de persistencia) es una API REST, la lógica de negocio por lo tanto es reutilizable y accesible desde cualquier lugar. Dado que se maneja información personal de los clientes se ha tenido como uno de los aspectos más relevantes la seguridad, implantando un sistema de autenticación y autorización haciendo uso de tokens. La capa de persistencia hace uso de una base de datos relacional lo que facilita la organización y estructuración de la información. También permiten el uso de restricciones que aseguran la coherencia y consistencia de los datos, haciendo que no haya duplicaciones y que sean confiables. Permiten hacer transacciones, importantes para los pagos hechos por los clientes en el sistema, de forma que, si ocurre un inconveniente, la integridad de los datos se mantenga. Se ha utilizado MySQL para la implementación de la base de datos relacional, el lenguaje de programación Java dentro del marco de Spring para la implementación de la API REST (back-end), y se ha utilizado la librería de React como marco para el desarrollo del front-end, haciendo uso del lenguaje de programación JavaScript, del lenguaje de marcado HTML, y el lenguaje de estilo CSS.