Sunteți pe pagina 1din 43

UNIVERSITATEA “ALEXANDRU IOAN CUZA” IAŞI

FACULTATEA DE INFORMATICĂ

LUCRARE DE LICENŢĂ

Înscrierea online a lucrărilor de licență

propusă de:
Scutaru Constantin

Sesiunea: iunie, 2016

Coordonator ştiinţific
Lector Dr. Alex Moruz
UNIVERSITATEA “ALEXANDRU IOAN CUZA” IAŞI

FACULTATEA DE INFORMATICĂ

Înscrierea online a lucrărilor de licență

Scutaru Constantin

Sesiunea: iunie, 2016

Coordonator ştiinţific
Lector Dr. Alex Moruz

1
DECLARAȚIE PRIVIND ORIGINALITATEA ȘI RESPECTAREA
DREPTURILOR DE AUTOR

Prin prezenta declar că lucrarea de licență cu titlul „ Înscrierea online a lucrărilor de licență”
este scrisă de mine și nu a mai fost prezentată niciodată la o altă facultate sau instituție de
învățământ superior din țară sau străinătate. De asemenea, declar că toate sursele utilizate,
inclusiv cele preluate de pe Internet, sunt indicate în lucrare, cu respectarea regulilor de evitare a
plagiatului:

toate fragmentele de text reproduse exact, chiar și în traducere proprie din altă limbă, sunt
scrise între ghilimele și dețin referința precisă a sursei;
codul sursă, imagini etc. preluate din proiecte open-source sau alte surse sunt utilizate cu
respectarea drepturilor de autor și dețin referințe precise;
reformularea în cuvinte proprii a textelor scrise de către alți autori deține referința
precisă;
rezumarea ideilor altor autori precizează referința precisă la textul original.

Iași,

30.06.2016

Absolvent,

Scutaru Constantin

____________________

2
DECLARAȚIE DE CONSIMȚĂMÂNT

Prin prezenta declar că sunt de acord ca lucrarea de licență cu titlul „Înscrierea online a
lucrărilor de licență”, codul sursă al programelor și celelalte conținuturi (grafice, multimedia,
date de test etc.) care însoțesc această lucrare să fie utilizate în cadrul Facultății de Informatică.

De asemenea, sunt de acord ca Facultatea de Informatică de la Universitea Alexandru Ioan


Cuza, Iași să utilizeze, modifice, reproducă și să distribuie în scopuri necomerciale programele-
calculator, format executabil și sursă, realizate de mine în cadrul prezentei lucrări de licență.

Iași,

30.06.2016

Absolvent,

Scutaru Constantin

____________________

3
Acord privind proprietatea dreptului de autor

Facultatea de Informatică este de acord ca drepturile de autor asupra programelor-calculator,


format executabil și sursă, să aparțină autorului prezentei lucrări, Scutaru Constantin.

Încheierea acestui acord este necesară din următoarele motive:

Iași,

Decan Adrian Iftene Absolvent,

Constantin Scutaru

________________________ ________________________

4
Cuprins

Cuprins ............................................................................................................................................ 5
Introducere ...................................................................................................................................... 6
Motivaţia alegerii temei .............................................................................................................. 6
Gradul de noutate al temei .......................................................................................................... 6
Obiective generale ...................................................................................................................... 7
Structura ...................................................................................................................................... 8
Capitolul 1 – Stabilirea comisiilor .................................................................................................. 9
1.1 Adăugarea unui membru într-o comisie ............................................................................... 9
1.2 Updatarea rolului utilizatorilor asignați într-o comisie ......................................................... 9
Capitolul 2 – Distribuirea studenților în comisii........................................................................... 10
2.1 Tipul algoritmului utilizat ................................................................................................... 10
2.2 Descrierea algoritmului construit pentru distribuire ........................................................... 11
Capitolul 3 – Stabilirea datelor de susținere a licențelor .............................................................. 12
Capitolul 4 – Generarea de rapoarte în format PDF ..................................................................... 14
4.1 Tehnologiile utilizate .......................................................................................................... 14
4.2 Modul de creare a raportului ............................................................................................... 14
Capitolul 5 – Prezentarea aplicației și a tehnologiilor folosite ..................................................... 16
5.1 Tehnologiile utilizate .......................................................................................................... 16
5.2 Prezentarea aplicației .......................................................................................................... 27
Contribuţii ..................................................................................................................................... 40
Concluzii ....................................................................................................................................... 41
Bibliografie ................................................................................................................................... 42

