Proiect de licenț ă [631362]

Universitatea „Ștean cel Mare” Suceava
Facultatea de Inginerie electrică și Ingineria Calculatoarelor
SUCEAVA, 2015

Proiect de licenț ă

Coordonator: Student: [anonimizat]. Danubianu Mirela Petruneac Timotei

Sistem informatic pentru generare a fiș elor de
autoevaluare pentru cadrele didactice (F09)

Cuprins

Argument ………………………….. ………………………….. ………………………….. ………………………….. ……………. 1
1. Analiză teoretică ………………………….. ………………………….. ………………………….. ……………………….. 2
1.1. Descrierea problemei ………………………….. ………………………….. ………………………….. ………….. 2
1.2. Abordare teoretică ………………………….. ………………………….. ………………………….. ………………. 3
1.2.1. Baza de date ………………………….. ………………………….. ………………………….. ……………….. 4
1.2.2. HTML ………………………….. ………………………….. ………………………….. ……………………….. 7
1.2.3. CSS ………………………….. ………………………….. ………………………….. ………………………….. . 8
1.2.4. JavaScript ………………………….. ………………………….. ………………………….. …………………… 9
1.2.5. ASP.NET MVC ………………………….. ………………………….. ………………………….. ………… 10
2. Abordare practică ………………………….. ………………………….. ………………………….. …………………….. 11
2.1. Contextul problemei. Crearea bazei de date ………………………….. ………………………….. ……… 11
2.2. Aplicația ………………………….. ………………………….. ………………………….. ………………………….. 16
2.3. Manual de utilizare ………………………….. ………………………….. ………………………….. …………… 21
2.3.1. Instalare ………………………….. ………………………….. ………………………….. ……………………. 21
2.3.2. Admin istrator ………………………….. ………………………….. ………………………….. ……………. 23
2.3.3. Profesor ………………………….. ………………………….. ………………………….. ……………………. 29
3. Concluzie ………………………….. ………………………….. ………………………….. ………………………….. …… 33
Bibliografie ………………………….. ………………………….. ………………………….. ………………………….. ……….. 34

1

Argument

Trăim într -un timp în care schimbarea este considerată o variabilă constantă. Din cauza
acestor continue schimbări este nevoie de sisteme de management aproape în orice domeniu
de activitate, mai ales când sistemele de calcul sunt folosite din ce în ce mai mult în aproape
fiecare domeniu și di n ce în ce mai multe procese sunt automat e.
Pentru a ține evidența mai u șor a performanțelor didactice este nevoie de o aplicație
care să faciliteze acest lucru.
Aplicația este necesară deoarece se poate în cadrul acesteia se centralizea ză datele și
sunt gestionate cu ușurință. Se evită cu o astfel de aplicație probleme legate de corectitudinea
informațiilor cu privire la activitatea didactica și cercetare deoarece datele care s e prelucrează
sunt într -un singur loc și nu este nevoie de acces la mai multe resurse.
Se poate lua ca un exemplu foile de calcul. Se poate realiza gestiune cu ajutorul
acestora, însă fiecare foaie de calcul este un fișier separat, scris de către o persoa nă și trimis
unei persoane care le gestionează. În aceste fișiere pot exista gr eșeli, date incoerente. Datele
din aceste fișiere pot avea organizare diferită pentru fiecare în parte. Este mai dificil de lucrat
în acest mod.
O aplicație cu o bază de date poate simplifica mult acest proces. Toate datele sunt într –
un singur loc, toate au aceeași organizare, iar pentru cel care se ocupă de gestiunea lor este
mult mai simplu să manipuleze astfel de date.
O mare parte din proble mele legate de corectitudinea datelor și coerența acestora sunt
gestionate de către SGBD (Sisteme de gestiune a bazelor de date) după ce se stabilesc unele
reguli, fără a fi nevoit ca cel care se ocupă de gestiune să trebuiască să verifice ca în cazul foil or
de calcul sau a altor fișiere.

2
1. Analiză teoretică

1.1. Descri erea problemei

Autoevaluarea activităților didactice se face după cinci criterii:
 Performa nțe didactice
 Cercetare științifică
 Recunoaștere națională și internațională
 Lucrul cu studentul
 Implicare în viața comunității
Fiecare din aceste cinci criterii are câte o mulțime de indicatori, de exemplu c ărți
publicate sau revizuite. Se calculează câte un punctaj pentru fiecare indicator cu ajutorul unor
formule. Aceste formule folosesc variabile precum numărul de autori, numărul de pagini ale
respectivei publicații, numărul de exemplare, numărul de țări, numărul de ore pl ătite pentru
cercetare, factorul de impact.
Punctajele totale pentru fiecare criterii se adună într -un punctaj care determină
activitatea respectivului cadru didactic.
Aplicația funcționează după două scenarii: utilizator administrator și utilizator cadru
didactic. După ce utilizatorul se autentifică, este verificat tipul acestuia. Administratorul are
mai multe drepturi față de ceilalți ut ilizatori. Acesta poate înregistra noi utilizatori, dându -le
rolul de cadru didactic sau de administrator. De asemenea, poate administra conturile acestor
utilizatori modificând detaliile sau le poate șterge.
Administratorul va avea acces la i ndicatorii fiecărui criteriu, putând ad ăuga indicatori,
parametri fiecărui indicator (de exemplu număr de pagini, număr de exemplare, numărul de
autori pentru lucrări publicate, scorul relativ de influență), și formula cu care se calculează
punctajul. De asemenea, administratorului îi este permis să modifice sau să șteargă acești
indicatori.
Utilizatorul de tip administrator va putea accesa un raport cu situația cadrelor didactice :
cadrul didactic și punctajele acestuia.
Ceilalți utilizatori, de tip cadr u didactic, după ce se autentifică, vor putea să completeze
datele cu ajutorul cărora se vor calcula punctajele. Pentru fiecare criteriu se va completa
detaliile aferente indicatorilor pentru care se dorește actualizarea punctajului. De exemplu,
pentru cri teriul întâi, „Performanțe didactice”, pentru indicatorul „Publicare manual
preuniversitar în străinătate (în limbă străină, tipărit)” se va completa denumirea manualului,
numărul de autori și numărul de exemplare.
De asemenea, acest tip de utilizator poate consulta situația vizualizând datele introduse
și punctajele aferente calculate. Dacă se observă că aceste date nu sunt corecte dintr -un anumit
punct de vedere, acestea pot fi modificate.

3
Cadrul didactic va avea acces la un raport cu informațiile rez ultate din datele introduse:
indicatorii pentru care s -au completat detalii, detaliile completate, punct ajele obținute pentru
acești in dicatori și punctajele totale.
Deoarece acesta este un sistem închis și nu este disponibil pentru publicul larg, doar
utilizatorii de tip administrator pot înregistra alți utilizatori. De asemenea, informații referitoare
la criterii, indicatori, formulele cu ajutorul cărora se cal culeaz ă punctajele nu pot fi manipulate
decât de acest tip de utilizator.

1.2. Abordare teoretică

