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. |
| Bé | 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. |
| Bé | 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ó. |
| Bé | 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. |
| Bé | 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 | Bé |
| 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