This is an old revision of the document!
Table of Contents
Tema de Casă 2
Implementarea modului de relații cu clienții (CRM - Customer Relationship Management) pentru un sistem informatic dedicat unui lanț de restaurante
Termen de Predare: 20 decembrie 2015, 23:55
Pondere: 15 p / 35
Obiective
Obiectivul temelor de casă este reprezentat de implementarea unui sistem informatic performant şi scalabil pentru gestiunea resurselor unei societăți comerciale de dimensiuni mari. În acest an universitar, organizaţia pentru care se va proiecta şi dezvolta acest pachet de programe este un lanț de restaurante.
Se va realiza implementarea mai multor module din cadrul aplicației ERP, pe parcursul a trei etape independente.
În cadrul acestei etape se va dezvolta o aplicaţie web cu conţinut dinamic care poată fi accesată prin intermediul unui client universal, browser-ul, fără a mai fi nevoie de alte resurse pentru rularea sa. Această aplicație web va fi implementată folosind două tehnologii distincte, urmând ca ulterior să fie comparate performanțele acestora, raportat la timpul de încărcare al paginii Internet.
După rezolvarea temei de casă, studentul va fi capabil să:
- proiecteze o bază de date cu mai multe tabele normalizate, între care există relaţii de dependenţă, gestionând informaţiile reţinute prin intermediul unui sistem informatic;
- realizeze o aplicaţie web (formată din mai multe pagini, între care există legături) care implementează o funcţionalitate complexă, având rolul de interfaţă între utilizator şi baza de date.
Cunoştinţele necesare pentru rezolvarea temei de casă sunt:
- programarea în limbajele Java / JavaScript;
- proiectarea și dezvoltarea unei baze de date folosind sistemul de gestiune MySQL;
- folosirea unei interfețe de programare pentru accesarea informațiilor dintr-o sursă de date (Java Database Connectivity / Java Persistence API);
- utilizarea tehnologiilor Java Servlets / JavaServer Pages și a platformei Node.JS pentru dezvoltarea unei aplicaţii web.
Enunț
Se dorește implementarea modulului de aprovizionare (CRM - Customer Relationship Management) pentru un sistem informatic destinat gestiunii activității dintr-un lanț de restaurante.
Un astfel de modul este destinat pacienților lanțului de policlinici care doresc să comande produsele comercializate de restaurant spre a fi livrate la o anumită adresă.
Accesul în cadrul aplicației web se va realiza securizat, pe baza autenficării prealabile, bazată pe un nume de utilizator și o parolă. Utilizatorii care nu dețin un cont vor putea să se înregistreze, furnizând informații precum nume de utilizator și parolă, precum și o serie de informații personale (nume și prenume, cod numeric personal, adresă de poștă electronică, telefon, cont IBAN precum și domiciliul la care se presupune că urmează să fie onorată comanda plasată prin intermediul aplicației). Toate aceste informații sunt obligatorii. Operația de înregistrare va reuși numai în situația în care sunt furnizate toate informațiile solicitate și nu există un alt cont cu aceleași date de autentificare. În caz contrar, vor fi furnizate motivele pentru care operația de înregistrare a eșuat, cu posibilitatea de corectare a informațiilor completate anterior.
În situația în care utilizatorul nu este autentificat, el va putea doar să vizualizeze felurile de mâncare disponibile pentru o anumită dată calendaristică (pe care utilizatorul o poate alege dintr-o listă de selecție), fără a-și putea defini un coș de cumpărături. Meniul este defalcat pe tipuri de mâncare (aperetiv, fel principal, desert), astfel încât felurile de mâncare sunt grupate în funcție de categoria din care fac parte. Pentru fiecare fel de mâncare se va afișa compoziția (ingredientele folosite la prepararea sa precum și cantitatea folosită, exprimată în funcție de o unitate de măsură specifică pentru fiecare componentă), specificația unei porții (greutate sau număr de produse), numărul de produse existente în stoc precum și prețul pentru o porție. Pentru fiecare fel de mâncare se vor asocia și anumite etichete în funcție de care se poate realiza filtrarea.
În cazul în care utilizatorul este autentificat, el va putea să indice câte porții dorește să comande din fiecare fel de mâncare. Pe măsură ce astfel de produse sunt specificate, se va afișa conținutul coșului de cumpărături În momentul în care comanda conține toate produsele dorite, ea poate fi finalizată. Acceptarea comenzii este condiționată de existența pe stoc a numărului de porții solicitat. Dacă o comandă nu poate fi onorată din cauza unui număr de produse insuficient, se va afișa un mesaj de eroare, iar utilizatorul are posibilitatea de a ajusta cantitățile respective. Pentru comenzile care pot fi livrate, se emite o factură care conține toate produsele care au fost solicitate. Totodată, este necesar să se actualizeze cantitățile disponibile în stoc pentru acele feluri de mâncare care au fost comandate. Utilizatorul are posibilitatea de a-și vizualiza propriile date personale (furnizate în cadrul operației de înregistrare) spre a putea fi actualizate (cu excepția denumirii contului) precum și istoricul comenzilor anterioare (pentru fiecare comandă pot fi vizualizate data la care aceasta a fost plasată și prețul total precum și detaliile - conținutul propriu-zis al comenzii: numărul de porții și denumirea felului de mâncare).
Precizări suplimentare
Barem de corectare și notare
| Punctaj | Criterii de acordare |
|---|---|
| x p |
BONUS. Se pot obţine punctaje suplimentare, astfel:
- 0,50 p – predarea şi prezentarea temei cu o săptămână mai devreme (înainte de 13.12.2015, 23:55);
Condiții de realizare și predare
Tema va fi realizată individual şi va fi prezentată în cadrul laboratorului, până la sfârşitul semestrului. Neprezentarea temei de casă sau un rezultat nesatisfăcător al prezentării (necunoașterea funcționalității aplicației / codului sursă, imposibilitatea de a răspunde la întrebări) atrag după sine anularea punctajului corespunzător acesteia. În cadrul prezentării veţi specifica succint funcţionalităţile pe care le-aţi dezvoltat şi veţi răspunde la întrebări cu privire la modul de implementare al acestora.
Tema va trebui transmisă sub forma unui mesaj la adresa de poștă electronică aipi2015@andreirosucojocaru.ro sub forma unei arhive de tip .zip (având denumirea Grupa34XCX_NumePrenume_Tema2.zip) care să conţină script-ul pentru crearea şi popularea tabelelor din bazele de date (numele bazei de date fiind Grupa34XCX_NumePrenume) – în rădăcina, sursele aplicaţiilor (proiecte Eclipse / NetBeans), precum şi un README în care să explicaţi funcționalitățile dezvoltate, problemele întâlnite și modul de soluționare a acestora. Subiectul utilizat va fi [Tema2][Grupa34XCX][NumePrenume]. Temele care nu respectă convențiile de nume indicate nu vor fi luate în considerare. Prezentarea se poate face numai după ce tema a fost predată sub această formă. În cazul în care aplicaţia este găzduită online, veţi indica URL-ul de unde aceasta poate fi accesată.
Încărcarea pe site nu este redundantă, temele vor fi comparate prin aplicaţii specializate pentru a se depista eventualele fraude. În această situaţie, întreg punctajul pe parcursul semestrului va fi anulat, studenţii implicaţi (atât originalul, cât şi copia / copiile) fiind obligaţi să repete disciplina – cu taxă – în anul universitar următor.
