Universitat Politècnica de Catalunya. Departament d'Enginyeria de Serveis i Sistemes d'Informació
Martínez Fernández, Silverio Juan
González Álvarez, Alexandra
2025-06-26
Contemporary data scientists and software developers are faced with the overwhelming growth of Machine Learning (ML) models and datasets, forcing them to search and compare resources manually from diverse platforms, that is time-consuming. This report outlines the design and implementation of a web app that reduces discovery time by automating both user-defined monitoring and data ingestion of ML assets. Developed using the Scrum methodology, the system follows a three-layered architecture with: (i) a SSR-enabled single-page application (Angular Universal) frontend, (ii) a FastAPI backend, and (iii) a PostgreSQL database; all deployed under Docker Compose encapsulation. Its interface have three different main functionalities: a Software Engineering (SE) task selector (System Design, Code Generation...), a categorical metadata filtering section (License, Library..) and a CSVexport functionality of filtered results. The interface is fully responsive for different devices. Feedback was gathered via a structured survey of SE experts confirming high usability and clarity. The strategy for data ingestion follows a hybrid approach, an automated pipeline that extracts raw metada from Hugging Face on a daily schedule, and a manually customized set of scripts. In order to have a fiable code manteinance, a comprehensisive continuous integration and quality-gate workflow have been implemented, based on GitHub Action and SonarQube. Future work will include other sorting levels such as a wide range of benchmarks in order to rank the best models based on their results.
Els enginyers de dades i els enginyers de software d’avui en dia s’enfronten al problema d’haver de seguir el ritme de creixement continu de milers de repositoris de models de Machine Learning (ML) i conjunts de dades, fet que els obliga a cercar i comparar recursos manualment des de diverses plataformes, cosa que consumeix molt de temps. Aquest document presenta el disseny i la implementació d’una aplicació web que redueix el temps de descoberta, ho fa mitjan¸cant l’automatització tant de la supervisió definida per l’usuari com de la ingesta de dades de ML. Desenvolupat utilitzant la metodologia Scrum, el sistema segueix una arquitectura de tres capes amb: (i) una aplicació d’una sola pàgina habilitada per SSR (Angular Universal) pel frontend, (ii) un backend FastAPI, i (iii) una base de dades PostgreSQL; tot desplegat sota encapsulació de Docker Compose. La seva interfície té tres funcionalitats principals: un selector de tasques d’Enginyeria del Software (SE) (Disseny de Sistemes, Generació de Codi...), una secció de filtratge de meta-dades categòriques (Llicència, Llibreria...) i una funcionalitat d’exportació CSV dels resultats filtrats. La interfície és completament adaptable a diferents dispositius. Una enquesta estructurada realitzada entre experts en SE ha permès recollir opinions que confirmen la seva gran facilitat d’ús i claredat. L’estratègia per a la ingesta de dades segueix un enfocament híbrid, amb un procés automatitzat que extreu meta-dades en brut de Hugging Face diàriament i un conjunt d’scripts personalitzats manualment. Per mantenir un codi fiable, s’ha implementat un flux de treball exhaustiu d’integració contínua i control de qualitat basat en GitHub Action i SonarQube. El treball futur inclourà altres nivells de classif icació, com una àmplia gamma de punts de referència per classificar els millors models en funció dels seus resultats.
Los ingenieros de datos y los ingenieros de software de hoy en día se enfrentan al problema de tener que mantener el ritmo saturador de crecimiento de miles de repositorios de modelos de Machine Learning (ML) y conjuntos de datos, lo que les obliga a buscar y comparar recursos manualmente desde diversas plataformas, lo que consume mucho tiempo. Este documento sigue el diseño y la implementación de una aplicación web que reduce el tiempo de descubrimiento mediante la automatización tanto de la supervisión definida por el usuario como de la ingestión de datos de activos de ML. Desarrollado utilizando la metodología Scrum, el sistema sigue una arquitectura de tres capas con: (i) una aplicación de una sola página habilitada para SSR (Angular Universal) para el frontend, (ii) un backend FastAPI, y (iii) una base de datos PostgreSQL; todo desplegado bajo encapsulación Docker Compose. Su interfaz tiene tres funcionalidades principales: un selector de tareas de Ingeniería de Software (SE) (Diseño de Sistemas, Generación de Código...), una sección de filtrado de metadatos categóricos (Licencia, Librería...) y una funcionalidad de exportación CSV de los resultados filtrados. La interfaz es totalmente adaptable a distintos dispositivos. Una encuesta estructurada realizada entre expertos en SE ha permitido recabar opiniones que confirman su gran facilidad de uso y claridad. La estrategia para la ingesta de datos sigue un enfoque híbrido, un proceso automatizado que extrae metadatos sin procesar de Hugging Face diariamente y un conjunto de scripts personalizados manualmente. Para mantener un código fiable, se ha implementado un flujo de trabajo exhaustivo de integración continua y control de calidad basado en GitHub Action y SonarQube. El trabajo futuro incluirá otros niveles de clasificación, como una amplia gama de puntos de referencia para clasificar los mejores modelos en función de sus resultados.
Bachelor thesis
English
Àrees temàtiques de la UPC::Informàtica::Enginyeria del software; Àrees temàtiques de la UPC::Informàtica::Intel·ligència artificial::Aprenentatge automàtic; Software engineering; Machine learning; Web applications; Enginyeria del software; Intel·ligència artificial; Aprenentatge autònom; Model pre-entrenat; Dataset; Cicle de vida del desenvolupament de programari; Integració contínua; Renderització del costat del servidor; Aplicació d'una sola pàgina; Software engineering; Artificial intelligence; Machine learning; Pre-trained model; Continuous integration; Server-side rendering; Single-page application; Single-page application; Enginyeria de programari; Aprenentatge automàtic; Aplicacions web
Universitat Politècnica de Catalunya
Open Access
Treballs acadèmics [82541]