- Node.js v10.xx (https://nodejs.org)
- Angular v7.xx (https://angular.io)
- Bootstrap v4.x.x (https://getbootstrap.com/)
Legend: O: optional C: client-side S: server-side ?: to ask (teacher) or to be established (team)
- C: video page
- C: player con i controlli
- C: ricerca video:
- C: per titolo (canzone e artista)
- C: per codice youtube
- C: Barra del menu
- C: info (del team, del sito...)
- C: homepage
- C: Info del video (da cercare su wikipedia dai dati di youtube)
- C: Nome canzone
- C: nome artista
- C: nome album
- OC: genere musicale
- C: Area contenuti
- C: scrollabile
- C: Descrizione del video di YouTube
- C: commenti di YouTube
- C: contenuti di DBPedia
- OC: sul brano
- OC: sull'album
- OC: sull'artista
- OC: sul genere
- OC: tweet che menzionano il brano o l'artista
- O?C: lyric (musicxmatch, ecc...)
- C: Area suggerimenti
- C: scrollabile
- C: Liste multiple di video prodotte da algoritmi diversi di raccomandazione. Per ogni video viene mostrato:
- C: un'immagine
- C: qualche informazione tecnica (ad esempio il titolo)
- C: il motivo per cui viene raccomandato.
- OC: Accessibilità
- OC: errore 404
- CS: Gestione utenti
- ?C: html5 webstorage
- S: database statistiche
- S: fornire API globale
- CS: Un modulo che genera liste di n video, 10 ≤ n ≤ 30. Usa molteplici algoritmi:
- C: Random: lista di video casuale (Scollegato dal video dell'area principale)
- OC: solo video musicali
- C: Output:
- C: Thumbnail
- C: titolo
- C: codice YouTube
- C: spiegazione della raccomandazione
- C: Search: video che fanno match con la ricerca dell'utente (ok se n < 10)
- C: L'utente inserisce testo nel campo di search
- C: Scollegato dal video dell'area principale.
- C: Il sistema usa l'API di YouTube per cercare alcuni video associabili a quel testo
- C: Se l'utente inserisce il codice di un video, viene trovato solo quel video
- C: I risultati del recommender search vengono visualizzati solo se l'utente l'ha usato per cercare un video, altrimenti no.
- C: Output:
- C: Thumbnail
- C: titolo
- C: codice YouTube
- C: spiegazione della raccomandazione
- C: Related: lista di video collegati secondo YouTube
- ?C: content-based
- C: Output:
- C: Thumbnail
- C: titolo
- C: codice YouTube
- C: spiegazione della raccomandazione
- ?CS: Recent: lista di video visualizzati recentemente dall'utente (numero di elementi a scelta?)
- S: Il sistema ricorda quali video sono stati visualizzati recentemente dall'utente.
- C: Scollegato dal video dell'area principale.
- C: La lista è inizialmente vuota, poi si popola progressivamente di video.
- C: Ordinato temporalmente.
- S: Se lo stesso video viene visto più volte, compare una volta sola nella posizione più recente.
- S: Un video viene considerato visto solo se il player lo ha mostrato per più di 15 secondi.
- S: Se l'utente riguarda ancora lo stesso video, viene contato due volte.
- C: Output:
- C: Thumbnail
- C: titolo
- C: codice YouTube
- C: spiegazione della raccomandazione
- S: Fvitali: lista di video proposti da un'API di Fabio Vitali
- ?S: approccio collaborativo
- C: Output:
- C: Thumbnail
- C: titolo
- C: codice YouTube
- C: spiegazione della raccomandazione
- S: Popularity: raccomandazione per popolarità (di più a breve)
- ?S: approccio collaborativo/demografico
- S: assoluta
- S: locale: I video più visti dagli utenti del progetto
- S: visto solo se il player lo ha mostrato per più di 15 secondi
- OS: visto se somma dei secondi=15
- O?S: globale: I video più visti dagli utenti di tutti i progetti del corso
- S: locale: I video più visti dagli utenti del progetto
- S: relativa
- S: locale: I video più scelti dopo quello mostrato nell'area principale dagli utenti del progetto
- S: visto solo se il player lo ha mostrato per più di 15 secondi
- OS: visto se somma dei secondi=15
- OS: globale: I video più scelti dopo quello mostrato nell'area principale dagli utenti di tutti i progetti del corso
- S: locale: I video più scelti dopo quello mostrato nell'area principale dagli utenti del progetto
- S: Il sistema tiene un contatore delle visualizzazione dei video da parte di tutti gli utenti, ed è in grado di elencarne i più visti.
- ?S: Popolarità relativa: la relazione tra il video raccomandante e il video raccomandato; relazione tra un video A e un video C passando da B
- S: Output:
- S: Thumbnail
- S: titolo
- S: codice YouTube
- S: spiegazione della raccomandazione
- C: Similarity: due (o tre) recommender diversi che ordinano dal più simile al meno simile, evitare video uguali
- ?C: similarità testuale
- C: similarità Knowledge-Based: Usate ontologie specializzate (ad es. Music Ontology http://musicontology.com)
- C: similarità di grafo: usare SPARQL per accedere alle info di dbpedia https://dbpedia.org/sparql oppure http://musicontology.com
- C: ArtistSimilarity: una lista di video dello stesso artista del video principale
- C: GenreSimilarity: una lista di video di artisti ed album simili a quelli del video principale
- C: Non includere video dello stesso artista
- OC: BandSimilarity: (solo per video di band) una lista di video di band in cui suonano membri della band del video principale
- C: Non includere video della stessa band.
- C: Random: lista di video casuale (Scollegato dal video dell'area principale)
- S: Lista di partenza
- S: Selezionare 40-50 video musicali sul wiki
- S: Suggerimento: scegliete brani musicali molto diversi tra loro per genere, artista ed epoca storica (includere musica classica, jazz, musiche etniche?)
- C: L'utente può selezionare qualunque video di YouTube, ma in prima pagina l'esaminatore può accedere ad uno dei 40-50 video di partenza scegliendolo da un apposita voce del menù e mostrare i suggerimenti su questi come partenza.
- S: Selezionare 40-50 video musicali sul wiki
- C: Catturare i pulsanti back and forward
- C: Se l'utente fa back o forward, evitate di ricaricare ogni volta tutti i dati del video che abbiamo visto pochi secondi fa.
- C: Usate cache e memoria locale del browser in maniera appropriata.