5
Introducere

Ceea ce urmează să prezint este o scurtă descriere a lucrării de licență, obiectivele generale şi
structura lucrării.

Motivaţia alegerii temei

Tema aleasă a fost stabilită împreună cu coordonatorul științific, Alex Moruz și colega de
Facultate, Sandra Amarandei. Ideea propusă are ca principal obiectiv dezvoltarea unei aplicații
pentru gestionarea online a evaluării lucrărilor de licență. Această idee mi s-a părut utilă atât
pentru studenți cât și pentru profesori deoarece facilitează procesul de examinare a licențelor.

Gradul de noutate al temei

Nu știu dacă această idee a fost pusă în practică în alte instituții, dar la Facultatea de
Informatică, din Iași, știu că acest lucru încă nu s-a întâmplat, dar asta nu înseamnă ca această
idee nu s-a mai discutat sau că nu au existat abordări asemănatoare. Această temă ar fi utilă
pentru cadrele didactice, dar și pentru studenții acestei instituții.

6
Obiective generale

Obiectivele generale ale lucrării de licență au fost discutate împreună cu profesorul


coordonator Alex Moruz și Sandra Amarandei. Tema a fost împărțită în două module ce au fost
dezvoltate individual de către mine și colega mea.

Astfel, obiectivele principale ale acestei lucrări sunt:

posibilitatea ca datele oferite de aplicație să poată fi văzute doar de utilizatorii Facultății


de Infomatică;

distribuirea drepturilor utilizatorilor în funcție de ocupație: admin, membru comisie,


secretar, utilizator normal(student, profesor);

înscrierea la licență;

distribuirea automată a studenților înscriși la susținerea lucrării pe comisii;

introducerea de note pentru studenții din fiecare comisie;

calcularea automată a mediilor finale pentru lucrarea de licență;

generarea de rapoarte cu notele finale;

centralizarea tuturor informațiilor ajutătoare pentru studenți într-un singur loc;

Obiectivele enumerate mai sus reprezintă principalele funcționalități ale lucrării, dezvoltate de
mine si colega mea.

Contribuțiile mele la această lucrare de licență vizează următoarele obiective:

distribuirea automată a studenților în comisii;

generarea de rapoarte în format PDF privind notele studenților;

7
organizarea datelor de susținere a licențelor de către studenți;

stabilirea membrilor fiecărei comisii de către admin/decan;

Structura

Lucrarea de licență cuprinde 5 capitole numite astfel: stabilirea comisiilor, distribuirea


studenților în comisii, stabilirea datelor de susținere a licențelor, generarea de rapoarte în format
PDF 1a notelor finale, prezentarea aplicaţiei şi a tehnologiilor utilizate.

Primul capitol al acestei lucrări intitulat „Stabilirea comisiilor” prezintă modul cum sunt
formate comisiile de către decan sau un administrator. Doar el are această funcționalitate în
cadrul aplicației dezvoltate.

Al doilea capitol „Distribuirea studenților în comisii” constitue algoritmul utilizat în asignarea


în comisii a studenților care s-au înscris la susținerea lucrării de licență.

Capitolul trei „Stabilirea datelor de susținere a licențelor” se axează pe modul cum secretarii
din fiecare comisie publică data și ora la care un student trebuie să își prezinte lucrarea de
licență.

Capitolul patru „Generarea de rapoarte în format PDF” cuprinde modul în care s-a realizat
această funcționalitate în cadrul aplicației dar și tehnologiile folosite pentru a duce la săvârșirea
acestui lucru. Rapoartele generate sunt folositoare datorită faptului ca ele salvează timp și totul
se realizază la apăsarea unui buton.

În ultimul capitol voi prezenta ce tehnologii am folosit pentru a crea funcționalitățile prezentate
mai sus, dar și modul de utilizare al aplicației.

1
Portable Document Format
8
Capitolul 1

Stabilirea comisiilor

Acest capitol prezintă modul cum sunt formate comisiile de către decan/admin.

