arrow_backTornar a la llista de projectes

UXIA: assistent intel·ligent d’exposicions

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

Mòduls Professionals implicats

MP06 Accés a dades
MP07. Desenvolupament d’interfícies.
MP08 Programació multimèdia i dispositius mòbils.
MP09 Programació de serveis i processos.

Descripció

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:

  1. Wearable ESP32: dispositiu de captura d'imatge i enviament bia BLE.
  2. App Android: es rebran les imatges del wearable per enviar-les al servidor.
  3. App Desktop Flutter: administració del servidor.
  4. NodeJS API Server: Actuarà com a proxy per redirigir les crides a la IA i gestionar la persistència de dades a la BD.

La part de servidor emprarà, a més, els serveis del IETI Cloud:

  1. marIA: servei de IA en un Ollama server executat sobre una GPU.
  2. SMS Gateway: permet enviar SMS a dispositius mòbils.

Documents:

  1. Especificació: Servidor NodeJS
  2. Documentació sobre Proxmox (i SMS)

Repositoris de referència

  1. https://github.com/jpala4-ieti/DAM-M0486-Tema3-RA6-PR4.2-Punt-Partida-25-26
  • sprint #1

    Inici: 28 de gener de 2026

    Final: 4 de febrer de 2026

    Hores estimades totals: 27,0

    • MP06 Accés a dades: 4 specs (57,1%), 19,0 hores (70,4%)
    • MP07. Desenvolupament d’interfícies.: 3 specs (42,9%), 12,0 hores (44,4%)
    • MP08 Programació multimèdia i dispositius mòbils.: 4 specs (57,1%), 9,0 hores (33,3%)
    • MP09 Programació de serveis i processos.: 3 specs (42,9%), 12,0 hores (44,4%)
  • 1. [NS] Crear repositoris de GIT independents per als 3 mòduls del projecte (APP/DESKTOP/SERVER). A tots els repos hi ha d'haver 3 branques: dev, pre i pro

    hores estimades: 1,0 Mòduls: MP06 MP07 MP08 MP09

  • 2. APP / base i pestanyes

    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

  • 3. APP / AJUSTOS / BLE Device

    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

  • 4. APP / ULLADA : recepció d'imatge del ESP32

    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

  • 5. SERVER: Disseny de la BD i implementació de models i relacions amb Sequelize

    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

  • 6. DESKTOP+SERVER: Creació app Flutter. i autenticació d'usuari administrador

    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

  • 7. DESKTOP+SERVER Autenticació d'usuari admin amb token

    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: 7,0 Mòduls: MP06 MP07 MP09

  • sprint #2

    Inici: 4 de febrer de 2026

    Final: 18 de febrer de 2026

    Hores estimades totals: 18,0

    • MP08 Programació multimèdia i dispositius mòbils.: 2 specs (40%), 7,0 hores (38,9%)
    • MP09 Programació de serveis i processos.: 3 specs (60%), 15,0 hores (83,3%)
    • MP06 Accés a dades: 2 specs (40%), 11,0 hores (61,1%)
    • MP07. Desenvolupament d’interfícies.: 1 specs (20%), 7,0 hores (38,9%)
  • 8. MOTXILLA #2
  • 9. APP / ULLADA / enviament imatge al server IA

    Guardem només les fotos que validem en el dialog. Guardar i Enviar van de la mà.

    Quan tanquem el diàlog, la foto que hem enviat es veu.

    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 : Sí tanca el Dialog, ens mostra la foto a la pestanya ullada i la envia la imatge al server i processa la resposta que rep.

    - En tancar el Dialog, tanquem la connexió.

     

    GRUPS DE 2: implementar un endpoint de test que retorni sempre una descripció i tags de test. L'app mòbil mostrarà aquest contingut en un Dialog o Toast.

    hores estimades: 4,0 Mòduls: MP08 MP09

  • 10. SERVER: Recepció d'imatge, obtenció de la descripció a través de marIA

    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: 4,0 Mòduls: MP06 MP09

  • 11. APP / TTS

    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.

    La locució ha de ser en català.

    hores estimades: 3,0 Mòduls: MP08

  • 12. DESKTOP+SERVER: Gestió d'usuaris

    Gestionar la taula d'usuaris des de la App Flutter/Desktop, ha de permetre:

    - Llistar usuaris.

    - Afegir usuaris

    - Eliminar usuaris (si es pot)

    Cal especificar i implementar els enpoints necessaris.

    hores estimades: 7,0 Mòduls: MP06 MP07 MP09

  • sprint #22

    Inici: 4 de febrer de 2026

    Final: 18 de febrer de 2026

    Hores estimades totals: 11,0

    • MP06 Accés a dades: 1 specs (33,3%), 7,0 hores (63,6%)
    • MP07. Desenvolupament d’interfícies.: 1 specs (33,3%), 7,0 hores (63,6%)
    • MP09 Programació de serveis i processos.: 2 specs (66,7%), 11,0 hores (100%)
    • MP08 Programació multimèdia i dispositius mòbils.: 1 specs (33,3%), 4,0 hores (36,4%)
  • 7. DESKTOP+SERVER Autenticació d'usuari admin amb token

    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: 7,0 Mòduls: MP06 MP07 MP09

  • 8. MOTXILLA #2
  • 9. APP / ULLADA / enviament imatge al server IA

    Guardem només les fotos que validem en el dialog. Guardar i Enviar van de la mà.

    Quan tanquem el diàlog, la foto que hem enviat es veu.

    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 : Sí tanca el Dialog, ens mostra la foto a la pestanya ullada i la envia la imatge al server i processa la resposta que rep.

    - En tancar el Dialog, tanquem la connexió.

     

    GRUPS DE 2: implementar un endpoint de test que retorni sempre una descripció i tags de test. L'app mòbil mostrarà aquest contingut en un Dialog o Toast.

    hores estimades: 4,0 Mòduls: MP08 MP09

  • sprint #3

    Inici: 18 de febrer de 2026

    Final: 25 de febrer de 2026

    Hores estimades totals: 0

  • sprint #33

    Inici: 18 de febrer de 2026

    Final: 25 de febrer de 2026

    Hores estimades totals: 0

arrow_backTornar a la llista de projectes