This shows you the differences between two versions of the page.
poo-ca-cd:teme:proiect:etapa3 [2023/12/27 11:05] robert.grancsa |
poo-ca-cd:teme:proiect:etapa3 [2024/01/14 14:39] (current) robert.grancsa |
||
---|---|---|---|
Line 6: | Line 6: | ||
* **Colaboratori:** [[sorinabuf@gmail.com | Sorina-Anamaria Buf]], [[stefancocioran@gmail.com | Ștefan Cocioran]], [[miculuis1@gmail.com | Florian-Luis Micu]] | * **Colaboratori:** [[sorinabuf@gmail.com | Sorina-Anamaria Buf]], [[stefancocioran@gmail.com | Ștefan Cocioran]], [[miculuis1@gmail.com | Florian-Luis Micu]] | ||
* **Data publicarii: ** 18.12.2023, ora 13:30 | * **Data publicarii: ** 18.12.2023, ora 13:30 | ||
- | * **Deadline HARD: ** 14.01.2024, ora 23:55 | + | * **Deadline HARD: ** <del>14.01.2024</del> 16.01.2024, ora 23:55 |
- | * **Ultima modificare a enuntului:** 24.12.2023, ora 13:25 - clarifications for wrapped | + | * **Ultima modificare a enuntului:** |
- | * **Ultima modificare a testelor:** 27.12.2023, ora 11:05 - fixed index for random song | + | * 11.01.2024, ora 23:23 - added details for design patterns |
+ | * 06.01.2024, ora 14:25 - details for updateRecommendations | ||
+ | * | ||
+ | * **Ultima modificare a testelor:** 29.12.2023, ora 14:54 - removed all songs from the library | ||
* ** Schelet: ** [[https://github.com/oop-pub/oop-project-2023/tree/main/etapa3 | GitHub]] | * ** Schelet: ** [[https://github.com/oop-pub/oop-project-2023/tree/main/etapa3 | GitHub]] | ||
* **History** | * **History** | ||
+ | * 28.12.2023, ora 02:37 - simplified complex tests (6, 15, 16) and other fixes for date, recommandation and duplicate songs | ||
+ | * 27.12.2023, ora 11:05 - fixed index for random song | ||
* 26.12.2023, ora 14:13 - replaced topPodcasts and recalculted mostProfitableSong | * 26.12.2023, ora 14:13 - replaced topPodcasts and recalculted mostProfitableSong | ||
+ | * 24.12.2023, ora 13:25 - clarifications for wrapped | ||
* 24.12.2023, ora 13:25 - fixed createPlaylist in test 12 | * 24.12.2023, ora 13:25 - fixed createPlaylist in test 12 | ||
* 24.12.2023, ora 13:25 - removed field from test 10 and fixed message for notifications | * 24.12.2023, ora 13:25 - removed field from test 10 and fixed message for notifications | ||
Line 22: | Line 28: | ||
* **Atenție!** Pentru partea de citire / afișare nu este necesară folosirea adnotărilor din librăria Jackson. Puteți utiliza o metodă similară cu cea prezentată de noi în schelet, și anume să vă folosiți de clasa ObjectMapper. **Nu există o metodă corectă sau greșită de a lucra cu input-ul / output-ul.** Scopul nostru în cadrul acestui proiect nu este să vă testăm abilitatea de a lucra cu fișierele, ci să vă testăm atât înțelegerea cunoștințelor de bază dobândite în cadrul cursurilor și a laboratoarelor, cât și modul de gândire într-un limbaj de programare orientat obiect. | * **Atenție!** Pentru partea de citire / afișare nu este necesară folosirea adnotărilor din librăria Jackson. Puteți utiliza o metodă similară cu cea prezentată de noi în schelet, și anume să vă folosiți de clasa ObjectMapper. **Nu există o metodă corectă sau greșită de a lucra cu input-ul / output-ul.** Scopul nostru în cadrul acestui proiect nu este să vă testăm abilitatea de a lucra cu fișierele, ci să vă testăm atât înțelegerea cunoștințelor de bază dobândite în cadrul cursurilor și a laboratoarelor, cât și modul de gândire într-un limbaj de programare orientat obiect. | ||
* **Este obligatoriu să folosiți cel puțin 4 design pattern-uri.** Trebuie sa precizati in README ce design pattern ati folosit, si motivatia & locatia unde a fost folosita | * **Este obligatoriu să folosiți cel puțin 4 design pattern-uri.** Trebuie sa precizati in README ce design pattern ati folosit, si motivatia & locatia unde a fost folosita | ||
+ | * **Depunctari lipsa design pattern-uri**: Pentru fiecare design pattern lipsa (din cele 4), veti avea o depunctare de -2.5p, astfel pentru: | ||
+ | * 0 design pattern-uri - **-10p** | ||
+ | * 1 design pattern-uri - **-7.5p** | ||
+ | * 2 design pattern-uri - **-5p** | ||
+ | * 3 design pattern-uri - **-2.5p** | ||
<note important> | <note important> | ||
Line 323: | Line 334: | ||
"username": "alice22", | "username": "alice22", | ||
"timestamp": 5, | "timestamp": 5, | ||
- | "message": "Ed Sheeran has added new merch successfully." | + | "message": "alice22 has added new merch successfully." |
} | } | ||
</code> | </code> | ||
Line 498: | Line 509: | ||
* $val$ = valoarea de bani care se duce la **artistul respectiv** | * $val$ = valoarea de bani care se duce la **artistul respectiv** | ||
* $price_{ad}$ = cat valoareaza ad-ul respectiv | * $price_{ad}$ = cat valoareaza ad-ul respectiv | ||
- | * $song_{last}$ = numarul de cantece ascultate de catre userul premium | + | * $song_{last}$ = numarul de cantece ascultate de catre user de la ultimul adBreak pana la adBreak-ul curent |
* $song_{artist}$ = numarul de cantece ascultate de la artist | * $song_{artist}$ = numarul de cantece ascultate de la artist | ||
Line 533: | Line 544: | ||
* ''%%"The username ${username} doesn't exist."%%'' | * ''%%"The username ${username} doesn't exist."%%'' | ||
- | * ''%%"You can subscribe only to artists and hosts."%%'' | ||
* ''%%"To subscribe you need to be on the page of an artist or host."%%'' | * ''%%"To subscribe you need to be on the page of an artist or host."%%'' | ||
* ''%%"${username} (subscribed/unsubscribed) (to/from) ${artist/host} successfully."%%'' | * ''%%"${username} (subscribed/unsubscribed) (to/from) ${artist/host} successfully."%%'' | ||
Line 588: | Line 598: | ||
"username": "alice22", | "username": "alice22", | ||
"timestamp": 15, | "timestamp": 15, | ||
- | "result": [ | + | "notificarions": [ |
{ | { | ||
"name": "New Album", | "name": "New Album", | ||
Line 609: | Line 619: | ||
Fiecare utilizator normal va primii recomandari pentru melodii si playlist-uri, care vor fi afisate pe HomePage-ul acestuia. Pentru a le reda, utilizatorul trebuie sa primeasca comanda de //loadRecommendations//. | Fiecare utilizator normal va primii recomandari pentru melodii si playlist-uri, care vor fi afisate pe HomePage-ul acestuia. Pentru a le reda, utilizatorul trebuie sa primeasca comanda de //loadRecommendations//. | ||
+ | |||
+ | <note important>Se poate ca pentru utilizatorul pentru care s-a cerut recomandari sa nu se gaseasca nicio recomandare.</note> | ||
+ | |||
Output-ul pentru printarea HomePage-ului utilizatorului va avea urmatorul format:<html><br></html> | Output-ul pentru printarea HomePage-ului utilizatorului va avea urmatorul format:<html><br></html> | ||
Line 633: | Line 646: | ||
* alegerea random se va baza pe un **seed** reprezentat de cat a ascultat utilizatorul din melodia curenta | * alegerea random se va baza pe un **seed** reprezentat de cat a ascultat utilizatorul din melodia curenta | ||
- | <note important>Cand se cere o recomandare de tipul random song, se considera ca utilizatorul asculta o melodie si nu alt tip de fisier/colectie audio. Idem si pentru celelalte tipuri de recomandari. </note> | + | <note important>Cand se cere o recomandare, se considera ca utilizatorul asculta o melodie/playlist. </note> |
=== Adaugare recomandare Random Song === | === Adaugare recomandare Random Song === | ||
Line 851: | Line 864: | ||
<note important>Intr-o succesiune de comenzi back/foward, daca apare o comanda de ChangePage, atunci istoricul pentru foward va fi resetat.</note> | <note important>Intr-o succesiune de comenzi back/foward, daca apare o comanda de ChangePage, atunci istoricul pentru foward va fi resetat.</note> | ||
+ | |||
+ | <note tip>Noile optiuni pentru comanda changePage de ''%%Host%%''/''%%Artist%%'', te vor directiona catre pagina host-ului, respectiv artistului al carui fisier este la acel moment in playerul userului.</note> | ||
Cand se primeste comanda de | Cand se primeste comanda de |