Salta el contingut

Rúbrica PR507409 — Aplicació JavaScript amb Metabase incrustat sobre SQL Server

Aquesta rúbrica s'aplica a la pràctica PR507409 — Aplicació web amb gràfics de Metabase incrustats sobre SQL Server del Bloc 7 del mòdul M5074 Sistemes de Big Data.

Nota final de la pràctica = suma ponderada dels quatre criteris (total 100 punts → escala 0-10).


Criteris d'avaluació

Criteri 1 — SQL Server i model de dades (20%)

Avalua el desplegament de SQL Server amb Docker i la qualitat del model relacional carregat.

Nivell Puntuació Descriptor
Excel·lent 18-20 pts Contenidor de SQL Server operatiu amb docker-compose.yml reproduïble (healthcheck inclòs). Model amb dues o més taules relacionades correctament (claus foranes), amb dades reals o realistes en volum suficient (≥500 files) i tipus de dades ben triats.
14-17 pts SQL Server operatiu i taules relacionades presents, però amb algun detall millorable (healthcheck absent, volum de dades just al límit, algun tipus de dada genèric).
Suficient 10-13 pts SQL Server operatiu però amb un model de dades mínim (una sola taula, o relacions no formalitzades amb claus foranes).
Insuficient 0-9 pts SQL Server no arrenca, o les dades no s'han carregat, o el contenidor no és reproduïble a partir del docker-compose.yml entregat.

Criteri 2 — Dashboard de Metabase (20%)

Avalua la connexió de Metabase a SQL Server i la qualitat del dashboard creat.

Nivell Puntuació Descriptor
Excel·lent 18-20 pts Metabase connectat correctament a SQL Server. Dashboard amb dues o més visualitzacions rellevants que responen a objectius de negoci clars, amb títols descriptius i tipus de gràfic adequat a les dades.
14-17 pts Connexió i dashboard funcionals, amb visualitzacions correctes però amb algun aspecte de disseny o rellevància millorable.
Suficient 10-13 pts Connexió funcional però amb una sola visualització, o visualitzacions poc alineades amb un objectiu de negoci identificable.
Insuficient 0-9 pts Metabase no es connecta a SQL Server, o el dashboard no existeix o no és funcional.

Criteri 3 — Incrustació signada (Signed Embedding) i seguretat (35%)

Avalua la configuració correcta de la incrustació signada i, especialment, que la clau secreta es gestioni de manera segura.

Nivell Puntuació Descriptor
Excel·lent 32-35 pts Incrustació signada activada i configurada correctament (filtres blocats/editables ben definits). El backend genera el JWT amb exp i el signa amb la clau secreta llegida d'una variable d'entorn; la clau no apareix en cap fitxer del frontend ni del repositori entregat (.env exclòs via .gitignore, .env.example sense valor real). El dashboard s'incrusta i es visualitza correctament a l'aplicació.
24-31 pts Incrustació signada funcional i clau gestionada correctament pel backend, però amb algun detall millorable (per exemple, exp massa llarg, absència de .env.example, o algun filtre blocat mal configurat).
Suficient 15-23 pts La incrustació funciona però amb una implementació insegura o incompleta: per exemple, el token es genera correctament però sense caducitat, o el flux backend/frontend funciona només parcialment.
Insuficient 0-14 pts La incrustació no funciona, s'utilitza incrustació pública/estàtica en lloc de signada sense justificar-ho, o la clau secreta apareix exposada al codi del frontend o en un fitxer pujat al repositori (aquest darrer cas es qualifica sempre amb 0 punts en aquest criteri, independentment de la resta).

Exposició de la clau secreta

Si la clau secreta d'incrustació apareix en qualsevol fitxer JavaScript servit al navegador, en un commit del repositori entregat, o en captures de pantalla pujades, el Criteri 3 es qualifica amb 0 punts, amb independència de si la resta de la implementació és correcta. És l'error de seguretat central que aquesta pràctica vol prevenir.


