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:

  • La sfarsit de serie se calculeaza nota per concurent (in functie de notele de la jurizare)
  • La sfarsit de runda se interclaseaza rezultatele seriilor si se anunta concurentii care au avansat/castigat

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

  1. permiterea oricui (care nu este membru in juriu) sa se conecteze la aplicatie atrage o penalizare de 25%
  2. transmiterea in clar a datelor prin http atrage o penalizare de 10%

Penalizarile se cumuleaza.

Bibliografie

Exemple de proiecte asemanatoare: Myvote si Doodle

Livrabile

Obligatorii și care trebuie prezentate:

  1. Demo al aplicației
  2. Cod (pe Git)
  3. SDD (software design document, se va discuta la laborator)
  4. Raport de testare

Alte livrabile la latitudinea evaluatorilor:

  1. Prezentarea aplicației
  2. Meeting minutes (minimum 2)
mps/old/2019-2020/proiect/proiect-1.txt · Last modified: 2020/10/07 18:23 (external edit)
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