Salta el contingut

Rúbrica d'Avaluació: Pràctica Matrix/Synapse amb Docker

Informació de la Pràctica

  • Títol: Servidor de Missatgeria Matrix amb Docker
  • Tipus: Pràctica individual
  • Durada estimada: 4-6 hores
  • Qualificació màxima: 10 punts

Criteris d'Avaluació

1. Personalització del Projecte (1,5 punts)

Criteri Excel·lent (1,5) Notable (1,0) Acceptable (0,5) Insuficient (0)
Nom i cognom en configuracions Totes les aparicions de NOMCOGNOM substituïdes correctament (docker-compose.yml, homeserver.yaml, noms contenidors, server_name, admin email, noms d'usuaris) 1-2 aparicions sense substituir 3-4 aparicions sense substituir Més de 4 aparicions sense substituir o còpia literal
Server name i identificadors Server name, admin email, database names i usernames personalitzats correctament amb nom real Només 2-3 elements personalitzats Només 1 element personalitzat Cap personalització
Usuaris creats Mínim 3 usuaris amb noms que inclouen el cognom de l'estudiant (joan.garcia, maria.garcia, admin.garcia) 2 usuaris personalitzats correctament 1 usuari personalitzat Usuaris genèrics (user1, test, etc.)
Sala de xat personalitzada Nom de sala inclou nom complet de l'estudiant i tema relacionat ("Projecte Joan García", "Equip García") Nom de sala amb només cognom Nom de sala genèric amb cognom Sala sense personalització

Penalitzacions: - -0,5 punts si detecta còpia literal de l'exemple - -1,0 punts si no hi ha cap personalització real - -0,3 punts per cada usuari genèric sense personalitzar


2. Configuració de Synapse (2,0 punts)

Criteri Excel·lent (2,0) Notable (1,5) Acceptable (1,0) Insuficient (0-0,5)
Fitxer homeserver.yaml YAML ben format, server_name correcte, database PostgreSQL configurat, registration habilitada, públic registration deshabilitada després de crear usuaris Configuració correcta amb 1-2 paràmetres per defecte Configuració funcional però diversos paràmetres no optimitzats YAML amb errors de sintaxi o configuració incorrecta
Base de dades PostgreSQL PostgreSQL configurat correctament amb credencials personalitzades, base de dades inicialitzada, connexió funcional PostgreSQL funcional amb credencials per defecte canviades PostgreSQL funcional amb credencials per defecte PostgreSQL no configurat o connexió fallida
Ports i xarxa Ports 8008 (HTTP) i 8448 (Federation) exposats, xarxa bridge definida, networking entre contenidors funcional Ports correctes, xarxa per defecte Només port 8008 exposat Ports mal configurats
Usuaris administradors Almenys 1 usuari admin creat amb register_new_matrix_user, credencials segures, evidenciat a captures Admin creat amb credencials acceptables Admin creat amb credencials febles No hi ha usuari admin o no pot accedir

3. Docker Compose (1,5 punts)

Criteri Excel·lent (1,5) Notable (1,0) Acceptable (0,5) Insuficient (0)
Estructura del fitxer docker-compose.yml ben estructurat, versionat, noms de serveis personalitzats, volums i xarxa definits Estructura correcta amb petits errors de format Estructura bàsica funcional Errors de sintaxi YAML o estructura incorrecta
Volums Tots els volums necessaris muntats correctament (synapse data, PostgreSQL data, logs), permisos adequats 1 volum mal configurat Diversos volums mal configurats Volums crítics no muntats, dades es perden en reinicis
Variables d'entorn Variables d'entorn ben definides (SYNAPSE_SERVER_NAME, SYNAPSE_REPORT_STATS, POSTGRES_PASSWORD personalitzada) Variables principals definides Només algunes variables Variables crítiques absents o incorrectes
Dependències depends_on utilitzat correctament perquè Synapse esperi PostgreSQL, healthchecks opcionals implementats depends_on present sense healthchecks Dependències no ben definides Synapse falla perquè PostgreSQL no està llest

4. Encriptació End-to-End (E2EE) (2,0 punts)

Criteri Excel·lent (2,0) Notable (1,5) Acceptable (1,0) Insuficient (0-0,5)
Activació d'encriptació Sala creada amb E2EE activada correctament, icona de cadenat visible a Element, configuració verificada Sala encriptada però amb configuració per defecte E2EE activada però amb warnings E2EE no activada o errors
Verificació de dispositius Mínim 2 sessions de diferents usuaris verificades mitjançant emojis o números, captures de pantalla del procés de verificació 1 sessió verificada correctament Intent de verificació documentat però incomplet Cap verificació realitzada
Comprensió del concepte Explicació clara de per què és important E2EE, diferència entre transport encryption i E2EE, conceptes d'Olm/Megolm Explicació bàsica d'E2EE Explicació superficial o genèrica No hi ha explicació o incorrecta
Proves funcionals Missatges encriptats enviats i rebuts correctament entre usuaris, historial encriptat persistent després de reinicis Missatges encriptats funcionals Missatges s'envien però amb problemes menors Encriptació no funciona

5. Client Element (1,0 punts)

Criteri Excel·lent (1,0) Notable (0,7) Acceptable (0,4) Insuficient (0-0,2)
Accés via web Element accessible via contenidor Docker personalitzat o versió web oficial, configuració de homeserver correcta Element accessible amb configuració bàsica Element accessible però amb problemes de connexió Element no accessible
Funcionalitats utilitzades Sala creada, missatges enviats, fitxers compartits, reaccions utilitzades, perfils d'usuari personalitzats Sala i missatges funcionals, 1-2 funcions addicionals Només sala i missatges bàsics Funcionalitat mínima o errors
Múltiples clients Evidència d'ús de mínim 2 clients diferents (web, desktop, mòbil) o múltiples sessions 2 sessions del mateix client Només 1 sessió Cap evidència de múltiples sessions

6. Captures de Pantalla (1,5 punts)

Criteri Excel·lent (1,5) Notable (1,0) Acceptable (0,5) Insuficient (0)
Completes Totes les 6 captures obligatòries presents (docker ps, sala Element amb E2EE, verificació dispositius, llistat usuaris SQL, logs Synapse, panell configuració) 5 captures presents 4 captures presents Menys de 4 captures
Qualitat Captures nítides, informació llegible, nom de l'estudiant visible on correspon (server name, usuaris, sala) Captures acceptables amb alguna informació poc clara Captures borroses però reconeixibles Captures il·legibles
Contingut rellevant Cada captura mostra exactament el que es demana amb evidència clara (icona cadenat, emojis verificació, output SQL) 1-2 captures mostren informació parcial Diverses captures amb contingut incomplet Captures no corresponen al demanat
Evidència de personalització Nom de l'estudiant clarament visible a múltiples llocs (server name, usuaris, sala, database name) Nom visible en la majoria d'elements Nom visible només en alguns llocs Nom de l'estudiant no visible

7. Respostes a Qüestions (1,0 punts)

Criteri Excel·lent (1,0) Notable (0,7) Acceptable (0,4) Insuficient (0-0,2)
Qüestió 1: Matrix vs XMPP Comparativa completa amb mínim 4 diferències tècniques ben argumentades (protocols, E2EE, federació, format dades) 3 diferències correctes 2 diferències correctes 1 o cap diferència, o incorrectes
Qüestió 2: Federació Explicació detallada del concepte de federació, com funciona entre homeservers, avantatges/desavantatges, exemple pràctic Explicació correcta del concepte bàsic Explicació superficial Explicació incorrecta o absent
Qüestió 3: Seguretat E2EE Explicació tècnica d'Olm/Megolm, diferència amb TLS, gestió de claus, verificació d'identitat, limitacions Explicació correcta dels conceptes principals Explicació bàsica d'E2EE Explicació incorrecta o genèrica

Distribució: 0,33 punts per qüestió, fins a 1,0 total


8. Documentació i Presentació (1,0 punts)

Criteri Excel·lent (1,0) Notable (0,7) Acceptable (0,4) Insuficient (0-0,2)
Estructura del PDF Document ben organitzat amb totes les seccions requerides, portada professional, índex, seccions numerades Document organitzat, totes seccions presents Document amb seccions en desordre o alguna absent Document desorganitzat o seccions importants absents
Fitxers de configuració docker-compose.yml i homeserver.yaml inclosos complets al PDF amb format llegible (blocs de codi) Fitxers inclosos amb format acceptable Fitxers inclosos però poc llegibles Fitxers no inclosos
Comandes utilitzades Llistat complet de comandes Docker i SQL utilitzades amb explicació del que fan Comandes llistades amb explicació bàsica Comandes llistades sense explicació Comandes no documentades
Reflexió final Reflexió personal de 200-300 paraules, honesta sobre dificultats (E2EE, PostgreSQL, networking), aprenentatges identificats, millores proposades Reflexió de longitud adequada però genèrica Reflexió massa breu (<150 paraules) o superficial Reflexió absent o copiada
Ortografia i format Document sense errors ortogràfics ni gramaticals significatius, format professional i coherent 1-3 errors menors, format acceptable Diversos errors, format inconsistent Molts errors, document descuidat

Exercicis Opcionals (Fins a +1,0 punt extra)

Exercici Puntuació
Exercici 1: Pont (bridge) amb Telegram o WhatsApp configurat +0,4 punts
Exercici 2: Jitsi Meet integrat per videoconferències +0,3 punts
Exercici 3: Reverse proxy amb Nginx i certificat SSL (auto-signat acceptable) +0,3 punts

Nota: La puntuació extra NO pot superar 10 punts en total


Penalitzacions Específiques

Infracció Penalització
Còpia detectada (mateix server name, usuaris idèntics, mateixos GUIDs de sala) -10 (qualificació 0)
Ús de NOMCOGNOM literal sense substituir pel nom real -2,0 punts
Contrasenyes per defecte sense canviar (postgres, synapse) -1,0 punts
E2EE no activada a la sala principal -1,5 punts
Cap verificació de dispositius realitzada -1,0 punts
Contenidors no s'inicien (docker-compose up -d falla) -3,0 punts
PostgreSQL no funcional (Synapse usa SQLite per defecte) -1,5 punts
Captura de pantalla obligatòria absent -0,25 punts per captura
Entrega fora de termini -0,5 punts per dia (màxim 3 dies)
Format diferent de PDF -0,5 punts
Usuaris no personalitzats (user1, test, admin genèrics) -0,3 punts per usuari

Criteri de Superació

  • Aprovat (5,0): Mínim 5,0 punts
  • Notable (7,0): Mínim 7,0 punts
  • Excel·lent (9,0): Mínim 9,0 punts

Requisits mínims per aprovar: - Contenidors Synapse i PostgreSQL funcionals - Mínim 2 usuaris creats amb noms personalitzats - 1 sala de xat funcional (amb o sense E2EE) - Element accessible i connectat al homeserver - Captures de pantalla mínimes (4 de 6) - Document PDF lliurat amb configuracions


Observacions Finals

  1. Originalitat: Es comprovarà que el treball és individual mitjançant:
  2. Verificació de server_name únic
  3. Comparació de noms d'usuaris entre estudiants
  4. Anàlisi de GUIDs de sales (han de ser diferents)
  5. Comparació de reflexions personals

  6. Funcionalitat: El criteri més important és que el sistema funcioni correctament. Una configuració senzilla però operativa obté més puntuació que una molt elaborada però no funcional.

  7. Encriptació: E2EE és un concepte clau de Matrix. Entendre'l i implementar-lo correctament és essencial per obtenir una bona qualificació.

  8. Federació: Encara que no es demana connectar amb altres homeservers públics, és important comprendre el concepte de federació i com Matrix es diferencia d'altres sistemes centralitzats.

  9. Seguretat: Es valora positivament canviar totes les contrasenyes per defecte, utilitzar credencials fortes i documentar consideracions de seguretat.


Rúbrica Simplificada (Resum)

Aspecte Punts Pes
Personalització correcta amb nom/cognom 1,5 15%
Configuració Synapse funcional 2,0 20%
Docker Compose correcte 1,5 15%
Encriptació E2EE implementada i verificada 2,0 20%
Client Element funcional 1,0 10%
Captures de pantalla completes 1,5 15%
Respostes a qüestions 1,0 10%
Documentació i presentació 1,0 10%
TOTAL 10,0 100%
Exercicis opcionals (extra) +1,0 +10%

Consells per Aconseguir Excel·lent

  1. Prova abans de lliurar: Assegura't que pots connectar-te amb múltiples usuaris des de diferents clients
  2. Verifica E2EE: Comprova que la icona de cadenat apareix i que la verificació d'emojis funciona
  3. Personalitza tot: Cada element configurable (server name, usuaris, sala, database) ha de tenir el teu nom
  4. Documenta amb detall: Explica cada pas, especialment els problemes trobats i com els vas resoldre
  5. Entén els conceptes: No et limitis a copiar comandes, investiga què fan i per què són necessàries
  6. Prova la persistència: Reinicia els contenidors i comprova que les dades (usuaris, missatges) es mantenen
  7. Consulta logs: Si alguna cosa falla, docker logs synapse-NOMCOGNOM et donarà pistes valuoses
  8. Reflexió honesta: Escriu sobre les teves dificultats reals, no sobre el que creus que volem llegir

Data de creació: Gener 2025 Versió: 1.0 Autor: Curs M0375 - Serveis de Xarxa i Internet