[en] The goal of this project, framed in the software development field, has been to creat an application that allowed students and teachers to visualize and modify exercises of some subject (although the main focus of the project have been programming exercises), as well as the exams, practices, and tests in which they have been used. On one hand, the main focus of this application is to facilitate the work of the teacher, giving them access to all kinds of features related to the management of these elements, like filtering and sorting exercises, creating sketches of exercises, or downloading these exercises in a readable format. On the other hand, the software system can also be used by students, allowing them to access resources that will be useful when getting ready for tests. They will also have available similar features to those of the teachers. Taking into consideration the characteristics of the application, it should be obvious that we want the system to be fast, secure, easy to use, and accesible for as many people as possible. These are the reasons that made us decide to create a responsive web application, following the guidelines of the Material design philosophy, and that implements security features so that no important vulnerabilities are found in our software, using for this purpose adequate tools and algorithms that guarantee that the response time is low. To develop this project, we have followed the Unified Software Development Process philosophy, which makes use of an iterative and incremental strategy, in which iterations focus on important aspects of the software. To develop the application, we have exclusively used freeware, which will show many advantages later on. Besides, we have tested the application components in the ways we thought were necessary to guarantee the quality of the final product. The final application fulfills all of the requirements the client provided, both functional and non-functional. However, the software was developed in such a way that it shouldn't be difficult to modify at some point in the future if necessary. What is presented in this document is a simplified version of a learning platform, that only provides the basic functionalities usually expected from this kind of applications.

[es] El objetivo de este proyecto, enmarcado en el campo del desarrollo software, ha sido crear una aplicación que permitiera, tanto a profesores como alumnos, visualizar y modificar ejercicios de alguna materia (aunque el foco concreto del proyecto hayan sido ejercicios de programación), así como los exámenes, prácticas, y prácticas evaluables en los que hayan sido utilizados. Por un lado, esta aplicación tiene como fin facilitar el trabajo de los docentes implicados, dándoles acceso a todo tipo de funcionalidades orientadas a la gestión y el control de los ejercicios y pruebas introducidas en el sistema, tales como el filtrado y ordenado de elementos por distintos criterios, la creación de bocetos de ejercicios que serán posteriormente refinados, o la descarga en de los enunciados de los ejercicios contenidos en alguna prueba, en un formato adecuado. Por otro, el sistema también está pensado para el uso por parte de alumnos, permitiendo que estos tengan acceso a aquellos recursos que los profesores hayan considerado apropiados, que les servirán de referencia de cara a las pruebas evaluatorias a las que se tendrán que enfrentar. Al igual que los profesores, dispondrán de numerosos criterios de filtrado y ordenado que garantizarán su control sobre los recursos, así como de opciones de descarga de los enunciados de estos ejercicios. Teniendo en cuenta las características de esta aplicación, parece bastante evidente que lo que buscamos es un sistema rápido, seguro, de fácil uso, y que sea accesible para el mayor número de usuarios posible. Es por esto por lo que se ha decidido crear una aplicación web responsive, que siga las normas del diseño Material, y que implemente los mecanismos de seguridad pertinentes que garanticen que el software no tiene vulnerabilidades importantes, utilizando para todo ello herramientas y algoritmos apropiados que aseguren que el tiempo de respuesta de la aplicación es bajo. Para realizar este proyecto, se ha seguido la metodología conocida como Proceso Unificado de Desarrollo de Software. Esta metodología propone el desarrollo de un esquema iterativo e incremental, en donde las iteraciones se centran en aspectos relevantes del software. Para el desarrollo de la aplicación, nos hemos valido únicamente de herramientas de software libre, lo cual nos proporcionará numerosas ventajas. Además, se han realizado las pruebas que se han considerado necesarias para garantizar la calidad del producto software que ha sido entregado al cliente al concluir su desarrollo. La aplicación final cumple con todos los requisitos, funcionales y no funcionales, establecidos al inicio del proyecto. Sin embargo, el software ha sido desarrollado con el objetivo de que pudiera ser fácilmente ampliado o modificado en algún momento en el futuro. Lo que aquí se presenta es una plataforma de aprendizaje muy simplificada, que solo cuenta con las funcionalidades esenciales que se esperarían de una aplicación de estas características. Si así se decidiera, esta podría actuar de base para construir una plataforma de aprendizaje completa, equiparable a Moodle o a cualquiera de sus competidoras.