Development of a repository-driven web application for machine learning models tailored for software engineering tasks

Other authors

Universitat Politècnica de Catalunya. Departament d'Enginyeria de Serveis i Sistemes d'Informació

Martínez Fernández, Silverio Juan

González Álvarez, Alexandra

Publication date

2025-06-26



Abstract

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.

Document Type

Bachelor thesis

Language

English

Publisher

Universitat Politècnica de Catalunya

Recommended citation

This citation was generated automatically.

Rights

Open Access

This item appears in the following Collection(s)