1.1 Adăugarea unui membru într-o comisie

În baza de date a aplicației este prestabilit un utilizator cu rol de Admin. Acest utilizator poate
fi asignat decanului sau unui administrator care va avea sarcina de a distribui membrii tuturor
comisiilor stabilite de cadrele didactice împreună cu decanul facultății.
Adminul va trebui să introducă numele cadrului didactic în câmpurile aferente, va stabili din ce
comisie va face parte și care va fi rolul acestuia. Denumirile rolurilor și comisiile sunt memorate
fiecare în câte un DropDownList, acest lucru contribuind la comoditatea utilizatorului și ușurința
cu care se vor introduce datele.
În baza de date sunt definite tabele separate pentru fiecare comisie. Când adminul precizează
că un membru va face parte din comisia x, acesta va fi salvat în tabelul cu pricina.

1.2 Updatarea rolului utilizatorilor asignați într-o comisie

La înregistrarea utilizatorului, fiecare va avea funcționalitățile pe care le are un utilizator


limitat și anume cele prezente la student. După ce administratorul stabilește comisiile și membrii
acestora, cei asignați cu rol de membru, secretar sau președinte vor beneficia de funcționalitățile
atașate acestor roluri. Tabelul AspNetUsers din baza de date se va updata cu noii profesori și
secretari, astfel aceștia căpătând noile opțiuni pentru profesori sau secretari.

9
Capitolul 2

Distribuirea studenților în comisii

Acest capitol constitue algoritmul utilizat în asignarea în comisii a studenților care s-au înscris
la susținerea lucrării de licență.

2.1 Tipul algoritmului utilizat

Pentru distribuirea studenților în comisii s-a folosit un algoritm de tip greedy.

„Algoritmii greedy (greedy = lacom) sunt în general simpli și sunt folosiți la probleme de
optimizare, cum ar fi: să se găsească cea mai bună ordine de executare a unor lucrări pe
calculator, să se găsească cel mai scurt drum într-un graf etc. În cele mai multe situații de acest
fel avem:

o mulțime de candidați (lucrări de executat, vârfuri ale grafului etc)


o funcție care verifică dacă o anumită mulțime de candidați constituie o soluție posibilă,
nu neapărat optimă, a problemei
o funcție care verifică dacă o mulțime de candidați este fezabilă, adică dacă este posibil
să completăm această mulțime astfel încât să obținem o soluție posibilă, nu neapărat
optimă, a problemei
o funcție de selecție care indică la orice moment care este cel mai promițător dintre
candidații încă nefolosiți
o funcție obiectiv care dă valoarea unei solutți (timpul necesar executării tuturor
lucrărilor într-o anumita ordine, lungimea drumului pe care l-am găsit etc); ”

10
2.2 Descrierea algoritmului construit pentru distribuire

Un algoritm greedy construiește soluția pas cu pas. Primul lucru de care trebuie să ținem cont
atunci când distribuim studenții în comisii este ca la sfârșitul acestei proceduri, comisiile să aibă
un număr de studenți aproximativ egal, să fie o distribuire uniformă.

Fiecare student care își susține lucrarea de licență are un profesor coordonator. Acest
coordonator poate să fie sau să nu fie într-o comisie. Atunci când distribuim un student într-o
comisie căutăm mai înâi să vedem dacă coordonatorul acestuia este membru în vreo comisie.
Dacă răspunsul este unul pozitiv, atunci distribuim acel student în comisia din care face parte
coordonatorul lui. Dacă în schimb răspunsul este unul negativ, atunci vom distribui studentul în
comisia care are cei mai puțini studenți, menținând astfel balanța dintre comisii.

11
Capitolul 3

Stabilirea datelor de susținere a licențelor

Acest capitol se axează pe modul cum secretarii din fiecare comisie publică data, ora și locul
unde un student trebuie să își prezinte lucrarea de licență. După ce toate comisiile au stabilit data
și sala la care va trebui sa își susțină fiecare student lucrarea sa de licență, secretarii asignați din
toate comisiile au posibilitatea să publice pe site aceste informații.

Pentru ca această funcție sa fie facută într-un mod cât mai ușor am folosit controller-ul
DatePicker din C#. Acest controller dă posibilitatea utilizatorului de a selecta data și ora cu
ajutorul unui drop-down calendar. Acest calendar este unul de tip Gregorian.