Criteri 4 — Aplicació web funcional i reflexió (25%)

Avalua que l'aplicació JavaScript (backend + frontend) funcioni de punt a punt i la qualitat de les respostes de reflexió.

Nivell Puntuació Descriptor
Excel·lent 23-25 pts L'aplicació arrenca sense errors seguint només el README/instruccions entregades; el gràfic de Metabase es veu correctament incrustat sense elements de navegació de Metabase. Codi net i comentat als punts clau (signatura del JWT, gestió d'errors bàsica al fetch). Les preguntes de reflexió estan respostes amb profunditat i demostren comprensió real del flux de seguretat JWT.
18-22 pts L'aplicació funciona amb petits ajustos no documentats. La majoria de preguntes de reflexió estan ben contestades, amb alguna resposta superficial.
Suficient 13-17 pts L'aplicació requereix intervenció significativa per funcionar (dependències no llistades, configuració incompleta). Reflexió bàsica o incompleta.
Insuficient 0-12 pts L'aplicació no arrenca o no mostra el dashboard incrustat. Preguntes de reflexió no contestades o amb respostes incorrectes/genèriques.

Taula de conversió de puntuació a nota

Puntuació (sobre 100) Nota (sobre 10) Qualificació
90 - 100 9,0 - 10 Excel·lent
80 - 89 8,0 - 8,9 Notable alt
70 - 79 7,0 - 7,9 Notable baix
60 - 69 6,0 - 6,9
50 - 59 5,0 - 5,9 Suficient
0 - 49 0 - 4,9 Insuficient (no superat)

La nota mínima per superar la pràctica és 5,0 (50 punts sobre 100).


Criteris de no presentació i plagi

Causes d'avaluació com a no presentat (NP)

Les situacions següents comporten la qualificació de No Presentat (NP) independentment del contingut de la pràctica:

  • No lliurar el codi complet (.zip) dins el termini establert al Campus Virtual sense causa justificada prèvia.
  • El projecte entregat no conté cap dels tres components obligatoris (SQL Server, Metabase, aplicació JavaScript).

Política de plagi i ús d'IA generativa

La pràctica avalua la capacitat de desplegar i connectar serveis, i de comprendre el flux de seguretat de la incrustació signada. Per tant:

  • Presentar un projecte elaborat per una altra persona, o reutilitzat sense modificacions substancials d'un treball previ, és plagi i comporta una nota de 0 i l'obertura d'un expedient acadèmic.
  • Usar IA generativa (ChatGPT, Claude, Gemini, etc.) per generar automàticament tot el codi sense comprendre'n el funcionament és equivalent al plagi: l'alumne ha de ser capaç d'explicar cada part del flux backend/frontend/JWT en una defensa oral.
  • L'ús d'IA com a eina de suport (aclarir un missatge d'error concret, la sintaxi d'una crida) és permès i no cal declarar-lo.
  • El professorat pot convocar l'alumne a una defensa oral addicional de qualsevol pràctica entregada per verificar-ne la comprensió.

Pes de la pràctica en la qualificació final del mòdul

Element Pes
PR507409 — Metabase incrustat amb JavaScript (SQL Server) 6% de la nota final del mòdul M5074
PR507407 — Dashboard Power BI 9% de la nota final del mòdul M5074
Activitats del Bloc 7 (AC5074/07/01, 07/02, 07/03, 07/05 i 07/06) Incloses a la nota de participació

Repartiment del pes del Bloc 7

El Bloc 7 manté un pes global del 15% de la nota final del mòdul, repartit entre PR507407 (9%) i aquesta pràctica, PR507409 (6%). Vegeu la Rúbrica PR507407 per als criteris de la primera pràctica.

Consulta la programació del mòdul per al pes complet de cada bloc i instrument d'avaluació.


Rúbrica PR507409 | Mòdul M5074 Sistemes de Big Data | Institut Sa Palomera (Blanes) | Curs CEIABD 2026-2027