Differences

This shows you the differences between two versions of the page.

Link to this comparison view

poo-ca-cd:teme:proiect:etapa3 [2023/12/26 21:38]
robert.grancsa [Tipuri de utilizatori]
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:​** ​26.12.2023, ora 14:13 replaced topPodcasts and recalculted mostProfitableSong+     * 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
 +    * 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 21: 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 322: 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 497: 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 532: 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 587: Line 598:
   "​username":​ "​alice22",​   "​username":​ "​alice22",​
   "​timestamp":​ 15,   "​timestamp":​ 15,
-  "result": [+  "notificarions": [
     {     {
       "​name":​ "New Album",​       "​name":​ "New Album",​
Line 608: 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 632: 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 850: 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
poo-ca-cd/teme/proiect/etapa3.1703619497.txt.gz · Last modified: 2023/12/26 21:38 by robert.grancsa
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0