This shows you the differences between two versions of the page.
mps:proiect:proiect-2 [2020/12/08 09:54] giorgiana.vlasceanu [Proiectul 2] |
mps:proiect:proiect-2 [2021/12/13 11:37] (current) mihai_lucian.voncila [Livrabile] |
||
---|---|---|---|
Line 1: | Line 1: | ||
====== Proiectul 2 ====== | ====== Proiectul 2 ====== | ||
- | **Nume proiect: Rezervă-mă** | + | **Nume proiect: Aplicație pentru gestionarea de jocuri tip party games** |
- | Într-o organizație, resursele sunt împărtășite între echipe sau indivizi. Ne propunem să realizăm o platformă web prin care utilizatorii (membri ai unei organizații) să poată rezerva această resursă pentru o perioadă nelimitată de timp atunci când ea este disponibilă, să poată verifica starea în orice moment și să fie notificați atunci când resursa devine disponibilă. | + | Jocurile de petrecere sunt un mod de interacțiune socială și relaxare între diverși membri din cadrul unui grup. Ne propunem să realizăm o platformă pentru gestionarea și jucarea acestora într-un mediu online, fie în grupuri publice sau private, cu posibilitatea ca jocurile să poată fi urmărite de spectatori. |
- | Al doilea proiect la Managementul proiectelor software se desfășoară în perioada laboratoarelor 8,9,10,11,12. **Începutul laboratorului 12** este termenul limită pentru definitivat proiectul, moment în care va fi prezentat asistentului (25 - 29 ianuarie 2021). | + | Al doilea proiect la Managementul proiectelor software se desfășoară în perioada laboratoarelor 8, 9, 10, 11, 12. Începutul laboratorului 12 este termenul limită pentru definitivat proiectul, moment în care va fi prezentat asistentului (24 - 28 ianuarie 2022). |
===== Întrebări și discuții ===== | ===== Întrebări și discuții ===== | ||
- | <note warning>** Cerinţa proiectului poate suferi modificări minore până în data de duminică, 13 decembrie. **</note> | + | Pentru întrebări sau nelămuriri legate de proiect, folosiți [[https://curs.upb.ro/2021/mod/forum/view.php?id=40373|forumul dedicat al proiectului]] sau [[https://teams.microsoft.com/l/channel/19%3a9529b5fede4441febd8878f8c6d16432%40thread.tacv2/Proiect?groupId=5af337ec-05da-411e-a4ed-b15784b85080&tenantId=2d8cc8ba-8dda-4334-9e5c-fac2092e9bac|canalul de MS Teams dedicat proiectului ]]. |
- | + | ||
- | Pentru întrebări sau nelămuriri legate de proiect, folosiți [[https://curs.upb.ro/mod/forum/view.php?id=67501|forumul dedicat al proiectului]] sau [[https://teams.microsoft.com/l/channel/19%3a9fafa314d50c428198eb75fa7cfaf945%40thread.tacv2/Proiect?groupId=28fd1c23-eed8-4c51-a82a-d74089903205&tenantId=2d8cc8ba-8dda-4334-9e5c-fac2092e9bac|canalul de MS Teams dedicat proiectului ]]. | + | |
===== Scopul proiectului ===== | ===== Scopul proiectului ===== | ||
- | Se dorește construirea unui platforme web de rezervare de resurse la nivel de organizație. Unii dintre membri vor avea drept de rezervare a resursei, alții vor avea doar drept de vizualizare a resursei. Informațiile resursei care vor fi afișate în interfață vor corespunde următoarelor nevoi: | + | Se dorește construirea unei aplicații capabile să permită utilizatorilor crearea de diverse camere, fie private fie publice, pe un server, în cadrul cărora se vor desfășura diverse jocuri cu tematică de petrecere. |
- | * Care este starea ei? | + | Arhitectura soluției și tehnologiile folosite sunt la latitudinea studenților. |
- | * Dacă este ocupată | + | |
- | * O descriere a resursei | + | |
- | * Cine a rezervat-o? | + | |
- | * Cât timp a estimat că va fi rezervată? | + | |
- | * De cât timp este rezervată? | + | |
- | * O descriere a motivului rezervării | + | |
- | * Un buton prin care utilizatorul se poate înscrie să fie notificat când resursa devine disponibilă | + | |
- | * Dacă este disponibilă | + | |
- | * O descriere a resursei | + | |
- | * Istoricul celor mai recente rezervări (cine, de când, până când) | + | |
- | * Un buton prin care utilizatorul poate rezerva resursa disponibilă | + | |
===== Descrierea proiectului ===== | ===== Descrierea proiectului ===== | ||
- | Pentru implementarea acestui sistem sunt necesare următoarele: | + | Aplicația trebuie să aibă în vedere următoarele aspecte: |
- | * O bază de date în care se vor stoca informații despre organizații, resurse ale unei organizații, membri ai unei organizații (și implicit utilizatorii), istoricul de rezervare al resurselor, permisiunile utilizatorilor | + | * Acomodare utilizatori |
- | * Un sistem de stări (de exemplu, o resursă poate avea una dintre stările: disponibilă | ocupată | în curs de rezervare | sau orice altă stare intermediară) - se subînțelege aici că sunt necesare minim cele două stări: disponibil și rezervat | + | * **Registered**: utilizatorii vor putea să își creeze un nou cont în momentul în care intră pe site, sau pot folosi o altă metodă de autentificare populară |
- | * Un timer care va contoriza cât timp a trecut de când resursa este în starea X | + | * **Guest**: utilizatorii pot alege să joace jocuri pe server pe baza unui guest account |
- | * Un sistem de autentificare și autorizare în platformă (un utilizator va avea acces doar la informații despre resursele din organizația din care face parte) | + | * Crearea de diverse tipuri de camere |
- | * O interfață web/mobile prin care utilizatorul poate interacționa cu sistemul | + | * **Public**: orice utilizator poate intra, atâta timp cât mai sunt locuri disponibile |
+ | * **Private**: utilizatorii pot intra doar pe baza unei parole | ||
+ | * Roluri de utilizatori în cadrul unei camere | ||
+ | * **Admin**: utilizatorul care crează camera devine automat admin; dacă acesta părăsește camera se alege în mod automat un nou admin, din cadrul utilizatorilor cu rol de player; modifică setări cameră și joc | ||
+ | * **Player**: număr limitat de locuri în funcție de joc; participă la jocuri în mod activ, obține puncte, poate câștiga jocul individual sau cu alți jucători | ||
+ | * **Spectator**: participă la jocuri în mod pasiv, obține puncte și câștigă jocul cu alți spectatori, poate deveni player dacă sunt destule locuri | ||
+ | * Afișarea de informații despre cameră | ||
+ | * **Classic**: pentru navigarea în cadrul server-ului | ||
+ | * numele și tipul camerei | ||
+ | * numele admin-ului | ||
+ | * număr curent utilizatori în cameră/număr maxim de utilizatori | ||
+ | * jocul ales și starea curentă a acestuia (în desfășurare, lobby, etc.) | ||
+ | * **Extended**: pentru când este selectată o cameră, se afișează în plus | ||
+ | * listă cu utilizatori de tip player și punctajele acestora | ||
+ | * număr spectatori și punctajul asociat grupului lor | ||
+ | * Implementarea unui joc pentru demonstrarea conceptului | ||
- | ===== Cazuri de utilizare ===== | ||
- | Pentru această aplicație, s-au definit câteva cazuri de utilizare: | ||
- | **Instituțiile medicale – spitalele** – Într-o secție a unui spital există mai multe blocuri operatorii (săli în care se fac operațiile). Una din problemele principale care se întâlnește în planificarea operațiilor dintr-o zi este că durata unei operații nu poate fi estimată niciodată exact. Deși există o ordine în care operațiile vor decurge într-o zi (stabilită de medicul de gardă și ceilalți colegi de tură), nu poate fi determinat exact momentul în care operația se va sfârși sau când următoarea va începe. Această constrângere determină doctorii principali și ceilalți participanți (doctor 2, asistente, anestezist) ai unei operații în așteptare să verifice regulat starea sălilor din aceea secție/departament de mai multe ori într-o zi. Această nevoie presupune deplasarea fiecăruia până la ușa blocului operator și verificarea (cu un participant la operație) care este starea sălii și cât timp mai durează operația. Printr-un simplu calcul matematic făcut în minte înțelegem faptul că pentru o operație următoare, mai multe persoane verifică mai multe săli de mai multe ori într-un interval de timp al unei zile până când operația poate avea loc. Toată această interacțiune presupune timp pierdut și multă mișcare pentru obținerea unui singur răspuns. Ne dorim să oferim acest răspuns instant cu minimul de efort posibil. | + | ===== Propunere joc: Guess the password ===== |
- | + | Jocul va fi jucat în felul următor: | |
- | De menționat, pe parcursul unei zi pot interveni și operații neplanificate (urgențe). În cazul unei urgențe, se știe că timpul este foarte important. Posibilitatea de a afla instant care sală este disponibilă acum poate avea un impact pozitiv enorm în realizarea intervenției cu succes. | + | * jucătorii încearcă să ghicească, fie individual fie pe echipe, o frază/cuvânt descrisă de o altă persoană |
+ | * pot fi alese aleator fraze de diverse dificultăți (ușor, mediu, dificil) și trimise un număr din fiecare categorie, urmând ca persoana care trebuie să descrie fraza să aleagă una dintre acestea | ||
+ | * persoana care descrie fraza nu are dreptul să folosească cuvinte din cadrul acesteia | ||
+ | * există un timp limită pentru ghicirea frazei | ||
+ | * se oferă puncte atât ghicitorului cât și persoanei care descrie în funcție de rapiditate și dificultatea frazei | ||
+ | * poate exista un chat special separat pentru scrierea descrierii și introducerea de răspunsuri | ||
- | |||
- | **Instituțiile de învățământ – universitățile** – Într-o universitate, mai multe facultăți împart săli de laborator, săli de conferințe. Prin analogie cu exemplul de mai sus, putem realiza faptul că posibilitatea de a verifica disponibilitatea unei săli în momentul prezent poate optimiza timpul și efortul profesorilor, asistenților și al studenților. Tot odată, poate elimina și eventualele neplăceri ale unei deplasări în plus. Ne dorim să oferim posibilitatea ca aceste resurse ale facultăților să poată fi utilizate optim. | ||
- | |||
- | Alte cazuri de utilizare care respectă raționamentul descris în enunț sunt acceptate. | ||
- | |||
- | ===== Recomandări ===== | ||
- | |||
- | Pentru acest proiect se va lucra în echipe de câte 4-5-6 persoane și se recomandă următoarea componență: | ||
- | * Project Manager, care mai poate avea și un alt rol. | ||
- | * Cel puțin doi Dezvolatori | ||
- | * Cel puțin doi Testeri | ||
- | * Exact un Technical Writer | ||
- | |||
- | Echipele sunt diferite față de proiectul anterior. | ||
- | Se recomanda ca **NICIUN** student sa nu aibă exact același rol (dintre cele menționate mai sus) ca la Proiectul 1. | ||
- | |||
- | |||
- | ===== Precizări ===== | ||
- | |||
- | Modulele/componentele aplicației sunt enunțate mai sus. Orice nu este specificat în cerință este la latitudinea echipelor (tehnologii, arhitectură, framework-uri, API-uri). | ||
- | Cu toate aceste, ele pot fi propuse de către fiecare echipă în parte. Tot echipa este responsabilă cu împărțirea task-urilor, planificarea, implementarea și testarea aplicației. | ||
===== Punctaj ===== | ===== Punctaj ===== | ||
- | <note>Punctajul va fi definitivat în curând.</note> | ||
+ | 80p implementarea sistemului: | ||
+ | * 15p managementul utilizatorilor și al autentificării | ||
+ | * 25p crearea și configurarea camerelor de jocuri, cât și afișarea de informații despre acestea | ||
+ | * 10p managementul interfeței / layout-ului | ||
+ | * 30p implementare joc demo | ||
+ | 20p livrabile și documentație: | ||
+ | * 10p documentație | ||
+ | * 10p aplicarea metodologiei asignate | ||
===== Bonus ===== | ===== Bonus ===== | ||
- | Se va acorda bonus de 20% pentru cea mai bună implementare. Cea mai bună implementare se va stabili prin vot în intervalul laboratorului în care se face prezentarea (fiecare echipă are dreptul la un vot și-l poate acorda doar unei alte echipe; pentru laboratoarele în care există un număr par de echipe, va vota și asistentul de laborator). | + | Se va acorda bonus de 10p pentru cea mai bună implementare. Cea mai bună implementare se va stabili prin vot în intervalul laboratorului în care se face prezentarea (fiecare echipă are dreptul la un vot și-l poate acorda doar unei alte echipe; pentru laboratoarele în care există un număr par de echipe, va vota și asistentul de laborator). |
- | Se va acorda bonus de cel puțin 15% din punctajul obținut dacă implementarea constă într-o aplicație Android (30% pentru aplicații mobile pentru alte sisteme de operare). | + | Se va acorda un punctaj bonus de 10p pentru implementarea unui al 2-lea joc demonstrativ împreună cu un mod de a schimba între cele două din cadrul aceleiași camere. |
- | Se va acorda bonus de 10% pentru implementarea sistemului pe un alt caz de utilizare decât cele indicate, bineînțeles, dacă respectă aceeași logică. Se poate verifica cu asistentul înainte de a începe lucrul la proiect. | + | Se va acorda un punctaj bonus de 10p pentru existența unui chat service. |
- | + | ||
- | Se poate acorda, la limita asistentului, un bonus de 5-10% pentru o interfață deosebită. | + | |
===== Livrabile ====== | ===== Livrabile ====== | ||
+ | |||
+ | |||
Obligatorii și care trebuie prezentate: | Obligatorii și care trebuie prezentate: | ||
- Demo al sistemului | - Demo al sistemului | ||
- Cod (pe Git) | - Cod (pe Git) | ||
+ | |||
Alte livrabile la latitudinea evaluatorilor: | Alte livrabile la latitudinea evaluatorilor: | ||
+ | <note important>Livrabilele și metodologiile utilizate în cadrul proiectelor vor fi updatate în curând.</note> | ||
+ | <hidden> | ||
- prezentarea sistemului | - prezentarea sistemului | ||
- meeting minutes | - meeting minutes | ||
- SDD | - SDD | ||
- | - raport de testare | + | - raport de testare |
+ | |||
+ | Metodologii utilizate: | ||
+ | - [[https://docs.google.com/document/d/1dArsNrS0w7-w03aykw-qVKQqU6nOkv6mBj6Ejj4i0T8/edit?usp=sharing|Scrum]] | ||
+ | - [[https://docs.google.com/document/d/1yfYITpOOGr0xrc_itSsm2iXEPZoIAa6s/edit?usp=sharing&ouid=103603622260988891377&rtpof=true&sd=true|Lean]] | ||
+ | - TODO: [[TODO|Kanban]] | ||
+ | - TODO: [[TODO|Extreme Programming]] | ||
+ | - TODO: [[TODO|Feature-Driven]] | ||
+ | </hidden> | ||
+ | |||