Proiectul 1
Nume proiect: Jury Duty
Aplicatie de jurizat concursuri (de dans, de gatit, de cantat (voce sau instrument), de talente, de frumusete, rap battles, patinaj etc).
Primul proiect la Managementul proiectelor software se desfășoară în perioada laboratoarelor 2, 3, 4, 5, 6. Începutul laboratorului 7 este termenul limită pentru definitivat proiectul, moment în care va fi prezentat asistentului (6-12 noiembrie 2019).
Întrebări și discuții
Datorită cererilor venite către catedra de MPS, echipa a hotărât extinderea deadline-ului hard cu 3 săptămâni de la prezentare, până în săptămâna 27.11 - 03.12. Așadar, începutul laboratorului 10 este noul deadline hard (și ultimul) pentru terminarea proiectului 1. Prezentarea proiectului după săptămâna a 7-a (sau reprezentarea lui) atrage o depunctare de 20% din nota pe proiect (adică se pot obține maximum 8/10 puncte). Proiectul al doilea nu este în niciun fel impactat de această modifcare (deadline-ul proiectului doi rămâne la fel, conform cerinței).
Pentru întrebări sau nelămuriri legate de proiect, folosiți forumul dedicat al proiectului.
Cerinţa proiectului poate suferi modificări minore până în data de duminică, 6 octombrie 2019 inclusiv. Începând cu data de 7 octombrie 2019, cerinţa devine definitivă în forma curentă.
Scopul proiectului
Se doreste construirea unei aplicatii de jurizat competitii. Sa presupunem scenariul cu o competitie de dans.
Proiectul 1 presupune un set-up precum:
Un server cu user de admin si user de organizator. Serverul este responsabil cu transmiterea datelor, prelucrarea lor si afisarea rezultatelor pe un ecran (care este mare si accesibil intregului public; eventual un proiector).
O multime de K end-point-uri (mai degraba telefoane si/sau tablete decat laptopuri), K reprezentand numarul de membri din juriu.
Descrierea proiectului
Aplicatia obtinuta trebuie sa:
Permita o gama de actiuni intreprinse de organizator pentru a “face setup-ul” unui concurs
Felul concursului: daca e battle (unii vs altii simultan), daca e evolutie sincrona (mai multe perechi pe scena, fiecare pe treaba ei), daca e asincrona (intra unii dupa altii pe aceeasi sau alta muzica)
Numar de runde eliminatorii, numar de serii per runde, numar de concurenti per serie.
Numarul (eticheta de pe spatele concurentilor) sau numele dansatorilor/atletilor care performeaza
Stabilirea unei parole cu care se conecteaza membrii juriului la server (sau orice alta metoda)
O gama de mesaje schimbate de server / useri (juriu):
Permita o serie de configurari prealabile desfasurarii concursului, dar si una de actiuni specifice jurizarii (start concurs):
Start runda (runda/runde de calificari, grupe, sferturi, semifinale, finale, superfinale)
Categoriile care se jurizeaza (ex: ritm / muzicalitate (daca a “stat” pe “beat”), coregrafie (dificultatea elementelor tehnice), corectitudine (“cleaness”), componenta artistica, overall. Numarul de categorii e cunoscut, fiecare “performer” primeste cate o nota la fiecare categorie.
Start serie (si un panou cu concurentii)
Send/receive jurizare per concurent / per categorie
Sfarsit serie (eveniment ce marcheaza incheierea unei serii)
Sfarsit runda (eveniment ce marcheaza faptul ca toate seriile unei runde au evoluat; ex: s-au incheiat toate sferturile)
Alte lucruri facute de server automat:
Alte actiuni are organizatorului si/sau adminului:
Posibilitate de descalificare concurent sau anulare runda (si reguli care stabilesc consecintele acestei actiuni
Posibilitate de modificare a valorilor default: eliminarea unui criteriu din jurizare (sau adaugarea lui la loc), schimbarea ponderii din nouta a unui criteriu, schimbarea ponderii din jurizare a unui juriu.
Regula de departajare in caz de egalitate
Evaluarea va consta in una sau mai multe simulari a unui concurs. Set-up, desfasurare runde cu jurizare per serii, progres de la o etapa la alta, stabilirea castigatorului, display, situatii speciale.
Punctaj
70p implementare server. Din care:
10p configurarea concursului (plus repartizarea pe runde/serii a concurentilor)
10p acceptarea conectarii juratilor si managementul conexiunilor acestora
10p alte setari si configurari necesare desfasurarii concursului
10p send/receive corect
10p calcul punctaje si stabilire promovati / castigatori
10p management-ul display
10p functionarea corecta a interventiilor exterioare (descalificari, adaugare categorii de jurizare etc)
30p implementare end-point nodes. Din care:
10p display corect la informatiile primite de la server (inclusiv evenimentele de inceput si sfarsit serie si/sau runda
10p send/receive informatii ce tin de jurizare (cine a notat pe cine in ce fel)
10p managementul autentificarii (dar si al sign-out-ului)
Bonus
Se acorda un bonus de cel putin 20% din punctajul total al proiectului daca implementarea consta intr-o aplicatie Android (30% pentru aplicatii mobile pe alte sisteme de operare, se poate cumula).
Se poate acorda, la limita asistentului, un bonus de 5% pana la 10% pentru un display iesit din comun (atat pe ecranul serverului cat si pe end-point-urile membrilor juriului.
Recomandări
Alegeti tehnologii si arhitecturi cu care aveti cat mai multa experienta. Adica o implementare web-based care satisface cerintele in totalitate va fi punctata mai bine decat una aproximativa in Android, in ciuda bonusului primit in cea de-a doua varianta.
Va puteti inspira din design-ul altor aplicatii asemanatoare, atat ca afisaj cat si ca arhitectura, dar este interzis sa folositi cod care nu este disponibil public in mod gratuit si FREE TO USE.
De asemenea, autoplagiatul este tot plagiat. Nu copiati alte teme (ale voastre sau ale altora), respectiv nu copiati unii de la altii.
Precizări
Lipsa unui afisaj al serverului (adica rezultatele sunt afisate in consola sau intr-un fisier) atrage o penalizare de 10% din proiect.
Brese de securitate precum
permiterea oricui (care nu este membru in juriu) sa se conecteze la aplicatie atrage o penalizare de 25%
transmiterea in clar a datelor prin http atrage o penalizare de 10%
Penalizarile se cumuleaza.
Bibliografie
Livrabile
Obligatorii și care trebuie prezentate:
Demo al aplicației
Cod (pe Git)
SDD (software design document, se va discuta la laborator)
Raport de testare
Alte livrabile la latitudinea evaluatorilor:
Prezentarea aplicației
Meeting minutes (minimum 2)