Din punct de vedere tehnic, putem spune că internetul este un mediu programabil, care
permite personalizarea în masă tuturor utilizatorilor prin implementarea unei game mari de
aplicații. Paginile web moderne permit afișarea unui conținut personalizat de u tilizator conform
preferințelor și setărilor individuale. Componente importante ale un ui web site modern sunt
browsere flexibile (aplicații care permit utilizatorilor să primească și să interac ționez e cu
conținutul unei pagini web din contextul unui website ) și aplicații web. Amândouă aceste
componente sunt disponibile tuturor. Un aspect foarte important este faptul că paginile web
moderne permit capturarea, procesarea, stocarea și transmisia de informații. Acest lucru se face
prin aplicațiile web.
Cel mai ușor accesibile aplicații sunt aplicațiile web. Acest fapt se datoreaz ă în cea mai
mare parte aplicațiilor de tip borwser. Acestea există aproape pe orice dispozitiv de calcul. O
aplicație care rulează într -un browser este mai convenabil de folosit deoarec e nu mai trebuie
descărcată sau instalată pe acel sistem. Un alt avantaj al aplicațiilor web contra aplicațiilor
standard este metoda de distribu ție. O aplicație care rulează în browser nu trebuie scrisă pentru
mai multe platf orme, deoarece este compatibil ă.
Așadar, aplicațiile web sunt programe care permit utilizatorilor să trimită și să
primească date de la sau la o bază de date prin internet, folosind unul din browserele
disponibile. Informația este prezentată utilizatorului după ce este generată dinamic în format
specific aco stor browsere (de exemplu HTML) de către aplicațiile web, care rulează pe un
server web (sisteme de calcul care „servesc” pagini web) .
Aplicațiile web interoghează serverul pentru informații și generează dinamic
documente care sunt a fișate clientului. Documentul este generat într -un format standard pentru
a putea fi interpretat de toate browserele. O formă de script care rulează la client, în browser,
este JavaScript. Browserul interpretează codul și permite schimbarea dinamică a elementelor
din paginile web.
În ciuda avantajelor, aplicațiile web ridică un num ăr de probleme de securitate, în
principal rezultate din cod sursă scris inadecvat. S -ar putea avea astfel acces la baze de date ce
conțin informații sensibile.
Așadar, pentru a dezvolta o aplicație web, de obicei, sunt folosite blocuri de programe
care rulează pe partea de server și blocuri de programe care rulează pe partea de client. Partea
de client, care folosește tehnologii precum HTML, JavaScript, se ocupă de prezentar ea

4
informației, pe când partea de server, unde se folose sc tehnologii precum ASP sau PHP, se
ocpă de logica aplicației, de primirea și stocarea informației.
În figura de mai jos este prezentat modelul aplica ției web. Primul strat este în mod
normal un browser sau interfața cu utilizatorul. Al doilea strat îl reprezintă instrumentele de
generare în mod dinamic a conținutului, precum Java servlets (JSP) sau Active Server Pages
(ASP). Cel de -al treilea strat este baza de date, în care se stocheaz ă datele.
După cum s -a observat, în aplicație se poate delimita ușor două parți: baza de date și
aplicația cu care se pot consulta și manipula datele din această bază de date.

1.2.1. Baza de date

Baza de date reprezintă o colecție de date organizate in tipuri de obiecte precum tabele,
interog ări, rapoarte, vederi conform unui model abstract, care reflectă realitatea și pe care se
pot efectua unele procesări pentru a se obține informații. Datele organizate trebuie să fie ușor
accesate și administrate.
Folosind baze de date se trece peste problemele legate de utilizarea fișierelor. Printre
aceste probleme se numără: redundanț a și inconsistenț a a datelor, necesitatea unor programe
care să poată citi fișierele de date, datele nu sunt centralizate, ci sunt izolate în diferite f ișiere,
care pot avea diferite formate, constrânger ile între date nu pot fi satisfăcute. Mi mult, folosind
baze da date mai mut de o singură persoana poate accesa aceleași date în același timp. Client
Server –
administrează cereri
și răspunsuri
Server pentru
aplicații web
Server de
baza de date
Sisteme server
internet
Figura 1. Modelul aplicației web

5
Bazele de date sunt clasificate după abordarea organiza țională . Cel mai des întâlnit tip
de bază de date este cel relațional, bază de date cu mai multe tabele legate între ele folosind
câmpuri cheie, în care data poate fi reorganizată și accesată în diferite moduri. În mod obișnuit,
bazele de date conțin agregări de date, combinând date din mai multe tabele. Unul dintre cele
mai importante aspecte ale unei baze de date relaționale este modul în care datele din tabele
diferite sunt legate unele de altele.
SQL este acronimul pent ru Structured Query Language . Este, deci un limbaj folosit
pentr u a comunica cu o baza de date, baza de date fiind o colec ție organizata de date. Conform
standardului ANSI ( Amer ican National Standards Institute ), SQL este limbajul standard pentru
sistemele de gestiune ale bazelor de date relațio nale. Decl arațiile SQL sunt cunoscute de baza
de date și le poate interpreta. Aceste declarații sunt folosite pentru a executa sarcini precum
actualizare de date într -o bază de date sau consultare datelor. Cu toate că toate sistemele de
gestiune ale bazelo r de date folosesc standardul SQL, o parte dintre ele au extensii proprii pe
care le pot folosi.
Comenzile din limbajul standard, precum „SELECT”, „INSERT”, „UPDATE”,
„DELETE”, „CREATE”, „DROP” pot fi folosite pentru a realiza aproape tot ce este novoie de
realizat cu o bază de date.
Ca un exemplu se poate folosi o pagină web care conține o cutie de dialog în care se va
introduce un text pentru căutare de produse și un buton. După este apăsat, se va genera o altă
pagină care va conține rezultatele căutării. Dacă un utilizator va introduce cuvântul „electric” ,
serverul web poate fo losi urm ătoare a instrucțiune pentru a primi lista respectivă de produse:
SELECT * FROM produse WHERE nume LIKE ‘%electric%’
Cu alte cuvinte, această comandă va primi din tabelul „produse” toate înregistrările care
conțin în nume caracterele „electric”.
SQL are trei componente majore: limbajul de definire a datelor, limbajul de manipulare
a datelor și limbajul de control al datelor.
Limbajul de definire a datelor (DDL – Data Defini tion Language) conține comenzi mai
rar utilizate. Aceste modifică structura actuală a bazei de date, schema, nu conținutul. Cele mai
des utilizate comenzi DDL sunt pentru creare de tabel („CREATE TABLE”), pentru a modifica
structura tabelului („ALTER TABLE ”) și pentru a șterge un tabel („DROP TABLE”).
Limbajul de manipulare a datelor ( DML – Data Manipulation Language) conține setul
de in strucțiuni SQL cele mai de des folosite. Acestea manipulează conținutul bazei de date
dintr -o formă în alta. Cele mai utilizate comenzi DML sunt cele cu care se pot obține informații
din baza de date („SELECT”), pentru a introduce date în tabel („INSERT”), pentru a modifica
datele deja existente care nu mai sunt actuale di n tabel („UPDATE”) și pe ntru a șterge datele
de care nu mai este nevoie („DELETE”).
Limbajul de control al datelor ( DCL – Data Control Language) este utilizat pentru a
administra accesul utilizat orilor la baza de date. DCL conține două comenzi care stau la baza
modelului de securitate al bazei de date relaționale. „GRANT” este comanda cu care se acordă
privilegii unui utilizator sau a unui rol creat ce conține utilizatori, iar „REVOKE” este comand a
cu care aceste privilegii sunt abrogate.

6
Structura unei comenzi SQL pare similară cu limba engleză. Se începe cu declararea
acțiunii urmată de clauza care descrie obiectul pe care se execută comanda, apoi alte clauze cu
instrucțiuni adiționale. În contin uare se poate observa structura instrucțiunii SELECT :

Figura 2. Instrucțiunea SELECT [1]