Exemplu:

Secretarul are posibilitatea de a vedea toți studenții comisiei din care face parte printr-un drop-
down list, scutind astfel secretarul de a tasta numele studentului, lucru care ar putea duce
câteodată la unele erori.

12
Când un secretar publică data, ora și sala unde va susține studentul lucrarea de licență, aceste
informații vor fi memorate într-un tabel numit Appointments. Pe baza acestui tabel am creat un
model, iar pe baza modelului am creat un controller cu ajutorul căruia contruiesc view-ul
tabelului care va fi accesibil utilizatorilor conectați. Cu alte cuvinte acest view va conține toate
informațiile despre momentul și locul susținerii de licență a studenților.

13
Capitolul 4

Generarea de rapoarte în format PDF

Acest capitol cuprinde modul în care s-a realizat această funcționalitate în cadrul aplicației dar
și tehnologiile folosite pentru a duce la săvârșirea acestui lucru. Rapoartele generate sunt
folositoare datorită faptului ca ele salvează timp și totul se realizază la apăsarea unui buton.

4.1 Tehnologiile utilizate

Pentru realizarea documentului cu notele finale ale studenților am folosit librăria PdfSharp.
Este o librărie .NET open source cu ajutorul căreia poți crea si procesa documente în format
PDF. Conține clase care folosesc la stilizarea documentului pe care dorești să-l faci, precum
clasa XGraphics care ajută la desenarea liniilor cu care poți forma tabele, clasa XFont servește la
setarea fontului.

PdfSharp a fost prima librărie de care am aflat pentru a mă ajuta la crearea de astfel de
documente și din acest punct de vedere am ales-o fără ezitări.

4.2 Modul de creare a raportului

Secretarul are posibilitatea de a genera un raport în format PDF cu notele și situația studenților
la apăsarea unui buton aflat pe pagina unde se găsește situația finală a acestora.

Pentru a crea documentul cu notele finale ale studenților care cuprinde de asemenea și situația
lor, a trebuit să mă conectez la baza de date pentru a lua toate informațiile de care aveam nevoie.
Notele și situația studenților sunt stocate într-un tabel numit FinalGrades.

14
Toate aceste informații le-am memorat într-o variabilă de tip DataSet după care am construit
ulterior fișierul de tip PDF.

Fișierul rezultat este memorat pe disc într-o locație prestabiltă și are numele sub forma:
FinalGrades-h-mm-ss-tt.pdf unde h-mm-ss-tt reprezintă ora la care a fost generat documentul
pentru o evidențiere mai clară a rapoartelor generate.

După generarea documentului secretarul este redirectat către o altă pagina web în care este
înștiințat că documentul a fost creat.

15
Capitolul 5

Prezentarea aplicației și a tehnologiilor folosite

În ultimul capitol voi prezenta ce tehnologii am folosit pentru a crea funcționalitățile


prezentate mai sus, dar și modul de utilizare al aplicației.

5.1 Tehnologii utilizate

5.1.1 C# (.NET)

