Projecte 8 — BlanesPlay (cas integrador final)
| Camp | Valor |
|---|---|
| Empresa | BlanesPlay (startup de video streaming sobre cultura i turisme de la Costa Brava) |
| Sector | Mitjans / streaming de vídeo |
| Nivell | Sènior — des de zero: el teu primer stack de dades complet |
| Durada estimada | 10-12 hores (projecte de síntesi) |
| Blocs relacionats | Tots els blocs del mòdul |
Context
BlanesPlay és una startup acabada de fundar que vol construir una plataforma de streaming de vídeo especialitzada en continguts culturals i turístics de la Costa Brava: documentals, retransmissions de festes locals (com la Festa de Santa Anna de Blanes), rutes de senderisme filmades amb dron, entrevistes a pescadors i artesans de la zona. Acaben de tancar una ronda de finançament i encara no tenen absolutament res construït: ni bases de dades, ni pipelines, ni dashboards. T'han contractat com a primera persona de l'equip de dades.
A diferència dels 7 projectes anteriors —on ja existia alguna infraestructura de dades que calia entendre, netejar o ampliar—, aquí la decisió és teva des del primer dia. Aquest és el cas integrador que tanca el mòdul: hauràs de prendre, i justificar, cadascuna de les decisions d'arquitectura que has après a analitzar (no necessàriament a prendre tu mateix/a) als 7 casos anteriors.
Els fluxos de dades que ha de suportar BlanesPlay
- Catàleg de continguts: metadades de cada vídeo (títol, durada, categoria, data de publicació, drets d'autor).
- Events de reproducció: cada vegada que algú reprodueix, pausa, abandona o acaba un vídeo (potencialment milions d'events diaris si l'app creix).
- Subscripcions i pagaments: dades de facturació dels usuaris de pagament.
- Recomanacions: un futur model de Machine Learning que suggereixi vídeos segons l'historial de visualització.
Datasets
Per no partir de zero absolut, se't donen dos fitxers de context (una mostra petita, no el volum de producció):
| Fitxer | Contingut | Files |
|---|---|---|
catalog_videos.csv |
Catàleg de continguts: id_video, titol, categoria, durada_minuts, data_publicacio |
60 |
events_reproduccio_mostra.jsonl |
Mostra d'events de reproducció (reproduccio_iniciada, pausa, reproduccio_abandonada, reproduccio_completada) |
2.000 |
Dia 1 — Disseny de l'emmagatzematge base
Tasca: per a cadascun dels 4 fluxos de dades anteriors, decideix si encaixa millor en una base de dades relacional (Bloc 2), en MongoDB (Bloc 3), o directament com a events al Data Lake (Bloc 4), i justifica cada tria en 2-3 línies. Pensa especialment en el catàleg de continguts (que té un esquema clar i estable) versus els events de reproducció (d'alt volum i esquema més senzill però massiu).
Dia 2 — Arquitectura completa: del núvol a les zones del lake
Tasca: dissenya un diagrama complet (Mermaid) de l'arquitectura de dades de BlanesPlay, que inclogui:
- El proveïdor cloud triat (AWS o Azure, Bloc 4) i els serveis concrets d'emmagatzematge i còmput.
- Les zones del Data Lake (raw/silver/gold, Bloc 4) amb quin flux de dades passa per cadascuna.
- El format de taula obert triat (Delta Lake, Iceberg o Hudi, Bloc 4) i una justificació d'una frase.
- On viu el Data Warehouse (si en teniu un, o si opteu per un Lakehouse pur) per a les mètriques de negoci.
Dia 3 — Pipeline ETL i qualitat de dades
Tasca: dissenya el pipeline (Airflow, Bloc 5) que porta els events de reproducció des de la zona raw fins a una taula agregada de "minuts vistos per contingut i per dia". Especifica com a mínim 4 regles de qualitat de dades (Bloc 5) que aquest pipeline hauria de validar abans de carregar les dades a la zona gold (per exemple: cap event de reproducció amb id_video inexistent al catàleg, cap durada de visualització negativa...).
Dia 4 — Modelatge dimensional per a l'equip de negoci
Tasca: l'equip de negoci vol un Data Warehouse (Bloc 4) per respondre preguntes com "quin és el contingut més vist per comarca d'origen dels usuaris aquest mes?". Dissenya l'esquema estrella corresponent: identifica la taula de fets, la seva granularitat, i com a mínim 4 taules de dimensions.
Dia 5 — Visualització, biaix i tancament
Tasca (visualització): proposa 3 KPI concrets per al dashboard executiu mensual de BlanesPlay (Bloc 7) i quin tipus de gràfic (línia, barres, mapa...) faries servir per a cadascun, justificant la tria.
Tasca (ètica de dades): BlanesPlay vol llançar un sistema de recomanació de contingut. Explica un risc concret de biaix que podria aparèixer (per exemple, si el sistema recomana sistemàticament més contingut en castellà que en català perquè hi ha més usuaris que han consumit contingut en castellà fins ara, invisibilitzant el contingut en català) i com el detectaries abans de llançar el model (Bloc 8).
Tasca (retrospectiva): en 8-10 línies, redacta una retrospectiva com si fossis tu qui presenta l'arquitectura completa a la resta de l'equip fundador de BlanesPlay: quines han estat les decisions més difícils, quins compromisos (trade-offs) has hagut d'acceptar, i què deixaries preparat com a "següent pas" per al mes vinent.
Lliurament
- Justificació d'emmagatzematge per als 4 fluxos de dades (Dia 1).
- Diagrama complet d'arquitectura (Dia 2).
- Disseny del pipeline ETL i les seves regles de qualitat (Dia 3).
- Esquema estrella del Data Warehouse (Dia 4).
- KPIs de visualització, anàlisi de risc de biaix i retrospectiva final (Dia 5).
Aquest projecte tanca el mòdul
No hi ha una solució única "correcta": el que s'avalua és que cada decisió d'arquitectura estigui justificada amb els criteris apresos al llarg del mòdul (volum, cost, latència, tipus de dada, requisits de qualitat i d'ètica), no que coincideixi amb cap solució model.
Mòdul M5074 Sistemes de Big Data | Institut Sa Palomera (Blanes) | Curs CEIABD 2026-2027