În altă formă, se poate scrie această in strucțiune după cum urmează:
SELECT [ hint ] [ { DISTINCT | ALL ]
{ * | { [schema.] { table | view } .*
| expr [[AS] c_alias] } [, {
| [schema .] { table | view } .*
| expr [[AS] c_alias] } ]…}
FROM [schema .] { "("subquery [order_by_clause] ")"
| table | view }[ t_alias ]
[ WHERE condition][ { [ START WITH condition ]
CONNECT BY condition |
GROUP BY expr [, expr]… |
[HAVING condition] } ] [1]

7

1.2.2. HTML

HTML este acronimul de la HyperText Markup Language. Este un standard pentru a
crea pagini web. Limbajul a fost bazat pe un format standard la nivel internațional, SGML
(Standard Generalized Marup Language), folosit pentru procesare de text.
Datorită faptului că fișierele HTML sunt scrise in text ASCII (American Standard Code
for Information Interchange) pagina we b se poate crea folosind un program de procesare de
text. Pentru a se putea vizualiza pagina, însă este nevoie de un browser deoarece acesta
procesează codul HTML și generează documentul pe care îl afișează.
Limbajul con ține d iferite elemente care permit b rowserului sa înțeleagă amplasarea
generală, fundalul, titlul, listele, textul, grafica de p e pagină. După funcția pe care o au în
document, elementele limbajului sunt clasificate în elemente de început (head), unde se
identifică proprietăți ale întregului document și elemente pentru conținut (body).
Aceste elemente au simboluri de început și simboluri de sfârșit. Conținutul elementelor
va fi introdus între aceste simboluri. De asemenea, elementele pot avea atribute, care au ca rol
definirea stilului în c are se afișează con ținutul acelor elemente: poziția textului, identificarea
sursei unei imagini, identificare unei legături către documentul în sine, o parte din document
sau un alt document.
HTML are o singură utilizare: crearea de pagini web.
HTML5 intr oduce elemente și atribute care reflectă pagini web moderne. Unele dintre
ele înlocuiesc utilizarea blocurilor generice ( <div>), înlocuiesc elementul <object> cu elemente
mai specifice : <audio >, <video>.
Sintaxa HTML5 nu mai este bazată pe standardul SGML, chiar dacă încă sunt
asemănări intre ele.
HTML5 este conceput astfel încât browserele vechi să poată ignora noile elemente ale
standardului sau să le afișeze ca elemente standard de introducere de text . Acesta a fost
conceput pe baza ideii de compatibilitate cu standardele mai vechi.
Printre elementele specifice noului standard se numără: article, audio, canvas,
command, data, datalist, details, email, figcaption, figure, footer, header, mark, meter, nav,
output , progress, section, source, summary, time, track, video .[2]
Un aspect important introdus în HTML5 sunt validările. Pentru a nu lăsa ca să se trimită
la server date incomplete, se poate adăuga atributul „required”. Până acum aceste verificări
trebuiau realizate în JavaScript , însă, dacă se folosesc browsere moderne, care știu să
interpreteze aceste noi atribute nu mai este nevoie de JavaScript pentru verificarea la client.
Aceste verificări au la bază un serviciu propus de World Wide Web Consortium (W3 C),
Markup Validation Service. Cu toate că poate asigura calitatea paginilor web nu este o măsura
completă pentru conformarea standardului web .[3]

8
1.2.3. CSS

CSS sau Cascading Style Sheets este un limbaj folosit pentru a descrie formatarea și
designul unui document scris în HTML. De exemplu, poate defini fontul, culorile, marginile,
liniile, înălțimea, lățimea, fundalul, poziționarea.
Cu toate că aceste atribute pot fi marcate și în HTML, folosind CSS devine o practică
mai bună. Un simplu motiv este că în cazul HTML, pentru mai multe elemente din pagină cu
aceleași caracteristici acestea vor trebui specificate pentru fiecare element în parte, în timp ce
folosind CSS aceste caracteristici sunt specificate o singura dată pentru toate elementele.
HTML este fol osit pentru a structura conținutul, iar CSS pentru formatarea conținutului.
Printre beneficiile concrete aduse de CSS se numără:
 Controlul designului a mai multor documente HTML folo sind un singur
document CSS
 Control mai precis asupra designului
 Separarea conținutului de prezentare
Se folosesc selectoare pentru a specifica partea codului pentru care se aplică stilul
declarat în fișierul CSS. Acestea se pot aplica tuturor elementelor de un anumit tip (table) sau
elementelor specificate prin atribute folosin d clase (class) pentru a ident ifica un grup de
elemente din d ocument sau identificatori (id) pentru a identifica un singur element din acel
document. Se pot folosi și pseudo -clase. Acestea sunt utilizate pentru a specifica stilul
elementelor pe baza inform ațiilor care nu sunt în structura documentului („:hover” – doar când
utilizatorul specifică un element vizibil, de obicei folosind cursorul mouse -lui).
Pentru a se obține flexibilitate mai mare, se pot grupa și selectorii, ordinea lor fiind
importantă. De exemplu,
.clasa div {color: green}
Va aplica culoarea verde tuturor elementelor de tip „div” din clasa „clasa”, iar
.clasa #id {color: green}
Va aplica culoarea verde doar elementului identificat prin identificatorul „id” din clasa
„clasa”.
Un element important al CSS este moștenirea. Proprietă țile unui element nu sunt
aplicate doar elementului în sine, dar și elementelor desc endente lui. În general, elementele
moștenesc proprietăți legate de text. Proprietăți care nu pot fi moștenite sunt: fundalul,
conturul, modul în care este afișat (display), poziționarea (float și clear), înălțimea și lățimea,
alinierea. Moștenirea face ca unele proprietăți să nu fie declarate în mod repetat pentru fiecare
element.
Cu toate că aduce avantaje semnificative, sunt și l imitări în folosirea CSS, printre care:
nu se poate selecta un părinte al unui element, pozi ționarea verticală este neintuitivă sau
imposibilă, nu există suport pentru expresii, pentru a specifica o parte din text trebuie modificat
codul HTML.

9
1.2.4. JavaScript

JavaScript este un limbaj dezvoltat de Netscape. Inițial purta numele de LiveScript,
descriind probabil mai bine scopul pentru care a fost dezvoltat, și anume pentru a permite
dezvoltatorilor să creeze pagini web interactive, dinamice. JavaScript poate interac ționa cu
codul HTML.
Cu toate că JavaScript este un limbaj complex, cu structuri și caracteristici
asemănătoare limbajului Java, de unde i -a fost schimbat numele după ce Java a dev enit popular,
nu toate browserele suportă JavaScript, sau nu suport ă tot se tul de instrucțiuni. De exemplu ,
browserele dezvoltate de Netscape pot folosi întregul set de instrucțiuni, însă Internet Explorer,
dezvoltat de Microsoft , sau anumite versiuni ale Internet Explorer pot interpreta doar un
subset, JScript.
JavaScript este un limbaj interpretat de browser, deci nu este nevoie de compilatoare.
Este o parte a paginii web care se execută la client împreună cu HTML și CSS. În browserele
mai recente este posibil ca pentru performan țe mai bune să existe compilatoare pentru
JavaScr ipt. Browserul decide dacă programul va fi compilat sau interpretat sau dacă o parte din
program va fi compilat. Această funcționalitate face ca JavaScript să fie mai rapid. Există și
JavaScript care rulează pe server, cunoscut sub numele de Node.js.
Acest a este asemănător ca sintaxă limbajului C, conținând structuri decizionale,
repetitive. O diferență față de C este că nu mai este necesar simbolul „;” pentru a marca sfârșitul
de instrucțiune. JavaScript este un limbaj orientat pe obiect. Aceste obiecte su nt vectori
asociativi, care pot fi accesați în două moduri: obj.x = 3 și obj[‘x’] = 3.
În JavaScript funcțiile sunt obiect predefinite. Acestea au metode precum .call() și
.bind()[4].
De cele mai multe ori JavaScript este folosit pentru a face o pagină HTML interactivă
(Dynamic HTMML). Câteva moduri de utilizare în acest sens sunt:
 Încărcarea conținutului unei pagini sau trimiterea datelor la server fără a
reîncărca pagina
 Animații în pagina web
 Conținut interactiv (jocuri, conținut audio sau video)
 Verificări pentru datele introduse în formulare pentru a se asigura corectitudinea
lor înainte de a fi trimise la server
 Transmiterea de informații despre activitățile utilizatorului, precum activități de
navigare
Se poate folosi acest limbaj și în alte medii. Unul dintre acestea poate fi fi șierele .pdf,
unde se poate crea fisiere intereactive , se pot crea formulare prin care se colecteaz ă date. De
asemenea, es te posibil de utilizat JavaScript pentru a controla componente hardware în
dispozitive înglobate. Aces t lucru este posibil datorită faptului că specificațiile
microcontrolerelor s -a mărit în ultima perioadă de timp. Sunt două implementări principale
care folosesc JavaScript pentru controla componentele hardware în dispozitive înglobate:
Espruino, translato r pentru microcontrollere cu putere mică și Tessel, microcontroller cu WiFi
integrat [5].

10
1.2.5. ASP.NET MVC

ASP.NET este un framework open source dezvoltat de Microsoft pentru a realiza pagini
web dinamice, aplicații web și servicii web. Spre deosebire de JavaScript, c are rulează la client,
acesta r ulează pe server.
MVC este un acronim pentru model -vedere -controller. APS.NET, ASP.NET MVC,
ASP.NET Web API și ASP.NET Web Pages sunt combinate într -un singur framework, numit
MVC 6.
Modelul MVC define ște trei st raturi logice pentru aplicația web:
 Model (logica aplicației)
 Vedere (stratul în care informația este afișată utiliz atorului)
 Controller (controlul intrărilor)
Un model reprezintă starea unui aspect particular al aplicației. De cele mai multe ori
modelul este o bază de date sau un fișier care conține date. Un controller se ocupă cu
interacțiunile cu utilizatorul și actualizează modelul pentru ca acesta să reflecte o stare actuală
a aplicației, apoi trimite informația vederii. În controller se definesc acțiunile care pot apărea
pe parcursul aplicației. Vederea preia informa ția de la controller și cre ează o interfață prin care
afișează acea informație. Vederile sunt legate de obicei de câte un model din care se obțin
datele pent ru afișare. Astfel, modelul MVC separă logica aplicației de interfața cu utilizatorul.
ASP.NET MVC conține funcționalități precum securitate, autentificare, funcționalit ăți
implementate în ASP.NET. O altă facilitate a modelului MVC este legată de adresa UR L.
Aceasta nu trebuie să conțină extensii și poate fi definită de utilizator. Modelul standard este
următorul: controller/acțiune/parametrii opționali, însă se poate defini ca o anumit ă pagină web
să aibă o adresă url specifică:
routes.MapRoute(
name: "Home",
url: "{lang}",
defaults: new { controller = "Home",
action = "Index", lang = UrlParameter.Optional }
);
În exemplul dat se poate observa că putem apela metoda „Index” din controllerul
„Home” dând doar parametrul lang, care este op țional. Metoda „Index” va trebui să aibă un
parametru cu numele „lang” pentru a se putea face maparea corect.
Deoarece MVC are la bază framework -ul ASP.NET, se pot dezvolta aplicații în orice
limbaj de programare disp onibil în acest framework. În aplicația prezentată în continuare se va
folosi limbajul de programare C#, iar vederile vor fi realizate cu sintaxa Razor, care are la bază
limbajul C#, fișierele care reprezintă vederile având extensia „.cshtml”.

11
2. Abordare p ractică

2.1. Contextul problemei. Crearea bazei de date

Aplicația , după cum s -a spus în capitolul anterior este formată din două parți: baza de
date și aplicația pentru consultarea și manipularea datelor din această bază de date, aplicația
propriu -zisă, cu c are interacționează direct utilizatorul.
Baza de date folosește dialectul MySQL deoarece acesta este printre cele mai populare
dialecte SQL folosite. De asemenea sunt instrumente gratis pentru folosirea acestui dialect.
MySQL este dialectul open source de la Oracle. De asemenea, cu aceste instrumente se poate
lucra folosind comenzi SQL sau se poate utiliza interfața grafică pentru a realiza baza de date
și contextul în care aceasta va exista.
Pentru a crea baza de date , se poate, deci, folosi server -ul MySQL si MySQL
Workbench .
Pentru început este nevoie să se afle ce entități fac parte din contextul pentru care se
creează aplicația. De asemenea trebuie ținut seama și de modul în care aceste entități
interacționează înt re ele și ce rol au. Problema descrisă presupune că există utilizatori care
acționează în contextul evaluării activității didactice și cercetării. Evaluarea se face de fiecare
utilizator în parte, deoarece contextul este fișa personală, la nivel individua l. Funcție de
activitățile pe care utilizatorul, cadrul didactic, le are, evaluarea se face pe cinci nivele:
performanțe didactice , cercetare științifică , recunoaștere internațională , lucrul cu studentul ,
implicare în viața comunității . Fiecare din aceste nivele pot conține subcategorii pentru care
utilizatorul adaugă activitățile sale.
Deci, contextul este evaluarea activităților didactice și de cercetare în cadrul unei
instituții de învățământ, la nivel de cadru did actic. Activitățile acestuia sunt împărțite în cele
cinci criterii, fiecare criteriu având indicatori. Utilizatorul își poate crea o fișă personală prin
care să țină evidența activităților sale, activități împărțite de acești indicatori ai criteriilor.
Aceste fișe sunt create pentru fiecar e an. Ca entități, se poate enumera utilizatori, criterii,
indicatori și activitatea cadrului didactic, detaliile indicatorilor.
Deoarece în zilele de astăzi totul este dinamic, aplicația trebuie să asigure un mod de
a actualiza în mod corect activitățile cadrului didactic. Este nevoie, deci de un mod dinamic de
a crea alte criterii, de a modifica sau adăuga indicatori fiecărui criteriu, de a genera o nouă
formulă pentru indicator, formulă care abstractizează activitățile utilizatorului într -un singur
număr . Se poate adăuga astfel entități și relații care descriu modul în care are loc contextul
pentru care se creează aplicația.
Relațiile dintre entități arată modul în care acestea pot interacționa: utilizatorul poate
să își actualizeze activitățile creând o fișă pentru anul curent și adăugând activitatea în
indicatorul corespunzător din criteriul corespunzător. Deci, criteriul are indicatori, indicatorul
are detalii, în timp ce un detaliu poate sa aparțină unui singur indicator, care, la rândul sau
aparține u nui singur criteriu. O fișă pe care utilizatorul o creează când intr oduce prima activitate
în anul curent va conține toate activitățile carului didactic din acel an.

12
Trebuie creat un model care să abstractizeze acest context astfel încât să poată fi
cuanti ficat și să poată fi înțeles de către mașina de calcul pe care este pentru care se creează
aplicația.
Pentru a putea crea elemente dinamic, pentru a crea un alt context sau pentru a extinde
contextul existent va fi nevoie de mai multe tipuri de utilizatori deoarece nu toți utilizatorii
trebuie să aibă acces la orice resursă. Utilizatorii de tip administrator au posibilitatea de a
extinde acel context adăugând criterii noi cu indicatori noi. Indicatorii fiind caracterizați de
formula care se calculează punct ajul, este necesar să se poată crea formule noi. Pentru acest
lucru trebuie ca aplicația să fie capabilă să ofere un generator de formule, indicând parametrii
formulei si operatorii.
Raportul activităților cadrului didactic va conține pentru fiecare an det aliile și
punctajul acumulat de utilizator.
Deoarece tema propusă nu necesită o bază de date foarte mare vom crea o baza cu șase
tabele: utilizatori, criterii, indicatori, fișe de evaluare, detaliile fișelor și un tabel în care se va
memora unele detalii pentru indicatori. Este nevoie și de acest tabel deoarece utilizatorul de tip
administrator trebuie să po ată crea indicatori noi, cu formule pentru a calcula punctajul. Este
posibil ca să trebuiască să se adauge coloane tabelului care conține date despre detaliile
indicatorilor . Pentru a crea o formulă pentru un indicator se pot folosi parametrii deja folosiț i
până acum în alte formule sau se poate opta pentru a crea parametri noi, după care să se creeze
formula, și apoi indicatorul pentru acel criteriu. Acești parametri, creați în timpul execuției
programului vor fi menționați în acest ultim tabel. În acest m od, parametrii pot fi accesați mai
ușor.

Figura 3. Tabel criterii

Se poate observa în figurile de mai sus două dintre tabelele care reprezintă entități
din contextul aplicației. Aceste entități sunt definite de atribute , abstractizate în tabele, ele
fiind reprezentate prin câmpuri (coloane).
Relațiile dintre aceste entități sunt stabilite pe baza acțiunilor dintre ele. În modelul
abstract aceste relații sunt marcate prin cheile dintre tabele. În figura 4 se poate observa o cheie
primară, IdIndicator . Pe lângă faptul că prin această cheie este identificată în mod unic
înregistrarea, aceasta este folosită în alte tabele creând o relație între acele două tabele. Un
exemplu de astfel de utilizare este cheia străină IdCriteriu , care este cheie primară în tabelul
Figura 4. Tabel indicatori

13
criterii . Astfel este construită relația un criteriu poate să aibă n indicatori și invers, un
indicator aparține unui criteriu . Este nevoie de astfel de relații deoarece baza de date trebuie
să reflecte un model din realitate.
Pentru a se observa mai bine relațiile dintre tabele, se poate realiza diagrama entitate –
relație. Unele SGBD -uri au instrumente care generează automat astfel de diagrame din tabelele
bazei de date.

Figura 5. Diagrama EER

Imaginea de mai sus prezintă relațiile dintre entități. Se poate observa relații de tip n
la m (mai mulți la mai mulți) realizate prin tabele de joncțiune. Acest tip de relație nu poate
exista în baza de date deoarece sistemul va intra în stare de ambiguit ate: nu va știi cărui din
cele m instanțe să îi atribuie partea n. Din această cauză se folosesc tabele de joncțiune. Relația
n la m se împarte în două relații 1 la m , rezolvându -se conflictul.

14
Entitatea param_detalii nu are nici o relație cu o altă entit ate deoarece aceasta este
folosită pentru a salva modificările făcute pe parcursul rulării programului. Pentru a putea
adăuga noi parametrii cu care utilizatorul de tip administrator să poată crea noi formule, aceștia
vor fi adăugați în tabelul detalii_fis a, tabel care conține toți parametrii pe lângă alte proprietăți.
Un exemplu este câmpul test din tabel. Pe parcursul rulării programului, când utilizatorul
creează un parametru nou, acesta este adăugat tabelului detalii_fisa , însă în clasa din program
este memorat într -o listă de parametrii adăugați pe p arcurs deoarece nu se poate modifica o
clasă în timp ce programul rulează pentru a nu apărea conflicte. Dacă programul este oprit lista
cu parametrii, care este doar în memoria RAM se pierde, deoarece sistem ul de operare poate
aloca acea parte de memorie altui proces. Următoarea dată când programul este deschis acea
lista de parametrii noi este populată din tabelul param_detalii , acesta con ținând doar numele
parametrilor. Valorile introduse pentru respectivii parametrii sunt stocate în tabelul detalii_fisa ,
unde sunt toți parametrii. Când se adaugă un parametru nou se adaugă întâi o nou ă coloană
tabelului detalii_fisa , apoi se poate crea o formulă nouă cu acel parametru.
Alte obiecte des utilizate în baze de d ate sunt funcțiile și procedurile stocate. Pentru a
putea efectua și alte operații în baza de date, pe lângă instrucțiuni DDL și DML se pot folosi
funcții și proceduri. Acestea sunt secvențe de cod stocate în baza e date. Sunt unele situații în
care este n evoie de o funcție sau un script în baza de date. Diferența dintre funcții și proceduri
nu este pre mare. Funcțiile întorc totdeauna o valoare. Procedurile pot sa nu întoarcă. Dacă se
vrea ca o procedură să întoarcă o variabilă, aceasta va fi în lista de p arametrii, fiind specificat
tipul: AUT sau INOUT. O funcție va întoarce o variabilă prin RETURN. De asemenea se pot
folosi și evenimente în baza de date, precum după ce se adaugă valori într -un anumit tabel.

O diferență importantă în MySQL între funcții și proceduri este faptul că folos ind
funcții nu se pot utiliza instrucțiuni dinamice. În cazul în care este nevoie de instrucțiuni
dinamice se va folosi proceduri. În cazul de față s -a folosit o procedură pentru a calcula
punctajul fiecărui detaliu introdus. Deoarece numărul coloanelor tabelului detalii_fisa se poate
modifica pe parcursul p rogramului nu se poate accesa coloana direct prin nume, acesta nefiind
cunoscut. Din această cauză, pentru a calcula punctajele pentru fiecare detaliu și punctajul total
se folosește câmpul Formula din tabelul indicatori. Fiecare indicator are formula memo rata în
această coloană, ca un șir de caractere. Cu ajutorul funcțiilor predefinite pentru prelucrarea
Figura 6. Obiecte in baza de date

15
șirurilor de caractere s -au eliminat operatorii și parantezele dintr -o copie a șirului formula
pentru a se rămâne doar cu numele parametrilor. Pentru fie care nume de parametru astfel
obținut s -a folosit principiul de execuție imediată a unei comenzi memorată ca un șir de
caractere, șir construit prin concatenarea cuvintelor cheie care construiesc instrucțiunea cu
numele parametrului obținut prin aplicarea unor metode asupra formulei având rol de
împărțirea șirului în cuvinte. De exemplu:
SET @cmd = concat('set @val = (SELECT ', @param, ' FROM
detalii_fisa where detalii_fisa.id = ', idDetaliu, ' )');
PREPARE stmt FROM @cmd;
EXECUTE stmt ;
DEALLOCATE PREPARE stmt ;
Deoarece nu se știe numele coloanei din care trebuie citită valoarea se folosește aceas tă
metodă, numită dynamic SQL și se execută instrucțiunea din șirul de caractere calculat. După
ce se află valoarea corespunzătoare parametrului respectiv, în șirul formula se înlocuiește
numele parametrului cu valoarea citită din tabelul detalii_fisa . Se va obține un șir de caractere
care conține o expresie matematică. De exemplu, șirul
(F + NE /300) / nr. autori
Poate deveni
(35 + 10 / 300) / 2
Astfel, obținându -se o expresie matematică se poate calcula foarte ușor valoarea
punctajului deoarece în dialectul MySQL o astfel de expresi e matematică este rezolvată simplu,
prin folosirea instrucțiunii SELECT având ca parametru expresia. O altă metodă este de a
inițializa o variabila cu șirul care conține expresia, iar compilatorul va calcula valoarea acestei
expresii.
După ce s -a calculat această sumă se poate actualiza câmpul corespunzător punctajului
din tabelele în cauză, câmpul punctaj_detaliat din tabelul detalii_fisa și câmpul punctaj_total
din tabelul fisa_evaluare . Acesta din urmă se calculează adunând punctajele fiecărui detaliu
înregistrat în fișa curentă (pentru anul curent și utilizatorul curent). Daca punctajul total devine
0, atunci fișa utilizatorului va fi ștearsă. Această procedură este folosită la adăugare de detalii,
la modificarea lor și la ștergerea lor, pentru ca puncta jele să fie actualizate de fiecare dată.
Procedura are doi parametrii: primul reprezintă identificatorul detaliului pentru care se
calculează, modifică sau șterge punctajul, iar al doilea parametru reprezintă operația dorită:
adăugare și modificare sau ște rgere. Inserarea și modificarea sunt proiectate împreună în
această procedură deoarece aceasta este invocată după ce s -au introdus parametrii în tabel.
Chiar dacă este inserare sau modificare, întâi se inserează sau actualizează datele în/din tabel,
apoi s e calculează și se actualizează punctajul. La ștergere, întâi se șterge din tabel detaliul,
urmând ca apoi să se actualizeze punctajul total al fișei.
Spre deosebire de funcții, procedurile acceptă operații de tipul executare imediată. Fără
astfel de instrucțiuni, folosind o funcție în locul procedurii nu se poate calcula atât de ușor
valorile punctajelor decât pentru indicatori care folosesc formule care conțin parametrii care
există deja in tabel înainte de pornirea programului.

16
2.2. Aplicația

Aplicația propriu -zisă este realizată după modelul
ASP.NET MVC folosind ca mediu de programare Microsoft
Visul Studio. Această aplicație reprezintă un mod de conectare la
baza de date pentru a manipula datele.
Modelul MVC împarte logica aplicației în trei straturi:
 Model
 Vedere
 Controller
Modelul este o clasă care reprezintă datele cu care se
lucrează. De cele mai multe ori un model reprezintă un tabel din
baza de date, contextul aplicației. Se pot crea modele care să nu
reprezinte un tabel din baza de date. De exemplu, dacă în baza de
date există un tabel utilizatori care conține date despre utilizatori
și parola contului, se poate crea un model pentru autentificare care să conțină doar proprietăți
pentru datele credențiale, sau un model pentru înregistrare care sa conțină, pe lângă
proprie tățile din modelul utilizator, și o proprietate pentru confirmarea parolei.
Vederea este pagina html. În cazul utilizării limbajului C#, folosind sintaxa Razor,
vederile vor avea extensia .cshtml . Acestea este modul în care sunt afișate informațiile
utiliz atorului. Aplicația interacționează cu acesta prin intermediul vederilor. Acestea sunt
legate de modele prin faptul că vederile arată informația din modele. O vedere poate fi legata
doar de un model.
Controller -ul se ocupă în principal de intrări și de ieș iri. Acesta trimite modelul vederii
ca să îl afișeze. Când utilizatorul trimite datele completate pe pagina web, acestea ajung la
controller. Acesta prelucrează date și actualizează modelul. În cazul în care un utilizator
introduce date pentru a fi memorat e într -un tabel, acestea ajung la controller -ul respectivei
vederi sub forma unui model, de cele mai multe ori. Daca datele pot fi adăugate în tabel acesta
le va adăuga, în caz contrar, de obicei le va trimite înapoi vederii, care le afișează utilizatorulu i
împreună cu un mesaj de atenționare.
O aplicație ASP.NET MVC are nevoie de un server pe care să ruleze. Aplicațiile web
.net necesită serverul IIS (Internet Information Services). Acesta este o parte a sistemului de
operare Windows. De cele mai multe ori nu este activată, însă acest lucru se poate face din
panoul de control al sistemului de operare dacă nu se instalează separat.
Pentru a putea conecta aplicația la serverul MySQL prin Visual Studio este nevoie de
o extensie pentru Visual Studio. Această ex tensie, MySQL Connector NET se poate obține de
pe pagina de internet oficială, www.dev.mysql.com . După instalarea acestui conector se poate
accesa baza de date de pe serverul MySQL. Crearea proiectului se face după ce se realizează
conectarea la server și se alege baza de date necesară. Șirul de conectare la baza de date se scrie
în fișierul Web.config al proiectului. Acesta conține:

Figura 7 . MVC

17
 numele conexiunii
 adresa s erverului
 portul pe care se realizează comunicarea
 datele credențiale pentru conectare la baza de date
 numele bazei de date
 provider ( în acest caz MySql.Data.MySqlClient )
Aplicația are la bază clasele realizate în limbajul C#. În cazul controller -ilor aceste clase
trebuie să moștenească clasa Controller din namespace -ul System.Web.Mvc . Numele acestor
clase trebuie s ă conțină cuvântul Controller la sfârșitul numelui. Figura 8 prezintă aceste clase.

Figura 8. Controller

Modelele sunt clase normale. Acestea reprezintă de multe ori tabele din baza de date.
Se pot folosi adnotări pentru a specifica numele tabelului. Clasa nu este să folosească același
nume cu tabelul. De asemenea, nu este necesar ca în numele clasei să apară cuvântul Model .
Un exemplu de utilizare a clasei cu nume diferit de cel al tabelului:
[Table("detalii_fisa")]
public class DetaliuFisa
{
}
Un aspect important este faptul pentru clasele care reprezintă tabele este faptul că
numele coloanelor t abelului din baza de date trebuie să co incidă cu numele proprietății care va
reprezenta coloana. De acest aspect trebuie ținut cont pentru a se realiza maparea tabelului. De
asemenea, adnotări se pot folosi și pentru proprietăți. Se poate stabili un alias pentru afi șare în
cazul în care numele coloanei nu este destul de reprezentativ, se pot stabili reguli pentru fiecare
proprietate în parte. De exemplu se poate spune că o coloană din tabel nu acceptă valoarea null.
Folosind adnotări, se poate constrânge ut ilizatorul să nu treacă peste acel câmp în felul următor:
[Required(ErrorMessage = " Camp necesar ", AllowEmptyStrings
= false)]
[DataType(DataType.Password)]
[Display(Name = "Parola")]
Figura 9. Model

18
public string lParola { get; set; }
Exemplul dat folosește o proprietate numită lParola , însă numele afișat în vedere este
cel menționat. De asemenea se menționează că acest câmp este obligatoriu. Dacă nu se
completează se va afișa un mesaj de eroare. Se pot stabili și ce fel de valori sunt acceptate
pentru acea proprietate: [EmailAddress] sau intervalul de valori care pot fi folosite.
În cazul în care tabelul din baza de date are relații cu alte tabele, aceste relații vor fi
marcate prin proprietăți virtuale:
public virtual ICollection<Indicator> Indicatori { get;
set; }
După cum s -a mai menționat, un criteriu poate avea mai mulți indicatori. Din acest
motiv se folosește o colecție. Un indicator aparține unui singur criteriu. Acest fapt se realizează
după cum urmează:
public virtual Criteriu Criter iu { get; set; }
Controller -ele sunt clase care moștenesc clasa Controller . Deoarece sunt clase normale
in C# ele pot conține variabile, proprietăți, metode ca orice altă clasă. Cel mai des folosit tip
de metodă în clasa de tip controller este metoda care întoarce o instanță a tipului de dată
ActionResult . Astfel, metoda va trimite vederii datele pentru afișare :
public ActionResult Index()
{
Return View(model);
}
Metodele pot primi ca parametru date adiționale, precum identificatorul unei
înregistrări în tabel. Se poate stabili daca se acceptă sau nu ca metodele care returnează vederi
sa primească parametrii configurând adresa url a paginii. În clasa RegisterRoutes se poate
realiza maparea adresei și se poate specifica formatul adresei.
Vederile folosesc limbajul HTML pentru a crea pagina web. Folosind sintaxa Razor se
poate folosi in vederi si limbajul C# . Html helperi sunt ca niște controale care pot fi plasate pe
pagina pentru a realiza interacțiunea cu utilizatorul. De exemplu, pentru a afișa un câmp în care
utilizatorul să introducă date se poate folosi:
 @Html.Edior(câmp)
 @Html.EditorFor(câmp)
 @Html.TextBox(câmp)
 @Html.TextBoxFor(câmp)
 @Htm l.TextArea(câmp)
 @Html.TextAreaFor(câmp)
Simbolul @ semnifica începutul unei expresii folosind
sintaxa Razor. În funcție de context se pot folosi sintaxe la care
se pot adăuga parametrii precum atribute html. Acestea sunt
Figura 10. Vedere

19
translatate in limbajul HTML ca <input type=”text” /> . Câmpul dat ca parametru este de cele
mai multe ori o proprietate mapată în model.
Pentru fiecare entitate din contextul problemei s -a creat câte un controller. Pentru
fiecare acțiune pe care un utilizator o poate face asupra acelei ent ități, controllerul conține câte
o metoda, iar pentru fiecare metodă este câte o vedere prin care se realizează interacțiunea.
Deci, vor exista metode pentru a adăuga date, pentru a le modifica, pentru a le consulta.
Deoarece nu toți utilizatorii trebuie să poată accesa toate da tele, aceștia au fost î mpărțiți în
utilizatori de tip administrator și utilizator de tip profesor.
Profesorul poate să își modifice datele personale prin meniul Profi l -> Modifică.
Activitatea principală pe care profesorul o poate e xersa este de a înregistra activitățile didactice.
Se alege întâi criteriul, apoi indicatorul pentru care se va completa datele. Aceste date pot fi
modificate sau șterse. Pentru a vizualiza situația utilizatorul poate cere un raport. Acest raport
va conțin e pentru fiecare an toate activitățile înregistrate de utilizator, organizate pe criterii și
apoi pe indicatori.

Figura 11. Profil
De asemenea utilizatorul poate cere un raport în format .pdf. Acest raport se realizează
pentru fiecare an în parte, și con ține datele introduse de utilizator. Organizarea datelor este
funcție de criterii si indicatori.
Utilizatorul de tip administrator are mai multe drepturi. Acesta poate înregistra
profesorii. Deoarece este un sistem închis, nu pentru publicul larg, doar adm inistratorii pot
adăuga utilizatori noi. Acești noi utilizatori pot avea rolul de administrator sau profesor, deci
pot exista mai mulți administratori. Imediat după înregistrarea unui utilizator nou aplicația va
cere administratorului care înregistrează ut ilizatori datele crede nțiale ale contului de email
pentru a notifica noul utilizator că i s -a creat cont pe platformă printr -un email. Prin acest email
i se va transmite datele cu care se poate autentifica pe portal, urmând ca acesta să poată să âși
modifica parola generată automat.
De asemenea, administratorul poate extinde contextul aplicației creând noi criterii.
Criteriile nu se pot șterge deoarece poate exista un detaliu înregistrat pentru un indicator al

20
criteriului care se vrea șters. Pentru ca să rămână activitatea cadrului didactic înregistrată nu
criteriile nu se șterg. Acestea pot fi adăugate și modificate doar de administrator.
Tot administratorul poate insera indicatori criteriilor. De asemenea, atributele
indicatorilor se pot modifica. C ând se creează un indicator nou se accesează generatorul de
formule. Acesta va afișa toți parametrii care au fost adăugați până în momentul de față. Se
poate alege din acești parametrii pentru a crea formula specifica indicatorului. Dacă se cere să
se cree ze o formulă nouă, cu parametrii noi, acest lucru se poate face după ce se adaugă acei
parametrii. Când aceștia sunt adăugați se modifică structura tabelului detalii_fisa , adăugându –
se coloane cu respectivii parametrii. În aplicație acești parametrii noi s unt adăugați într -o listă
suplimentară de parametrii. Deoarece această listă se pierde la oprirea programului, datele din
ea vor fi memorate într -un alt tabel, care va conține doar numele parametrilor. La pornirea
aplicației lista cu parametrii adiționali se va popula din acest tabel.

Figura 12. Generator de formule
În figura de mai sus este prezentat generatorul de formule. Pentru a crea o formulă se
aleg pe rând parametrii din listă. Se pot adăuga parametrii în listă ( test este un parametru
adițional). Când se alege parametrul, câmpul formulă se va completa cu parametrul selectat,
urmând să se scrie operatorii.
Acest aspect asigură aplicației dinamicitatea de care ar putea avea nevoie.
Raportul pe care îl poate accesa admin istratorul este un raport general, care cuprinde
punctajele parțiale și totale ale fiecărui utilizator de tip profesor (administratorul nu poate să
insereze detalii indicatorilor), organizate pe an.
Raportul in format .pdf este creat cu ajutorul librăriei iTextSharp , un namespace open
source, care este printre cele mai des folosite instrumente pentru crearea fișierelor .pdf. Pentru
a putea crea fișierul, aplicația are nevoie de dreptul de a scrie în directorul serverului. Acest
privilegiu trebuie acordat de care administratorul serverului pe care va rula aplicația.
Chiar dacă se fac verificări pe date înainte de a fi introduse în tabelele din baza de date,
în această aplicație se fac verificări si la serverul de aplicație, folosind adnotații, ca în exemplu
dat mai sus, dar se fac verificări pe date ți la client, pentru a evita situația în care se trimit date
eronate până la server pentru a primi răspuns că nu sunt corecte. Verificarea la client se face

21
prin scripturi JavaScript. S -a ales JavaScript deoarece î ncă nu toate browserele existente
suportă toate specificațiile HTML5, în care se pot face verificări direct din codul HTML.
Un concept interesant utilizând ASP.NET MVC este faptul că dacă pe mai multe pagini
sunt aceleași informații , acestea nu trebuie scr ise de mai multe ori. Se pot folosi HTML
HELPERI precum:
 @Html.RenderBody()
 @Html.RenderPartial()
 @Html.RenderAction()
 @Html.Partial()
 @Html.Action()
 @Html.ActionResult()
Aceste metode, exceptând RenderBody() vor primi ca parametru metoda sau vederea
corespunzătoare, iar rezultatul va fi afișat pe pagina în locul sintaxei Razor.

2.3. Manual de utilizare

2.3.1. Instalare

Aplicația este formată din două părți: baza de date și aplicația web. Fiecare din cele
două parți sunt găzduite pe câte un server. Baza de date este găzduită pe serverul MySQL, iar
aplicația web este găzduită pe serverul de aplicații web. În figura 1 prezentat modul în care
aplicația lucrează.
Pentru baza de date se poate, aceasta se poate porta pe server folosind modelul care
descrie structura acesteia. Tabelele pot fi completate cu date folosind scripturi SQL. Trebuie
reținut numele utilizatorului sub care se portează baza de date și parola a cestuia deoarece este
nevoie de aceste date în aplicația web. De asemenea, pentru aplicație este nevoie și de adresa
serverului de baze de date și portul pe care îl folosește. Portul implicit este 3306.
Aplicația web este găzduită pe un server Internet Inf ormation Services (IIS). Acesta
este parte componentă din sistemul de operare Windows, chiar dacă implicit nu este activat.
Activarea, în cazul în care este necesară, se face din panoul de control al sistemului de operare ,
din meniul Programs and Features se alege Turn Windows features on or off . În lista de
facilități se bifează Internet Information Services pentru a se activa.
În aplicație se va configura șirul de conectare, din fișierul Web.config al aplicației ( este
un fișier Web.config și în cadrul vederilor). Acesta conține următoarele:
 name = numele conexiunii (pentru aplicația de față name = „MySQLServer”).
Acest nume este folosit și în clasa care creează contextul (legătura cu baza de
date)
 connectionString :
o port = portul(3306)

22
o server = adresa s erverului MySQL (dacă amândouă server sunt pe
aceeași stație de lucru, server = localhost)
o user id = utilizatorul care a creat baza de date (în aplicația de față user
id = root)
o Password = parola utilizatorului de mai sus (pentru setările curente
Password = pass)
o database = numele bazei de date (în cazul de față database = fisa09)
 providerName = "MySql.Data.MySqlClient"
Elementele din connectionString se scriu între ghilimele („” ” ” , separate prin „;”.
Aceste elemente se adaugă în Web.config în tagul <conn ectionStrings> din tagul
<configuration> :
<add name="MySqlServer" connectionString = "port=3306;
server=localhost; user id=root; Password=pass; database=fisa09"
providerName="MySql.Data.MySqlClient"/>
Aplicația are nevoie de drepturi de scriere și ștergere în directorul în care va rula,
deoarece, pentru a genera rapoarte în format .pdf va crea aceste fișiere într -un director pe care
îl creează, având numele aplicației. Funcție de versiunea serverului, grupul de util izatori pentru
care trebuie acordate aceste drepturi diferă.
Utilizatorul va accesa aplicația folosind adresa serverului pe care se instalează. Pentru
a putea folosi portalul va trebui să se autentifice folosind datele primite de la administratorul
care i -a creat cont pe platformă, administratorul având deja un cont.

Din imaginea de mai sus, pagina se start a aplicației, se observă că pentru a putea utiliza
aplicația utilizatorul trebuie să se autentifice, deoarece nu este un sistem deschis publicului
larg. Pentru a te putea autentifica, întâi trebuie ca administratorul sa creeze un cont. Datele
creden țiale vor fi trimise printr -un email, utilizatorul putând modifica profilul.
Figura 13. Pagina Start

23
2.3.2. Administrato r

Utilizatori

Figura 1 4. Utilizatori

Înregistrare utilizator
Pentru a înregistra un utilizator nou administratorul va naviga prin meniul Utilizatori –
>Utilizator nou . În pagina deschisă vor fi completate datele de contact, apoi parola contului
de email cu care administratorul este înregistrat. Parola este nevoie pentru a trimite o
notificare utilizatorului pentru care administratorul creează contul cu datele credenția le pentru
autentificare.
Figura 15. Creare cont

24
Modificare date utilizatori
Pentru a modifica date unui utilizator, la fel ca în cazul înregistrării, se alege butonul
Modifica din tabelul cu utilizatori, apoi pe pagina deschisă se modifică datele de contact. Și la
modificare utilizatorul va primi o notificare prin email, deci va trebui introdusă parola contului
de email cu care administratorul este autentificat.
Șterge utilizator

Figura 16. Modificare date utilizatori
Figura 17. Ștergere utilizator

25
Ștergerea unui utilizator se face dând click pe butonul Sterge , apoi c onfirmând.

Criterii

Creare criteriu
Din meniul Criterii se alege Adauga , se completează formularul și se alege Adauga
Modificare criteriu
Din meniul Criterii se alege Modifica , se completează formularul și se alege Modifica
Figura 19. Creare criteriu
Figura 20. Modificare Criteriu Figura 18. Criterii

26
Indicatori

Creare indicatori
Din meniul Indicatori se alege Adauga , se completează formularul și se alege Adauga
sau se selectează criteriul apoi se alege Adauga , se completează formularul și se alege Adauga
Pentru a crea formula se aleg parametrii și se adaugă operatorii. Se pot crea noi
parametrii care vor fi afișați în lista de parametrii.

Figura 21. Selecție criteriu
Figura 22. Inserare indicator

27
Vizualizare indicatori
Din meniul Indicatori se alege criteriul pentru care se doresc indicatorii

Modificare indicator
De la pasul anterior se alege Modifica , se completează formularul, apoi se alege
Modifica

Figura 23. Indicatori
Figura 24. Modificare indicator

28
Raport
Se alege meniul Raport
Descărcare raport
Se alege din meniul Raport butonul Descarca raport .

Figura 25. Raport administrator

29
2.3.3. Profesor

Profil
Se alege meniul Profil
Modificare profil
Din meniul Profil se alege Modifica, se completează formularul , apoi se alege Modifica

Figura 26. Profil
Figura 27. Modificare profil

30
Adăugare activități
Din Indicatori se alege criteriul
Se alege butonul „+” pentru indicatorul dorit
Se completează formularul, apoi se alege Adauga

Figura 28. Selector criteriu
Figura 29. Indicatori profesor
Figura 30. Adăugare activitate

31
Vizualizare activități pe indicator
Se alege butonul Vizualizeaza din lista indicatorilor
Modificare detalii
De la pasul anterior se alege Modifica , se completează formularul, apoi se alege
Modifica
Stergere activitate
Se vizualizează activitățile și se alege Sterge și se confirmă

Figura 31. Vizualizare detalii
Figura 32. Modificare activitate
Figura 33. Sterge activitate

32
Raport
Se alege meniul Raport
Descărcare raport
Din pasul anterior se alege Descarca raport

Figura 34. Raport profesor

33
3. Concluzi e

Contextul pentru care a fost dezvoltată aplicația este următorul: în cadrul facultății,
cadrele didactice creează fișe de evaluare a performanțelor didactice și cercetare. După
înregistrarea activităților, pe baza formulei fiecărui indicator se calculează câte un punctaj
pentru fiecare activitate înregistrată. Se calculează apoi pe baza acestor punctaje un punctaj
total care reprezintă activitatea ca drului didactic.
Prin această aplicație se pot genera rapoarte care reflectă situația cadrului didactic . Un
administrator poate gestiona mai ușor rapoartele deoarece ele sunt în același loc, având același
organizare.
Această aplicație are ca scop gestionarea proiectelor și activităților cadrelor didactice
la nivel individual, nu la nivel de facultate sau universitate.
Printre țintele la care se pot aduce îmbunătățiri se pot enumera:
 Rapoarte mai complexe, în special pe partea de administrator
 Design îmbunătățit
 Adăugarea departamentului din care cadrul didactic face parte și generarea de
rapoarte pe departament , departament ele având câte un administrator care să
poată gestiona activitățile din departament
 Adăugarea unui control pentru a furniza facilități de căutare pentru utilizatori
(administratori), pentru criterii, pentru indicatori

34

Bibliografie

[1] SQL Commands, http://docs.oracle.com/html/A95915_01/sqcmd.htm#i1009110
[2] https://en.wikipedia.org/wiki/HTML5
[3] https://en.wikipedia.org/ wiki/W3C_Markup_Validation_Service
[4] Annotated ECMAScript 5.1, http://es5.github.io/#x15.3.4
[5] JavaScript Microcontrollers, http://makezine.com/magazine/first -look-javascript –
micro -controllers -for-web-developers/

Similar Posts