„ Limbajul C# conține mai multe facilități inovatoare, dintre care cele mai importante se referă
la suportul încorporat pentru componente software. C# dispune de facilitați care implementează
direct elementele care alcătuiesc componentele software, cum ar fi proprietațile, metodele și
evenimentele. Poate cea mai importantă facilitate de care dispune C# este posibilitatea de a lucra
într-un mediu cu limbaj mixt.” conform (http://www.math.uaic.ro/~cgales/csharp/Curs1.pdf)

Am ales folosirea acestei tehnologii pentru că, cum spune și descrierea, oferă suportul necesar
creării de aplicaţii web complexe. Am optat pentru crearea unei aplicaţii web, deoarece am vrut
ca această aplicație să poată fi accesată de pe orice device conectat la internet.

5.1.2 Microsoft Visual Studio 2015

„Visual Studio include un set complet de instrumente de dezvoltare pentru generarea de


aplicații ASP.NET, Servicii Web XML2, aplicații desktop și aplicații mobile. Visual Basic,

2
Extensible Markup Language
16
Visual C++, Visual C# și Visual J# toate folosesc același mediu de dezvoltare integrat (IDE3)
care le permite partajarea instrumentelor și facilitează crearea de soluții folosind mai multe
limbaje de programare. Aceste limbaje permit să beneficieze de caracteristicile .NET Framework
care oferă acces la tehnologii cheie care simplifică dezvoltarea de aplicații web ASP și XML
Web Services cu Visual Web Developer.”, conform
(https://ro.wikipedia.org/wiki/Microsoft_Visual_Studio).

Am ales acest IDE deoarece provine direct de la Microsoft și oferă pachetul complet pentru
orice tip de proiect pe care dorești să îl faci. Mai jos am atașat o imagine ce surprinde o depanare
a aplicației.

Ferestre și scurtături utile:

Fereastra Solution Explorer - descrie structura proiectului

Fereastra Server Explorer – descrie structura bazei de date

CTRL+SHIFT+F9 – Șterge toate break point-urile

CTRL+ALT+V, D – Deschide DOM explorer

3
Integrated development environment
17
CTRL+ALT+E – Excepții

CTRL+ALT+V, C – Deschide consola de JavaScript

CTRL+SPACE – Autocompletare

CTRL+F – Căutarea unui cuvânt în clasa respectivă

5.1.3 SQL Server 2016 Express LocalDB

Pentru baza de date s-a utilizat Microsoft Visual Server Express cel integrat în Microsoft
Visual Studio 2015. Oferă acces rapid la tabelele din baza de date cât și pentru eventualele
proceduri, funcții sau triggere create. Se pot crea tabele noi direct din interfață fără a fi nevoie să
scriem cod.

18
Valorile din tabel se pot edita cu ușurință direct din interfață:

Insert:

19
Ștergere tabel:

Explorarea codului unui tabel și modificarea acestuia:

20
5.1.4 Entity Framework – EF

„Entity Framework este un set de tehnologii în ADO.NET ce suportă dezvoltarea de aplicații


software cu baze de date, aplicații orientate pe obiecte.

Comenzile din ADO.NET lucrează cu scalari (date la nivel de coloană dintr-o tabelă) în timp
ce ADO.NET Entity Framework lucrează cu obiecte (din baza de date se returnează obiecte).”,
conform (http://profs.info.uaic.ro/~iasimin/Special/Curs_EntityFramework.pdf).

5.1.5 ADO.NET Entity Data Model

Este o tehnologie din setul de tehnologii oferit de Entity Framework cu ajutorul căreia am
realizat modelele după tabelele din baza de date construită pentru aplicația web. Această
chestiune poartă numele de Data Base First, întâi se construiește baza de date apoi se generează
pe baza tabelelor, modele ale acestora pe care le folosim pentru a memora informații în baza de
date. Mai jos am atașat imagini care surpind procesul de generare a unui model pe baza unui
tabel existent în baza de date.

21
După ce setăm numele, alegem ce tip de model vrem să creăm. În cazul aplicației am ales prima
variantă, care se referă la construirea modelului pe baza unui tabel deja existent în baza de date.

22
Alegem baza de date:

23
Iar la ultimul pas, alegem tabelul pe baza căruia generăm modelul:

Această tehnologie ne-a ajutat foarte mult în ușurarea manipulării informațiilor din baza de
date.

5.1.6 Microsoft.AspNet.Razor

„Razor este o simplă sintaxă de programare pentru încorporarea codului adresat serverului în
paginile web.
Sintaxa Razor se bazează pe ASP.NET, parte a tehnologiilor Microsoft.NET care este special
conceput pentru crearea de aplicații web.
24
Sintaxa Razor oferă toată puterea de ASP.NET, dar folosește o sintaxă simplificată, care este
mai ușor de învățat dacă ești un începător, și te face mai productiv dacă ești un expert.

Paginile web Razor pot fi descrise ca pagini HTML 4cu două tipuri de conținut: conținut de cod
HTML și conținut de cod Razor.” , conform
(http://www.w3schools.com/aspnet/razor_syntax.asp).

Principalele reguli de sintaxă Razor în cadrul limbajului C#

Blocurile de cod Razor sunt cuprinse între @{ ... }


Expresiile (variabilele și funcțiile) încep cu simbolul @
Orice linie de cod se termină cu simbolul punct și virgulă: „ ; ”
Variabilele sunt declarate utilizând cuvântul „var”
Șirurile de caractere sunt delimitate de ghilimele
Codul din C# este case sensitive
Fișierele web C# au extensia .cshtml

Exemplu de cod:

4
HyperText Markup Language
25
5.1.7 Microsoft.Aspnet.MVC
„Framework-ul ASP.NET MVC implementează șablonul architectural Model-View-Controller
pentru dezvoltare de aplicații. Șablonul MVC 5a fost introdus inițial în anul 1979 de către Trygve
Reenskaug care lucra la limbajul Smalltalk. Principiul este de a împarți aplicația în trei părți
distincte: controller-ul (primește și tratează intrarea), modelul (conține logica aplicației) și view-
ul (generează ieșirea). În contextul aplicațiilor web, intrarea este cererea HTTP.

5
Model-View-Controller
26
Avantaje ASP.NET MVC

Controlul integral asupra HTML-ului redat.


Separarea conceptelor (separation of concerns SoC).
Folosirea cu ușurință a programării bazată pe teste (Test Driven Development
- TDD).
Respectarea designului fără stare a web-ului.
Include o componentă de mapare a URL6-urilor pentru crearea de aplicații cu
URL-uri simple, permițând optimizarea pentru motoarele de căutare (SEO7).
Suportă motoare de vizualizare cum ar fi NVelocit, Brail, NHaml.
Nu folosește modelul existent în web forms de post-back pentru interacțiunea
cu serverul. Acest model a fost înlocuit cu direcționarea interacțiunii
utilizatorului la o clasă Controller, astfel se realizează separarea conceptelor și
ușurința testării.
Framework extensibil. Framework-ul MVC este proiectat pentru a fi ușor de
înlocuit și personalizat (de exemplu este posibil ca un alt motor de vizualizare
să fie conectat sau regulile de rutare să fie personalizate). De asemenea
suportă injectare de dependențe (dependency injection) și modele de
containere IOC 8(Windsor, Spring.Net, NHibernate, etc). ”, conform
(http://www.slideshare.net/radusarghie/aspnet-mvc-2233212).

Am ales să construim aplicația pe baza șablonului MVC pentru o modularizare eficientă a


acesteia. Astfel încât atunci când vrem să adăugăm noi funcționalități aplicației să o facem într-
un mod cât mai organizat și ușor. Cu ajutorul lui Microsoft Visual Studio 2015 am generat
șablonul MVC pentru aplicația noastră și am adăugat noi funcționalități.

5.2 Prezentarea aplicației

Aplicația construită de noi pune la dispoziție funcționalitățile descrise în cele patru capitole cât
și altele dezvoltate de colega mea. Pentru o înțelegere cât mai clară a modului cum funcționează
componentele construite de mine în cadrul aplicației voi adăuga la fiecare dintre acestea câte o
imagine cu ceea ce poate vizualiza un utilizator în timpul folosirii acestui site de gestionare a
licențelor.

6
Uniform Resource Locator
7
Search Engine Optimization
8
Inversion of Controller
27
Voi începe cu paginile principale, care sunt vizibile tuturor și care au fost construite la comun
de către mine și colega mea Amarandei Sandra-Maria.

5.2.1 Pagina Home:


Acest view conține câteva informații despre Facultatea de Informatică și o direcționare către
site-ul FII. Totodată am adăugat aici și câteva scurtături pentru webmail-ul studenților, pagina
principală eSIMS și pagina cu datele profesorilor din cadrul Facultății.

28
5.2.2 Pagina Contact:
Oferă date cu privire la Facultatea de Informatică Iași.

29
5.2.3 Pagina Register:
Înregistrează doar utilizatorii care aparțin domeniului @info.uaic.ro.

Atunci când un utilizator se înregistrează pe site, acesta nu se poate autentifica până când
emailul este confirmat. Utilizatorul va primi pe adresa de email un link de activare a contului.
După ce acesta s-a autentificat folosind linkul trimis pe email, valoarea din câmpul
EmailConfirmed din tabelul AspNetUsers se va schimba din False în True. Atunci când
utilizatorul dorește să se autentifice pe site având email-ul neconfirmat, acest proces nu se
întâmplă și utilizatorul este înștiințat de ce.

30
5.2.4 Pagina Log in:
După înregistrare, utilizatorul se conectează la aplicație prin intermediul acestei pagini dacă are email-
ul confirmat.

31
5.2.5 Pagina Forgot your password:
Utilizată pentru resetarea parolei și funcționează asemănător cu înregistrarea pe site.

Utilizatorului îi este trimis pe email un link care îl va redirecționa către o pagină web ce îl va
ajuta să își schimbe parola.

32
5.2.6 Pagina My Account:
Când un utilizator se autentifică pe site, se identifică mai întâi ce rol are utilizatorul. Pentru
fiecare rol în parte: admin, profesor, secretar, student, pagina web My Account va cuprinde
diferite funcționalități asociate rolului respectiv. Voi începe în a arăta pentru fiecare tip de rol în
parte ce funcționalități am dezvoltat, evidențiându-le în roșu pentru a face o distincție între cele
dezvoltate de colega mea.

Pentru Admin:

La înregistrarea utilizatorului, fiecare va avea funcționalitățile pe care le are un utilizator


limitat și anume cele prezente la student. După ce administratorul stabilește comisiile și membrii
acestora, cei asignați cu rol de membru, secretar sau președinte vor beneficia de funcționalitățile
atașate acestor roluri. Tabelul AspNetUsers din baza de date se va updata cu noii profesori și
secretari, astfel aceștia căpătând noile opțiuni pentru profesori sau secretari.

33
Acesta este Index Viewul asociat tabelului Commissions din Baza de Date, după cum se
observă, adminul are dreptul de Creare, Editare și Ștergere asupra acestor date. Vom vedea într-o
altă imagine despre un alt rol în care aceste funcționalități nu sunt prezente.

Exemplu de Ștergere:

34
Exemplu de Editare:

Exemplu de Creare:

Când un nou membru este asignat de către admin, acesta este trecut într-un tabel în care se ține
evidența tuturor membrilor din comisii dar și în tabelul cu comisia cu numărul asociat. Totodată
se updatează și tabelul AspNetUsers cu noile roluri pentru utilizatorii respectivi.

35
Adminul poate vedea de asemenea și programările studenților:

Pentru Secretar:

Secretarul, la fel ca și profesorii și studenții, au dreptul de a vizualiza membrii comisiilor, dar


nu au dreptul de creare, ștergere și editare asupra lor precum are adminul.

36
Secretarul are dreptul de creare, ștergere și editare asupra programărilor de susținere a
licențelor:

Ștergere:

Creare și Editare:

37
De asemenea secretarii au posibilitatea de a distribui studenții în comisii:

Apăsând butonul „Distribute” se execută algoritmul greedy de distribuire a studenților în


comisiile prezente.

O altă funcționalitate a secretarilor este cea de generare a fișierelor în format PDF cu notele
finale ale studenților. Totul se face apăsând butonul „Download to PDF”:

38
Un asemenea raport arată astfel:

Pentru Studenți:

La fel ca și secretarii și profesorii, studenții au doar dreptul de vizualizare asupra membrilor


comisiilor cât și asupra programărilor făcute de secretarii din comisiile din care fac parte.

39
Contribuții

Prin dezvoltarea acestei aplicații web împreună cu colega mea Amarandei Sandra-Maria am
reușit să centralizăm o mare parte de funcționalități dedicate cadrului didactic dar și studenților
menite să simplifice gestionarea datelor la nivel de facultate. Cu ajutorul suitei de tooluri
Microsoft am dezvoltat această aplicație pe baza șablonului MVC. La realizarea proiectului a
contribuit și profesorul nostru coordonator științific Mihai-Alex Moruz care ne-a oferit indicații
detaliate despre cum putem dezvolta aplicația.

40
Concluzii

Pot spune că în realizarea proiectului am învățat foarte multe lucruri, atât în legatură cu
programarea dar și în legatură cu comunicarea și lucrul în echipă. La început partea dificilă a fost
pe ce cale să mergem cu dezvoltarea proiectului, ce limbaj de programare să folosim, Java sau
C#, ce e mai bine să utilizăm, Web Forms sau modelul MVC, cum anume împărțim sarcinile,
cum ar trebui să construim baza de date, stabilirea tipurilor de utilizatori, etc. Am învățat că prin
comunicare continuă și deschisă reușești să ai cele mai bune rezultate lucrând într-o echipă.

Tema propusă de coordonatorul nostru științific, Mihai-Alex Moruz, ni s-a părut foarte utilă și
interesantă mie și colegei mele. Mi-a placut foarte mult ideea de Înscriere online a licențelor
deoarece aplicația reușește să înglobeze tehnologii din toate categoriile care ar trebui utilizate în
realizarea acesteia: baze de date, modelul MVC, javascript, Razor Engine, C#, BootStrap etc.

Doresc ca această aplicație să fie de folos, să-și atingă scopul propus și să fie utilizată de către
Facultatea de Informatică. Eu și colega mea dorim să adăugăm noi funcționalități acestei lucrări
și să o întreținem în perioada ce va urma. Construirea funcționalităților a fost la început cam
dificilă, deoarece trebuia să fim foarte atenți cu drepturile ce le ofeream unui utilizator. Dar în
urma unei documentări mai detaliate am reușit să ajungem la un comun acord cu tehnologiile
folosite care ne-au ușurat munca. Dezvoltarea aplicației s-a realizat în paralel, în sensul că pe
măsură ce făceam câte o nouă funcționalitate, o dădeam și celuilalt. Astfel s-a reușit o construire
armonioasă și fără prea mari probleme a acestui proiect. Ceea ce a fost mai dificil la început s-a
dovedit a fi dependențele de cod, în ideea că a trebuit să stabilim niște reguli exacte după cum
vom dezvolta aplicația și să cădem la comun accord cu privire la structura bazei de date și a
stilului de codare. Facilitățile pe care le oferă acest proiect în momentul actual cu siguranță pot fi
extinse. Ceea ce vrem noi, eu și colega mea este să mai adăugăm următoarele funcționalități:

• construirea unui modul care să verifice automat lucrările susținute la licență dacă sunt plagiate;

• realizarea unui nou formular care va fi trimis către secretariat pentru eliberarea situației școlare,
în acest mod, secretariatul va putea notifica studenții cu privire la perioada în care își pot ridica
fișele matricole deja scoase la imprimantă;

• o realizare mai prietenoasă a tabelelor afișate în paginile aplicației (datorită implementărilor


multiple nu am reușit să ne axăm prea mult pe partea vizuală);

41
Bibliografie

http://www.math.uaic.ro/~cgales/csharp/Curs1.pdf

http://vega.unitbv.ro/~andonie/Cartea%20de%20algoritmi/cap6.htm

http://www.asp.net/mvc/overview/older-versions/using-the-html5-and-jquery-ui-datepicker-
popup-calendar-with-aspnet-mvc/using-the-html5-and-jquery-ui-datepicker-popup-calendar-
with-aspnet-mvc-part-4

https://ro.wikipedia.org/wiki/Microsoft_Visual_Studio

http://profs.info.uaic.ro/~iasimin/Special/Curs_EntityFramework.pdf

http://www.w3schools.com/aspnet/razor_syntax.asp

http://www.slideshare.net/radusarghie/aspnet-mvc-2233212

http://demos.telerik.com/aspnet-mvc/datetimepicker/index

http://demos.telerik.com/aspnet-mvc/timepicker/index

https://docs.asp.net/en/latest/tutorials/first-mvc-app/

http://stackoverflow.com/questions/17712888/mvc-razor-datepicker-and-timepicker

http://www.asp.net/mvc/overview/getting-started/introduction/adding-a-controller

http://www.asp.net/mvc/overview/older-versions-1/controllers-and-routing/creating-a-controller-
cs

https://msdn.microsoft.com/en-
us/library/dd410269%28v=vs.100%29.aspx?f=255&MSPPError=-2147217396

http://www.codeproject.com/Articles/207797/Learn-MVC-Model-View-Controller-step-by-step-
in

http://www.w3schools.com/aspnet/mvc_htmlhelpers.asp

http://www.asp.net/mvc/overview/older-versions-1/views/creating-custom-html-helpers-cs

http://www.codeproject.com/Tips/738090/ASP-NET-MVC-Confirm-Registration-Email

42

S-ar putea să vă placă și