Centre: Institut Esteve Terradas i Illa (Cornellà de Llobregat)
Cicle: Desenvolupament d'aplicacions web
Inici: 8 de gener de 2026
Final: 29 de gener de 2026
La xarxa de centres InnovaFP del Departament d'Educació de la Generalitat ens encarrega un "tinder de projectes" via web. Es vol que els centres facin projectes interdisciplinars, entre diferents cicles i centres i amb la particicpació d'empreses. Aquest "tinder de projectes" ha de facilitar la proposta de projectes entre els diversos centres.
Els usuaris de centres educatius pujaran vídeos proposant projectes i buscant "partners" que s'hi apuntin i poder realitzar-los. Quan el visitant cregui que l'interessa un dels projectes proposats, podrà obrir una conversa dins l'aplicació. Els missatges també arribaran via email per assegurar que es notifica al centre que proposa el projecte.
Serà molt important la gestió de les etiquetes de família professional i cicle formatiu als projectes i als perfils d'usuari. Ens ajudarà a la cerca, gestió de l'algorisme de feeds i la gestió de les notificacions.
Hi ha algunes diferències amb el clàssic Tinder, en el concepte de "match". El clàssic seria 2 persones que s'han fet Like mútuament. En canvi, aquí es considerarà:
- MATCH: quan un usuari fa Like i el projecte té etiquetat la família professional / cicle formatiu.
- INTERÈS: quan un usuari fa Like però el projecte no quadra amb la familia professional o cicles del perfil.
Inici: 8 de gener de 2026
Final: 15 de gener de 2026
Hores estimades totals: 27,0
A l’hora de construir el projecte i el disseny, tingueu en compte l’ús d’etiquetes HTML5 per afegir semàntica al contingut (<header>, <main>, <aside>, <section>, <article>, <footer>). D’aquesta manera, els selectors dels vostres estils seran més clars i coherents.
hores estimades: 0,0 Mòduls: MP09
hores estimades: 1,0 Mòduls: MP09
hores estimades: 0,0 Mòduls: MP09
hores estimades: 0,0 Mòduls: MP08
El sistema de Categories/Tags ha de servir inicialment per a etiquetar les Famílies Professionals i Cicles Formatius als vídeos. Per tant, ha de ser un sistema que permeti etiquetes aniuades per fer que les Famílies Professionals continguin Cicles Formatius.
hores estimades: 7,0 Mòduls: MP07
Cal implementar-ho en un script a part que es pot llençar en qualsevol moment des de la línia de comandes per omplir la BD.
Els vídeos han de ser la mínima expressió: un text de centre i projecte per provar la funcionalitat discover. Els videos son sencills i de 5 segons. Els videos estan a la carpeta seeder/ i al executar l'script es copiaran ala carpeta uploads/.
La llista de famílies professionals i cicles formatius la podeu trobar aquí (taula del 2019, si trobeu de mes actualitzada, comuniqueu-ho al xat de discord).
hores estimades: 3,0 Mòduls: MP07
Si es fa login correctament redirecciona a discover.php
hores estimades: 3,0 Mòduls: MP07
hores estimades: 0,0 Mòduls: MP07 MP08
Qualsevol acció/formulari sempre té feedback.
hores estimades: 3,0 Mòduls: MP09
Apareixen projectes (vídeos) d'altres centres/empreses d'un en un.
Apareixen botons "Nope" i "Like".
Si es respon que sí, notificació visual i acció "Anar al xat".
No es pot recarregar la pàgina en cap cas.
Ús d'AJAX per càrrega del següent vídeo de projecte.
Requeriment dinàmic: al polsar "Like" o "Nope", el contenidor del projecte actual (la "card") ha d'eliminar-se del DOM amb una animació. El nou contenidor i els contiguts HTML s'han de crear dinàmicament a partir de les dades rebudes i insertar-les al contenidor principal.
Per millorar la UX (User eXperience), cal fer una precàrrega del següent projecte (o n projectes mes) per tal de que l'animació surti fluïda.
Barra fixed inferior amb enllaços i icones:
- Vista Perfil
- Vista Converses
- Detalls projecte: sobre la mateixa pantalla Descobrir mostra el text de descripció del projecte i les etiquetes (no és link). S'ha de poder amagar de nou amb un click.
hores estimades: 8,0 Mòduls: MP06 MP07 MP09
hores estimades: 2,0 Mòduls: MP08
Inici: 15 de gener de 2026
Final: 22 de gener de 2026
Hores estimades totals: 30,0
hores estimades: 3,0 Mòduls: MP06 MP07 MP09
Els primers vídeos que es mostraran seran els dels projectes que tinguin l'etiqueta dels nostres cicles o famílies professionals. Si hi ha coincidència, sortirà una icona "possible match" en una cantonada indicant-ho.
Quan s'acaben els vídeos, es notifica l'usuari adequadament "No hi ha més videos per mostrar". També s'ofereix a l'usuari tornar a començar la visualització dels vídeos.
Quan visualitzem per 2n cop un vídeo al que ja hem fet "M'agrada", ja no surten els botons normals i surt un sol de "Següent", indicant també (incona i/o text) que ja hi hem fet "M'agrada".
Els botons han de ser "M'agrada" i "No m'interessa", en català.
hores estimades: 3,0 Mòduls: MP07
- Nom i cognoms usuari
- Nom entitat (centre/empresa)
- Població
- Email
- Telèfon
- Etiquetes (families professionals i cicles, i +): Botó "+ Afegir" (no funcional).
Els elements de llista de families i cicles tenen una "X" per eliminar l'element.
Llista de projectes propis. Es mostra el títol (amb link a lal Vista Projecte) i la imatge destacada.
Botó "+ Nou projecte".
Enllaços amb icones a:
- Vista Converses
- Vista Descobrir
hores estimades: 4,0 Mòduls: MP06 MP07 MP09
Quan es vol afegir una etiqueta (families professionals o cicles formatius) apareixerà una finestra modal amb una casella de cerca.
Quan s'hagin afegit al menys 3 caràcters es realitzarà una cerca via AJAX i es mostraran els resultats de la cerca a sota de la casella de cerca.
Quan sel·leccionem alguna de les opcions es tancarà la finestra modal i s'aplicarà la selecció al menú que l'hagi originat. Les etiquetes aplicades tenen una X per eliminar-la.
hores estimades: 4,0 Mòduls: MP06 MP07
Ha de tenir:
- Títol.
- Descripció.
- Imatge destacada: imatge descriptiva o logo del projecte. Per defecte apareixerà la imatge del perfil d'usuari.
- Etiquetes d'organitzador del projecte: famílies professionals i cicles formatius (poden ser varis). Per defecte apareixeran etiquetades les opcions que hi hagi al perfil de l'usuari.
- Etiquetes de partners cercats: famílies professionals i cicles formatius (poden ser varis).
- Pujada de vídeo: max 200 MB.
Les etiquetes es podran afegir i eliminar amb el mateix mecanisme de la Vista Perfil.
hores estimades: 3,0 Mòduls: MP06 MP07
Una tasca del CRON repassarà els vídeos carregats i que no estiguin normalitzats a qualitat web per a transformar-los. Haurà de converrtir-los a una qualitat reduïda per tal que ocupin menys de 20MB.
Caldrà fer un check de que el vídeo resultant s'ha convertit correctament.
Un cop convertit i comprovat, l'arxiu original s'esborrarà.
El CRON s'executa cada 10 minuts.
hores estimades: 3,0 Mòduls: MP07 MP08
/usr/share/apache2/error
/etc/apache2/conf-available/localized-error-pages.conf
hores estimades: 3,0 Mòduls: MP08
Quan cliquem sobre un projecte a la Vista Perfil se'ns carregarà les dades d'aquest sobre el mateix formulari de creació, i es podran editar totes les dades.
El projecte es carrega amb el paràmetre GET project_id.
El formulari ha de donar un error si algú intenta editar un projecte del que no és propietari.
hores estimades: 3,0 Mòduls: MP06 MP07
Alta de nous usuaris amb enviament de correu de verificació.
L'usuari visita register.php i omple el formulari amb les seves dades, a l'enviar el fomulari rebrà un email amb l'enllaç de validació.
L'enllaç de validació té caducitat (48h). L'enllaç és únic, si dos usuaris es registren tindran enllaços de validació diferents. L'enllaç de validació apunta a register.php?validate=XXXX, on XXXX es un hash alfanúmeric.
Un usuari romandrà en estat inactiu fins que no validi la seva compte. Un usuari inactiu no podrà fer login. Si ho intenta rebrà un misatge de que la seva compte està pendent de validació.
Arxiu: register.php
hores estimades: 4,0 Mòduls: MP07
Inici: 22 de gener de 2026
Final: 29 de gener de 2026
Hores estimades totals: 30,0
hores estimades: 3,0 Mòduls: MP06 MP07 MP08 MP09
En català, és pel departament d'educació.
Entre 30" i 1'
Cal publicar-ho a YouTube.
hores estimades: 3,0 Mòduls: MP06 MP07 MP08 MP09
Al login posem opció "Contrasenya oblidada?". Et canvia el formulari amb només el camp d'email.
L'usuari introdueix correu i se li envia un codi de 6 dígits via email.
El codi caduca als 15 minuts.
L'objectiu és facilitar el login en els dispositius mòbils, que és des d'on més s'utilitzarà l'aplicació.
hores estimades: 3,0 Mòduls: MP07 MP09
Ha de mostrar les converses iniciades, tant si ha estat perquè nosaltres hem fet like com si algú ens ha fet un like a nosaltres.
Ordenació per missatge mes recent.
Ha de mostrar:
hores estimades: 3,0 Mòduls: MP06 MP07 MP09
Un chat moderno no refresca la pantalla para mostrar mensajes nuevos.
Requerimiento dinámico: * Al enviar un mensaje, JS debe crear al vuelo la "burbuja" de chat, insertarla al final del contenedor y hacer scroll automático.
Al recibir mensajes (vía polling), se deben generar tantos elementos <div> como mensajes nuevos haya, diferenciando si son del emisor o receptor.
hores estimades: 6,0 Mòduls: MP06 MP07 MP09
Per evitar que la gent quedi desinformada, s'enviaran notificacions per email:
- MATCH / INTERES: quan es faci un like amb match, s'enviarà un email al propietari i al que contacta, explicant la coincidència dels dos perfils i els detalls del projecte que ha fet "match".
- Digest xat: al final del dia s'enviarà un resum (digest) de la conversa mantinguda al xat, a tots els usuaris que hagin interactuat.
Els emails han de ser en HTML amb estils.
Els emails s'envien a les 22h de cada dia (si és que hi ha continguts).
hores estimades: 4,0 Mòduls: MP07 MP09
Entrada de login al panell d'administració /admin/login.php
Llistat de menús d'administració (dashboard): /admin/index.php
Creeu usuari "profe" per auditar.
hores estimades: 1,0 Mòduls: MP07 MP09
Panell per moderar projectes.
Es llisten els projectes amb possibilitat de fer una preview del vídeo des del llistat. No es carreguen tots els vídeos de cop, només si el cliquem.
L'admin pot eliminar i recuperar projectes inapropiats.
Arxiu: admin/projects.php
hores estimades: 4,0 Mòduls: MP07 MP09
L'admin o l'usuari poden eliminar projectes, però no s'esborren realment de la base de dades, sinó que queden ocults pels usuaris per a posterior anàlisi.
El projecte no es mostrarà al "Descobrir" de cap usuari, i el propietari tampoc el podrà veure a la seva llista de projectes.
Només l'admin el podrà veure i marcat visualment com a "eliminat".
hores estimades: 3,0 Mòduls: MP07
hores estimades: 0,0 Mòduls: MP07
hores estimades: 0,0 Mòduls: MP08
hores estimades: 0,0 Mòduls: MP07
hores estimades: 0,0 Mòduls: MP06 MP07
hores estimades: 0,0 Mòduls:
hores estimades: 0,0 Mòduls:
hores estimades: 0,0 Mòduls:
hores estimades: 0,0 Mòduls:
hores estimades: 0,0 Mòduls:
hores estimades: 0,0 Mòduls:
hores estimades: 0,0 Mòduls:
hores estimades: 0,0 Mòduls:
hores estimades: 0,0 Mòduls:
hores estimades: 0,0 Mòduls:
hores estimades: 0,0 Mòduls:
hores estimades: 0,0 Mòduls:
hores estimades: 0,0 Mòduls:
hores estimades: 0,0 Mòduls:
Las alertas de "Match" o errores de sistema no deben ser simples alert().
Requerimiento dinámico: El alumno debe crear una "fábrica de notificaciones". Cuando ocurra un evento, JS creará un elemento flotante en la esquina de la pantalla. Tras 5 segundos, el elemento debe destruirse automáticamente (element.remove()) para no saturar el DOM.
hores estimades: 0,0 Mòduls: MP06 MP09