[en] Our project is based on a Smart City Manager, a manager that administers and supervises the Nodes of a smart city. Since we don't have access to a real Smart City, we have created the Test Bed Manager in a smaller testing environment. Here, researchers, companies, and other users can conduct experiments to ensure that their products and services work in a real Smart City. Thanks to a web application, users can access the services of the Test Bed Manager, upload files, create scenarios, and request tests. The scenarios are run using Docker containers, allowing for the emulation of Nodes, use of physical devices, real-time information display, and storing the results in the repository. The results have been as expected and have allowed for successful demonstrations with external users to the project.

[es] Nuestro proyecto surge del concepto de Smart City Manager, un gestor unificado que permite gestionar, administrar y monitorizar todos los Nodos que tenga una ciudad inteligente. Debido a que no tenemos acceso a ninguna Smart City como recurso, ni a servicios o empresas que quieran proporcionarnos información y procesamiento para nuestras pruebas y operaciones, hemos decidido adaptar el proyecto a un entorno de pruebas más reducido, creando así el Test Bed Manager. En este entorno, investigadores, empresas y usuarios pueden llevar a cabo sus experimentos con la certeza de que sus productos o servicios pueden funcionar en una Smart City real. A través de la aplicación web, los usuarios pueden acceder a los servicios que ofrece el Test Bed Manager. Mediante las opciones de creación, los usuarios pueden subir diferentes archivos que conformarán la base de los escenarios y pruebas que se quieran definir posteriormente. A continuación, el usuario debe crear un escenario utilizando la definición anterior del Test Bed. Por último, el usuario debe enviar una petición para ejecutar una prueba basada en el escenario recién generado. En ese momento, la petición se añade a una cola de procesamiento y, cuando se ejecuta, se envía al Test Bed toda la información necesaria para poner en marcha ese escenario, aplicando las configuraciones y órdenes iniciales a todos los Nodos. Gracias a los contenedores Docker [1], que permiten la escalabilidad, adaptabilidad y virtualización de una máquina real, podemos crear Nodos emulados y descargar en cada uno de ellos todos los códigos previamente definidos en las opciones de creación. Una vez que se han descargado todos los códigos y se han compilado sus dependencias, se pone en marcha la prueba. A continuación, podemos ver en tiempo real la ejecución de nuestras pruebas en el portal web, donde se mostrará la información que los Nodos envían sobre los sucesos que van ocurriendo. Al finalizar, todos los resultados obtenidos se almacenarán en el repositorio, al cual podremos acceder a través del apartado "My Tests" que se encuentra en el portal web. En este apartado, podemos encontrar todas las pruebas que hemos ejecutado, y podemos ver el estado y los archivos de cada una de ellas. Para lograr los objetivos, hemos utilizado la metodología ágil, la cual nos ha permitido llevar un control de los objetivos y realizar incrementos sobre el producto original. Esta metodología consiste en dividir el trabajo en periodos de dos semanas, con reuniones al final de cada periodo que demuestran el incremento efectuado. Los resultados han sido los esperados y la conclusión de este trabajo ha permitido realizar diferentes demostraciones con usuarios externos al proyecto, como los alumnos del IES Joaquim Mir, quienes probaron sus códigos controlando uno de los coches junto con la infraestructura del escenario creado por nuestros tutores, Adrià Asensio y Sergi Sánchez.