Centre: Institut Esteve Terradas i Illa (Cornellà de Llobregat)
Cicle: Desenvolupament d'aplicacions multiplataforma
Inici: 28 de gener de 2026
Final: 25 de febrer de 2026
El projecte UXIA es tracta d’un sistema d’acompanyament per exposicions basat en un dispositiu wearable, en aquest cas unes ulleres intel·ligents que disposaran de càmera i altaveus, per tal que ens vagi explicant què estem veient. La imatge de la càmera s’enviarà, mitjançant una app mòbil, als servidors del centre, on disposem de motors de IA que ens retornaran una descripció de l’element exposat. Aquesta IA (Intel·ligència Artificial) caldrà entrenar-la específicament per a reconèixer els elements de l’exposició.
El projecte consta de 4 elements:
La part de servidor emprarà, a més, els serveis del IETI Cloud:
Documents:
Repositoris de referència
Inici: 28 de gener de 2026
Final: 4 de febrer de 2026
Hores estimades totals: 30,0
hores estimades: 1,0 Mòduls: MP06 MP07 MP08 MP09
Crear una aplicació mòbil Android amb barra de navegació inferior amb 3 pestanyes amb icones adequades: Ullada, Historial, Ajustos
hores estimades: 2,0 Mòduls: MP08
A la pestanya AJUSTOS es mostra una llista de dispositius Bluetooth aparellats.
Quan seleccionem un device, es guarda aquest device (adreça Mac) a un arxiu settings.xml de l'àrea privada de l'app.
Quan obrim l'app, es carregarà l'adreça Mac del dispositiu configurat, es cercarà el dispositiu Bluetooth i es mostrarà la informació (MAC i nom dispositiu) a la pestanya ULLADA.
hores estimades: 3,0 Mòduls: MP08
Implementar botó per a recepció d'imatge en la pestanya ULLADA, que estarà actiu si el dispositiu Bluetooth ESP32 està connectat.
Si no hi ha cap dispositiu Bluetooth ESP32 sel·leccionat als Ajustos (settings.xml), el botó estarà deshabilitat i es mostrarà una opció per anar a settings.
La imatge s'enregistra a l'àlbum UXIA de la Galeria del dispositiu mòbil.
hores estimades: 3,0 Mòduls: MP08
Disseny i implementació amb Sequelize de la BD que ha d'incloure: usuaris (amb rol normal i administradors) peticions d'anàlisi i respostes
Veure el document d'especificació de l'API i les specs disponibles en el backlog per plantejar les entitats i relacions.
Documentar amb diagrama de la BD a la Wiki de Github.
hores estimades: 7,0 Mòduls: MP06
Implementar l'endpoint d'autentitació /api/admin/usuaris/login a la API.
Per accedir a l'aplicació d'administració (Desktop) cal introduir:
- URL del servidor
- usuari
- contrasenya
La creació d'usuaris (admins) es pot realitzar directament a la bade de dades
hores estimades: 4,0 Mòduls: MP06 MP07 MP09
La URL del servidor es guardarà a l'arxiu settings.xml perquè aparegui directament quan s'obri de nou l'aplicació.
L'aplicació desktop emmagatzema el token que retorna una autenticació exitosa a l'arxiu settings.xml
Per cada consulta a l'aplicació enviarà el Token al servidor i aquest validarà que és correcte i l'usuari pot fer aquella consulta (o li denegarà). Pel què fa al Token guardat a la part d'aplicació:
- Si no existeix l'arxiu 'settings.xml' es mostra el formulari inicial buit (url server, usuari, contrasenya)
- Si existeix l'arxiu però no té informació de token es mostra el formulari inicial amb la url emplenada
- No es contempla el cas que existeixi l'arxiu amb informació de token sense informació de servidor
Des de l'apicació l'usuari ha de poder fer un '/api/admin/usuaris/logout' que esborra la informació del token de l'arxiu settings.xml i fa una crida al servidor perquè esborri també el token associat a l'usuari de la base de dades. Cal especificar i implementar l'endpoint necessari.
Si fem un logout cal indicar a l'usuari específicament si el logout ha estat correcte (token vàlid) o hi ha hagut error (token invàlid).
Afegir un botó que faci una crida per comprovar el token /api/admin/usuaris/testtoken
hores estimades: 10,0 Mòduls: MP06 MP07 MP09
Inici: 28 de gener de 2026
Final: 4 de febrer de 2026
Hores estimades totals: 20,0
hores estimades: 1,0 Mòduls: MP06 MP07 MP08 MP09
Crear una aplicació mòbil Android amb barra de navegació inferior amb 3 pestanyes amb icones adequades: Ullada, Historial, Ajustos
hores estimades: 2,0 Mòduls: MP08
A la pestanya AJUSTOS es mostra una llista de dispositius Bluetooth aparellats.
Quan seleccionem un device, es guarda aquest device (adreça Mac) a un arxiu settings.xml de l'àrea privada de l'app.
Quan obrim l'app, es carregarà l'adreça Mac del dispositiu configurat, es cercarà el dispositiu Bluetooth i es mostrarà la informació (MAC i nom dispositiu) a la pestanya ULLADA.
hores estimades: 3,0 Mòduls: MP08
Implementar botó per a recepció d'imatge en la pestanya ULLADA, que estarà actiu si el dispositiu Bluetooth ESP32 està connectat.
Si no hi ha cap dispositiu Bluetooth ESP32 sel·leccionat als Ajustos (settings.xml), el botó estarà deshabilitat i es mostrarà una opció per anar a settings.
La imatge s'enregistra a l'àlbum UXIA de la Galeria del dispositiu mòbil.
hores estimades: 3,0 Mòduls: MP08
Disseny i implementació amb Sequelize de la BD que ha d'incloure: usuaris (amb rol normal i administradors) peticions d'anàlisi i respostes
Veure el document d'especificació de l'API i les specs disponibles en el backlog per plantejar les entitats i relacions.
Documentar amb diagrama de la BD a la Wiki de Github.
hores estimades: 7,0 Mòduls: MP06
Implementar l'endpoint d'autentitació /api/admin/usuaris/login a la API.
Per accedir a l'aplicació d'administració (Desktop) cal introduir:
- URL del servidor
- usuari
- contrasenya
La creació d'usuaris (admins) es pot realitzar directament a la bade de dades
hores estimades: 4,0 Mòduls: MP06 MP07 MP09
Inici: 4 de febrer de 2026
Final: 18 de febrer de 2026
Hores estimades totals: 0
Inici: 4 de febrer de 2026
Final: 18 de febrer de 2026
Hores estimades totals: 0
Inici: 18 de febrer de 2026
Final: 25 de febrer de 2026
Hores estimades totals: 0
Inici: 18 de febrer de 2026
Final: 25 de febrer de 2026
Hores estimades totals: 0
L'app mòbil envia la foto rebuda de l'ESP32 al servidor, per poder rebre la informació de descripció.
Si es fa servir un Dialog com el vist a classe caldran 2 botons:
- Cancel·lar : es tanca la connexió amb el BLE device i es tanca el Dialog.
- Enviar : no tanca el Dialog, envia la imatge al server i processa la resposta que rep.
hores estimades: 0,0 Mòduls: MP08 MP09
Implementar l'endpoint /api/analitzar-imatge, que ha de processar la petició.
La resposta que ha de retornar la API ha d'incloure:
- Descripció
- Llista de tags
Cal emmagatzemar tant petició com la resposta del LLM a la BD.
En aquest punt encara no cal realitzar el control d'autorització de la crida amb Authorization: Bearer YOUR_API_KEY_HERE
hores estimades: 0,0 Mòduls: MP06 MP09
Recepció de la descripció de la imatge i tags. Es realitza síntesi te veu TTS (Text to Speech).
Primer locuta la descripció i després els tags associats.
hores estimades: 0,0 Mòduls: MP08
Cada cop que es fa una consulta al server s'enregistra a l'arxiu intern historial.xml, amb la foto, la descripció, data i hora de la consulta i etiquetes que hagi obtingut en la resposta
A la pestanya HISTORIAL visualitzem totes les consultes fetes
hores estimades: 0,0 Mòduls: MP08
Dissenyar i implementar el formulari de registre en el que es demanen un nom d'usuari (nickname), telèfon i adreça de correu electrònic.
hores estimades: 0,0 Mòduls: MP08
Creació de l'endpoint /api/usuaris/registrar per donar d'alta nous usuaris. El procés de registre retorna una API key pels usuaris i s'utilitzarà per totes les crides.
El servidor rep les dades i emmagatzema les dades inicials de l'usuari al sistema.
hores estimades: 0,0 Mòduls: MP06 MP09
Gestionar la taula d'usuaris des de la App Flutter/Desktop, ha de permetre:
- Modificar les dades (també esborrar el token d'autenticació si està definit)
- Afegir usuaris
- Esborrar usuaris
Cal especificar i implementar els enpoints necessaris.
hores estimades: 0,0 Mòduls: MP06 MP07 MP09
Sigui usuari normal o administrador, quedarà registrada l'activitat.
hores estimades: 0,0 Mòduls: MP06
Les peticions de descripció d'imatge s'emmagatzemen a la DB i s'associen a l'usuari.
La resposta del model LLM que conté descripció de la imatge i tags han de quedar relacionades amb la petició que l'ha originat.
hores estimades: 0,0 Mòduls: MP06 MP09
hores estimades: 0,0 Mòduls: MP06 MP09
Amb un CustomPainter fer gràfiques d'estadístiques d'etiquetes, la eina ha de permetre:
- Llistar les etiquetes disponibles en una barra lateral
- Les etiquetes seleccionades tindràn un color diferent cada una que es veurà a les barres i també a la llista de sel·lecció
- Seleccionar/Deseleccionar etiquetes de la barra lateral
- Mostrar una gràfica de barres per comparar gràficament les etiquetes més usades (customPainter)
hores estimades: 0,0 Mòduls: MP06 MP07
Nou tipus de gràfica a la eina d'estadístiques que mostra l'ús de vàries etiquetes a través del temps. Enlloc d'un gràfic de barres cada etiqueta tindrà la seva pròpia linia (i color).
- Cal afegir un formulari per poder filtrar entre dues dates (inici i final)
hores estimades: 0,0 Mòduls: MP06 MP07 MP09
hores estimades: 0,0 Mòduls: MP08
hores estimades: 0,0 Mòduls: MP06 MP08 MP09
Cal especificar i implementar els endpoints necessaris.
hores estimades: 0,0 Mòduls: MP06 MP07 MP09
Visualitzar els logs del servidor des de l'aplicació desktop amb una opció per veure les últimes N linies, per defecte les últimes 50
Cal especificar i implementar l'endpoint necessari.
hores estimades: 0,0 Mòduls: MP06 MP07 MP09
Afegir una eina de conversa amb IA a la eina d'estadístiques Desktop per tal de poder visualitzar gràfiques de manera natural. Ha de permetre afegir/treure etiquetes de la gràfica.
hores estimades: 0,0 Mòduls: MP06 MP07 MP09
hores estimades: 0,0 Mòduls: MP06 MP07 MP08 MP09