Sunteți pe pagina 1din 37

Academia de Studii Economice din București

Facultatea de Cibernetică, Statistică și Informatică Economică


Specializarea Informatică Economică

Platformă de recrutare

COORDONATOR ŞTIINŢIFIC
Iulian ILIE-NEMEDI

ABSOLVENT
Ileana Simona SCARLAT

București 2018

1
Table of Contents
1 INTRODUCERE ........................................................................................................................... 3

1.1 IDENTIFICAREA PROBLEMEI ....................................................................................................... 3


1.2 PREZENTARE CAPITOLE ............................................................................................................ 4

2 ANALIZA LA NIVEL DE APLICAȚII DE RECRUTARE ....................................................................... 5

2.1 ANALIZA ȘI EVALUAREA APLICAȚIILOR SIMILARE .............................................................................. 5


2.1.1 Scurtă prezentare a aplicațiilor similare ........................................................................ 5
2.1.2 Rezultate statistice privind interesul la nivel global ....................................................... 6
2.1.3 Evaluarea funcționalităților aplicațiilor similare ............................................................ 7
2.2 DEFINIREA CERINȚELOR PLATFORMEI DE RECRUTARE ..................................................................... 10
2.2.1 Definirea cerințelor funcționale .................................................................................. 10
2.2.2 Definirea cerințelor tehnice......................................................................................... 11

3 RESURSE SOFTWARE SI TEHNOLOGII IMPLICATE IN IMPLEMENTARE ...................................... 12

3.1 RESURSE SOFTWARE ............................................................................................................ 12


3.1.1 Microsoft Visual Studio ............................................................................................... 12
3.1.2 Microsoft SQL Server .................................................................................................. 12
3.1.3 HP Fortify Scan ........................................................................................................... 13
3.2 LIMBAJE ȘI TEHNOLOGII DE PROGRAMARE .................................................................................. 14
3.2.1 Limbaje de programare .............................................................................................. 14
3.2.2 MVC - Design pattern pentru structurarea codului ...................................................... 15
3.2.3 Framework-uri de implementare și testare ................................................................. 16

4 ANALIZA, MODELAREA ȘI PROIECTAREA APLICAȚIEI................................................................ 18

4.1 MENIUL APLICAȚIEI .............................................................................................................. 18


4.2 MODELAREA CONCEPTUALĂ A DATELOR .................................................................................... 19
4.3 MODELAREA LOGICĂ A DATELOR .............................................................................................. 20
4.4 MODELAREA FUNCȚIONALITĂȚILOR APLICAȚIEI ............................................................................ 20
4.4.1 Diagrama cazurilor de utilizare ................................................................................... 20
4.4.2 Diagramele de activitate ............................................................................................ 27
4.4.3 Diagrama de interacțiune ........................................................................................... 28
4.1 PROIECTAREA BAZEI DE DATE .................................................................................................. 29

5 IMPLEMENTAREA APLICAȚIEI .................................................................................................. 31

5.1 ARHITECTURA APLICAȚIEI ....................................................................................................... 31


5.2 IMPLEMENTAREA FUNCȚIONALITĂȚILOR ..................................................................................... 31

6 CONCLUZII ............................................................................................................................... 36

7 BIBLIOGRAFIE .......................................................................................................................... 37

2
1 Introducere

1.1 Identificarea problemei


Problema șomajului declanșează căutarea de soluții inovative pentru a minimiza
numărul șomerilor de pretutindeni. Analizând rata șomajului în România din 1998 până în
prezent, se poate constata că soluțiile de recrutare devin din ce în ce mai eficiente, numărul
șomerilor reprezentând 4.6% ( vezi Figură 1.1).

Având în vedere cererea de forța de muncă, platformele de recrutare au apărut din


necesitatea candidatului de a-și căuta un loc de muncă, precum și din necesitatea angajatorului
de a ocupa pozițiile disponibile în cadrul companiei sale.

Figură 1.1 Rata șomajului în România din 1998 până în prezent [1]

O platformă de recrutare are ca obiectiv atât satisfacerea nevoilor candidatului cât și


ale angajatorilor prin intermediul unui suport informatic ce conține CV-uri puse la dispoziție
pentru angajare de către candidat și locuri de muncă oferite de angajator.

Comparativ cu metodele disponibile în prezent pentru căutarea unui loc de muncă:


solicitarea unei agenții de forță de muncă, anunțuri, târguri de job-uri, consider că utilizarea
unei platforme de recrutare este cea mai eficientă metodă deoarece presupune trimiterea CV-
ului direct la angajatorul dorit obținut în urma filtrării job-urilor disponibile. Conform
sondajului făcut de cititorii site-ului Ziare.com, 20,17% au afirmat că utilizează o agenție de
recrutare, 11,35% participă la târgurile de job-uri, procentul majoritar fiind de 50,91% și
reprezentând cea eficientă metodă de a-și găsi un loc de muncă, prin trimiterea CV-ului direct
la angajator. [2]

Avantajele unei platforme de recrutare constau în filtrarea rezultatelor pe baza


criteriilor dorite de utilizator, contactarea părților implicate, aplicarea directă pentru un job și
analizarea potențialului candidaților înscriși pe platformă în scopul selectării celor care se

3
încadrează în abilitățile țintite. Această modalitate electronică eficientizează procesul de
recrutare prin disponibilitatea CV-urilor în format electronic, aplicarea pentru un job la un
click distanță și disponibilitatea job-urilor după o multitudine de criterii ce se pliază pe
nevoile candidaților (oraș, nivel de calificare, salariu etc) .

Prezenta lucrare își propune să îmbunătățească procesul de recrutare prin transparența


față de utilizatori privind derularea recrutării, navigarea într-un mod facil prin meniurile
aplicației cât mai aproape de intuitivitatea utilizatorilor și identificarea compatibilității dintre
candidat și job-urile disponibile pe platforma de recrutare.

Conținutul acestei lucrări este structurat în patru capitole după cum urmează: analiza
domeniului, analiza tehnologiilor folosite pentru implementarea soluției, analiza și
proiectarea componentelor aplicației și implementare efectivă a platformei de recrutare.

1.2 Prezentare capitole


Capitolul doi prezintă analiza cadrului tehnologic de analiză și dezvoltare a unei
platforme de recrutare. Cu alte cuvinte, capitolul doi conține analiza și evaluarea aplicațiilor
existente pe piață ce au ca principal obiectiv recrutarea. Analiza este realizată dintr-o
perspectivă obiectivă bazată pe statisticile oferite de site-ul Google Trends [3] privind interesul
la nivel global pentru principalele site-uri de recrutare din România și din perspectivă subiectivă
privind funcționalitățile oferite utilizatorilor. Pe baza concluziilor obținute pe baza analizei
aplicațiilor existente pe piață în prezent, se vor determina cerințele pe care trebuie să le
îndeplinească platforma de recrutare ce urmează a fi implementată în prezenta lucrare.

Capitolul trei prezintă necesarul de resurse software și limbajele de programare ce vor


fi utilizate pentru implementarea platformei de recrutare. Fiind o aplicație web, serverul ce
găzduiește aplicația și baza de date sunt singurele resurse hardware implicate. Având în vedere
că interfața este compatibilă cu orice browser, nu există constrângeri pentru utilizarea unui
anumit navigator de web pentru utilizarea aplicației.

Capitolul patru cuprinde modelarea datelor și funcționalităților aplicației prin


intermediul diagramelor UML. Pentru modelarea funcționalităților aplicației, au fost utilizate
diagrama cazurilor de utilizare, diagrama de activitate și diagrama de interacțiune, oferind în
acest sens o imagine de ansamblu a ceea ce oferă platforma de recrutare dezvoltată în prezenta
lucrare.

Capitolul cinci cuprinde proiectarea și implementarea aplicației. Implementarea


aplicației conține prezentarea funcționalităților oferite și modalitatea de utilizare a acestora.
Mentenanța sistemului presupune scanarea regulată a aplicației prin intermediul produsului
software Fortify Scan în vederea identificării vulnerabilităților de securitate și rezolvarea
acestora.

4
2 Analiza la nivel de aplicații de recrutare

2.1 Analiza și evaluarea aplicațiilor similare


În scopul obținerii unei aplicații care să satisfacă majoritatea nevoilor candidaților, îmi
propun să fac o analiză privind actualitatea domeniului în România pentru a pune în balanță
plusurile și minusurile portalurilor de recrutare existente. În acest sens, voi parcurge
următoarele etape: selectarea principalelor site-uri destinate recrutării din România, analiza
acestora și voi concluziona pe baza documentării acestora cu stabilirea cerințelor platformei
de recrutare ce va fi implementată în prezenta lucrare (vezi Figură 2.1).

Figură 2.1 Etapele parcurse în analiză

2.1.1 Scurtă prezentare a aplicațiilor similare


Principalale site-uri de recrutare din România sunt: hipo.ro, bestjobs.ro, ejobs și
myjob.ro. Există și site-uri de recrutare care sunt specializate pe anumite domenii, ca de
exemplu site-ul Jobinmarketing.ro se axează pe marketing și domeniile conexe, Portofolios.ro
se adresează candidaților pasionați de artă și Posturi.gov.ro creat de Guvernul României care
centralizează job-urile la stat [4].

Hipo.ro se adresează profesionaliștilor și absolvenților care își doresc să se angajeze la


cele mai râvnite companii din România. Acest portal selectează job-urile potrivite pentru
candidații săi, pune la dispoziție peste 1000 de articole și știri despre carieră, ghiduri și seminarii
online organizate de angajatori. Mai mult decât atât, acest portal conține prezentarea celor mai
mari evenimente de carieră din România [4]. Consider că hipo.ro oferă o multitudine de
informații ce se axează pe dezvoltarea profesională a candidatului și nu se adresează unui public
larg, ci este nișat pe anumite domenii. În prezent, Ejobs.ro reprezintă portalul de recrutare cu
cel mai mare trafic deținând peste trei milioane de CV-uri active [4]. Comparativ cu site-ul
hipo.ro care se adresează persoanelor cu studii superioare, ejobs.ro conține un număr extrem de
mare pentru toate categoriile profesional, de la un post necalificat până la un specialist IT.
Popularitatea acestuia se datorează disponibilității job-urilor din toate domeniile profesionale.

5
Similar cu ejobs.ro, site-ul bestjobs.ro oferă îndrumare pentru redactarea unei scrisori de
intenție, pașii ce trebuie parcurși pentru crearea unui CV profesionist, cum trebuie să decurgă
prezentarea la un interviu și alte informații legate de carieră. La fel ca și ejobs, portalul
bestjobs.ro se adresează candidaților cu sau fără studii superioare care își doresc găsirea unui
loc de muncă într-un timp scurt. MyJob.ro este un site de recrutare ce oferă servicii specifice
cum ar fi oportunitatea de trimitere a CV-ului în mod automat la un număr foarte mare de
companii. Acesta se adaptează în mod continuu la nevoile candidaților și vor să scoată în
evidență profesionalismul, onestitatea, înțelegerea candidaților și spiritul de echipă.

2.1.2 Rezultate statistice privind interesul la nivel global

Conform rezultatelor obținute prin Google Trends pentru perioada 25 aprilie 2017 –
25 mai 2018, la nivel global se poate observa că portalul ejobs.ro deține interesul majoritar,
iar myjob.ro a fost cel mai puțin discutat și căutat site pentru recrutare (vezi Figură 2.2) .

Figură 2.2 Evoluția interesului la nivel global pentru principalele site-uri de recrutare din România din 2017 până
în prezent; Sursa: [3]

Din punct de vedere demografic, interesul majoritar al românilor este deținut de site-ul
ejobs.ro, acesta deținând un procent de 40%, fiind urmat de hipo.ro cu un procent de 31% (vezi
Figură 2.3). În Statele Unite ale Americii, site-urile bestjobs.ro și hipo.ro au fost cele mai
căutate în decursul unui an, procentele fiind de 50%. În Germania, cel mai căutat site de
recrutare a fost ejobs.ro, procentul interesului pentru acesta fiind de 63%, următorul în
clasament fiind bestjobs.ro cu un procent de 37%. În Regatul Unit, bestjobs.ro deține procentul
majoritar de 69%, urmat de ejobs.ro cu un procent de 31% ( vezi Figură 2.4) .

6
Figură 2.3. Procentele privind interesul pentru site-urile Figură 2.4. Procentele privind interesul pentru site-urile
principale din România; Sursa: [3] principale din România din punct de vedere demografic;
Sursa: [3]

2.1.3 Evaluarea funcționalităților aplicațiilor similare

Având în vedere statisticile obținute în capitolul 1, analiza funcționalităților se va face


pentru următoarele aplicații: Hipo.ro, BestJobs.ro și EJobs.ro.

a) Hipo.ro

Interfața portalului Hipo.ro a fost construită folosind un model simplist și conține o


multitudine de sugestii la fiecare modul pentru a ghida utilizatorul în navigarea pe acest
portal. Autentificarea se poate face utilizând modul tradițional de crearea unui cont sau se
poate utiliza autentificarea integrată cu Linkedin, Google sau Facebook, eficientizând astfel
experiență utilizatorului pe portal prin eliminarea timpului irosit adăugării unui cont.

În meniul aplicației se concentrează multitudinea de funcționalități oferite de hipo.ro


(vezi Figură 2.5) . Portalul oferă adăugarea mai multor CV-uri per candidat și posibilitatea
asocierii unui design atractiv prin intermediul modulului CV Designer (vezi Figură 2.6) . CV-
ul este structurat în cinci secțiuni: contact, experiență, studii, abilități și tip job dorit. Pentru
CV-urile în limba română, nu se permite adăugarea diacriticilor, nu ca o restricție impusă ci
că o neputință a sistemului de a afișa diacriticele la vizualizarea CV-ului. Dispune de o filtrare
ce acceptă ca și criterii de căutare numele job-ului sau al companiei, domeniul și orașul dar
impune studiile superioare la nivel intelectual deoarece este concentrat pe această nișă. În
secțiunea „Aplicările mele”, candidatul poate vizualiza job-urile în cadrul cărora a aplicat și
este informat cu privire la statusul CV-ului cu care a aplicat: nevizualizat, vizualizat sau
respins. Hipo.ro permite și crearea unei scrisori de intenție ce poate fi folosită ulterior pentru
aplicare în scopul găsirii unui loc de muncă. Mai mult decât atât, interfața portalului hipo.ro
este responsive, fiind scalabilă pe mai multe rezoluții de ecran (vezi Figură 2.7) .

Figură 2.5. Meniul aplicației hipo.ro

7
Figură 2.6. Adăugarea unui design atractiv CV-ului Figură 2.7. Interfața responsive a portalului hipo.ro

Funcționalitățile oferite de hipo.ro sunt inovative și se axează pe dezvoltarea


profesională a candidatului oferindu-i știri privind ascensiunea în carieră. Dup aparerea mea,
acest portal iese în evidență prin personalizarea CV-ului din punct de vedere grafic și prin
vizualizarea statusului CV-ului candidatului interpretat ca un răspuns scurt la aplicarea
acestuia. Problema identificată a constat în imposibilitatea adăugării diacriticelor în CV-ul
candidatului, aceasta putând fi interpretată ca o dovadă de neprofesionalism din partea
candidatului.

b) Bestjobs.ro

Comparativ cu hipo.ro, interfața portalului Bestjob.ro nu este încărcată cu diverse


sugestii, acestea nefiind necesare datorită intuitivității pe care se bazează modulele oferite.
Acesta se adresează tuturor domeniilor profesionale și prin urmare nu oferă anunțuri cu
privire la dezvoltarea personală sau profesională păstrând că obiectiv unic recrutarea propriu-
zisă prin trimiterea CV-ului direct la angajator pentru job-ul vizat. Filtrarea rezultatelor este
așezată în partea de sus, fiind astfel elementul central al site-ului (vezi Figură 2.8). Această
funcționalitate nu este mai presus decât cea oferită de hipo.ro. În schimb, rezultatele obținute
în urma filtrării pot fi ordonate în funcție de salariu, data activării, distanța față de locația
utilizatorului și după angajatorii de top. CV-ul este structurat în trei secțiuni: contact,
experiență și educație, aceasta din urmă incluzând informațiile despre cursurile, proiectele sau
conferințele la care candidatul a participat. CV-ul poate fi folosit atât în scopul aplicării în
cadrul job-urilor disponibile pe portal, cât și trimiterea acestuia prin e-mail la o persoană din
exterior.

Figură 2.8. Meniul aplicației bestjobs.ro

8
Figură 2.9. Filtrarea rezultatelor după cuvântul cheie „blabla"

Funcționalitățile oferite de bestjobs.ro sunt intuitive și nu necesită explicații sau sugestii


în plus comparativ cu portalul hipo.ro, oferind astfel o interfața simplă, neîncărcată cu
informații redundante. Din punctul meu de vedere, acest portal iese în evidență prin simplitate,
intuitivitatea componentelor grafice și ordonarea rezultatelor după criterii de interes general.
Problema identificată a constat în returnarea rezultatelor după cuvinte cheie care nu se regăsesc
în structura job-urilor (vezi Figură 2.9), confirmându-se astfel existența unor bug-uri în portalul
bestjobs.ro.

c) Ejobs.ro

Interfața site-ului ejobs.ro este similară cu cea a portalului bestjobs.ro, remarcându-se


prin simplitate și intuitivitate (vezi Figură 2.10 și Figură 2.12). Portalul ejobs.ro permite o
filtrare avansata a rezultatelor punând la dispoziție criterii precum: departament, industrie, nivel
carieră, nivel studii și tipul job-ului. Rezultatele obținute pot fi ordonate după relevanță, data
adăugării și distanța față de locația utilizatorului. La fel ca hipo.ro, ejobs.ro oferă îndrumare în
dezvoltarea personală și profesională a candidatului prin intermediul secțiunii „career center”.
CV-ul este structurat în șase secțiuni: obiectiv, experiența profesională, educație, limbi străine,
abilități sub formă de cuvinte cheie și alte informații cuprinzând secțiunile pentru dezvoltare
personală, cum ar fi: cursurile, voluntariatul, certificările, conferințele și proiectele. Secțiunea
de contact este înglobată în detaliile candidatului. Printre funcționalitățile care mi-au atras
atenția se număra: posibilitatea de a activa alertele privind newslettere, statusul vizualizării
aplicării pentru un job și vizualizarea interviurilor programate de angajator (vezi Figură 2.11).

9
Figură 2.10. Meniul aplicatiei ejobs.ro

Figură 2.11. Funcționalități specifice portalului ejobs.ro Figură 2.12. Meniul destinat candidatului

Analizând funcționalitățile celor trei site-uri de recrutare: hipo.ro, bestjobs.ro și


ejobs.ro, consider că ceea ce oferă ejobs.ro se pliază cel mai bine pe nevoile candidatului
datorită următoarelor funcționalități: lipsa bug-urilor la filtrarea rezultatelor, o filtrare avansată
pe diverse criterii, vizualizarea statusului CV-ului la aplicare, vizualizarea interviurilor
programate de angajator și o varietate de alerte.

2.2 Definirea cerințelor platformei de recrutare

2.2.1 Definirea cerințelor funcționale

Având în vedere analiza și documentarea făcută în subcapitolul anterior, am stabilit


următoarele criterii pe care trebuie să le îndeplinească aplicația ce urmează a fi implementată:
interfața trebuie sa fie intuitiva pentru utilizator, lipsa sugestiilor redundate, meniul trebuie sa
fie auto-explicativ:

o filtrarea rezultatelor trebuie să fie precisă pe baza cuvintelor cheie introduse de


utilizator și trebuie să reprezinte partea centrală a platformei de recrutare
o CV-ul candidatului trebuie structurat în patru secțiuni: limbi străine, experiență,
educație și dezvoltare personală, ultima secțiune înglobând informații despre
cursuri, voluntariat, conferințe, proiecte etc
o candidatul și angajatorul trebuie să fie notificați privind aplicarea pentru un job
partajat
o angajatorul trebuie să-și definească fluxul procesului de recrutare pentru fiecare
job și să actualizeze statusul fiecărui candidat în etapa de recrutare

10
o candidatul trebuie să poată vizualiza fluxul derulării procesului de recrutare
pentru un job pentru a fi informat de la început privind etapele pe care trebuie să
le parcurgă
o platforma de recrutare trebuie să se adreseze tuturor domeniilor profesionale
indiferent de nivelul de calificare al candidatului

2.2.2 Definirea cerințelor tehnice

În vederea implementării platformei de recrutare am stabilit utilizarea următoarelor


metodologii: platforma de recrutare va fi accesibila sub forma unei aplicații web

o datele vor fi stocate persistent într-o bază de date SQL


o notificările utilizatorilor vor fi executate prin intermediul unui job SQL
o codul aplicației va fi scanat cu Fortify în scopul identificării vulnerabilităților de
securitate
o aplicația va include o testare automată pentru identificarea potențialelor erori
negăsite în urma testării manuale

11
3 Resurse software si tehnologii implicate in
implementare

3.1 Resurse software

Platforma de recrutare va fi implementată folosind ca și resurse software următoarele:


Microsoft Visual Studio pentru scrierea codului aplicației, Microsoft SQL Server pentru
stocarea datelor într-o bază de date și Fortify Scan pentru scanarea codului în scopul
identificării vulnerabilităților de securitate.

3.1.1 Microsoft Visual Studio


Microsoft Visual Studio este un program integrat destinat dezvoltării software ce constă
într-un editor de cod ce oferă facilități de auto-completare sau refactorizare a codului, programe
de compilare și un debugger (vezi Figură 3.1). Mai mult decât atât, acesta include instrumente
de web design, designer de clasă și designer de schemă de bază de date. Acest program este
integrat cu aplicații de versionare a codului și suportă treizeci și șase de limbaje de programare:
C, C++, Visual Basic, .NET etc [5] . Scopul acestui program este să faciliteze cadrul de
dezvoltare pentru platforma de recrutare.

Figură 3.1 Microsoft Visual Studio; Sursa: https://goo.gl/images/GEUijx

3.1.2 Microsoft SQL Server


Microsoft SQL Server este un sistem destinat administrării bazelor de date relaționale.
Cu rolul de server de baze de date, acest produs software oferă ca funcții principale stocarea și
recuperarea datelor în modul solicitat de alte aplicații software. Edițiile oferite de Microsoft de
sunt categorizate în funcție de nevoile publicului. Din punct de vedere arhitectural, toate
operațiunile invocate pe serverul de SQL sunt transmise în formatul TDS (= Tabular Data
Stream). TDS este definit ca un protocol la nivel de aplicație ce are ca obiectiv transferarea

12
datelor între un server de bază de date și un client. Accesul la serverul de SQL se realizează
prin protocoalele TDS sau TCP/IP, iar API-ul este de asemenea expus peste serviciile web [6].

Acest produs software este utilizat pentru administrarea bazei de date relaționale
asociată aplicației de recrutare. Prin intermediul programului Microsoft SQL Server
Management se poate crea și administra baza de date a aplicației ce presupune crearea tabelelor,
procedurilor stocate și a job-urilor SQL.

3.1.3 HP Fortify Scan


Fortify este un produs software dedicat testării aplicațiilor în scopul identificării
vulnerabilităților la nivel de securitate printr-un set de analizatori de securitate software.
Procesul derulat de acest produs software este împărțit în două etape:

- codul sursă al aplicației este tradus într-un format intermediar pentru a putea fi
interpretat
- codul sursă este scanat și se întocmesc rapoartele de vulnerabilitate ale securității.
Analiza raportului de securitate poate fi vizualizată în Visual Studio la secțiunea
„Analysis Report”, iar raportul poate fi auditat și salvat ulterior (vezi Figură 3.2 ).

Odată identificate vulnerabilitățile, acest program oferă îndrumări privind modalitățile de


securizare a codului pentru fiecare hibă identificată în aplicație, făcând astfel parte din procesul
de dezvoltare a unei aplicații conforme cu standardele de securizare. Vulnerabilitățile
identificate pot fi de patru tipuri: de nivel scăzut, de nivel mediu, de nivel superior și critice.

Figură 3.3 Procedura necesara pentru dezvoltarea unei aplicatii securizate

Orice aplicație web trebuie să dețină un raport Fortify


impecabil pentru asigurarea securității codului. În acest sens
este recomandată respectarea procedurii din Figură 3.3.

Figură 3.2 Vulnerabilități găsite în


urma scanării cu Fortify

13
3.2 Limbaje și tehnologii de programare

În această secțiune vor fi prezentate limbajele de programare și framework-urile alese


pentru implementarea și testarea unei aplicații de recrutare.

3.2.1 Limbaje de programare

3.2.1.1 HTML
HTML ( = Hypertext Markup Language) este considerat unul din elementele esențiale
ale WWW (=World Wide Web) și are atribuția de a descrie modalitatea de repartizare și
vizualizare a documentelor pe Web. Deține că avantaje independența față de platformă și
maniera de ierarhizare a formatării, precum și legăturile de tip hypertext. Legăturile dintre
documente poartă denumirea de hiperlegături.

Rolul navigatorului este de a utiliza marcajele HTML în vederea obținerii unei


interpretări a conținutului unei pagini. Din perspectiva nivelului de simplitate, indicațiile dictate
de marcajele HTML constituie o variație.

De asemenea, rolul marcajelor HTML este reprezentat de specificarea metadatelor ce


dețin informații despre modalitatea de organizare a documentelor, precum și, informații despre
document.

3.2.1.2 CSS
CSS (= Cascading Style Sheets ) reprezintă un limbaj de stilizare al componentelor
HTML și al tag-urilor. Modalitatea prin care sunt asignate stiluri diferitelor componente HTML
se face prin intermediul unor fișiere externe ori în interiorul documentului, utilizându-se
cuvântul cheie „style”.

CSS a apărut din nevoia de a detașa conținutul documentului scris în HTML de


personalizarea acestuia cu stiluri utilizând culori, font și orientare. În acest fel, se asigură
flexibilitate și control privind specificarea și modificarea diferitelor particularități din
prezentare. Mai mult decât atât, redundanța creată de repetabilitatea specificării aceluiași stil
pentru mai multe elemente vizuale utilizate. Prin intermediul utilizării limbajului CSS, acceeasi
pagină poate beneficia de formate diferite privind maniera de prezentare și dependența de
modul de redare. [7]

Aplicația implementată în prezenta lucrare folosește limbajul CSS pentru a oferi o


reprezentare cât mai atractivă a conținutului.

14
3.2.1.3 Javascript
Javascript este un limbaj orientat pe obiect care se bazează pe noțiunea de prototip și
a fost inventat de Brenden Eich în colaborare cu Communications Corporation. Codul scris în
acest limbaj de programare este rulat de către browser și este destinat introducerii de
funcționalități în paginile web. Din punctul de vedere al sintaxei, există o similaritate ridicată
cu cea a limbajului de programare C.

Având în vedere că javascript este un limbaj destinat creării de scripturi, acesta are ca
și obiectiv să acorde interactivitate paginilor din format HTML. Acesta deține o multitudine de
avantaje datorită instrumentului de programare perceput ca un suport pentru proiectanții HTML
datorită modalității dinamice de a introduce un text în conținutul unei pagini HTML, modalității
de a reacționa la evenimente, modului de citire și scriere a componentelor HTML, creării unor
cookies, operațiunilor executate pe date și detectării unui anumit utilizator de către browser [8].

3.2.2 MVC - Design pattern pentru structurarea codului

Model-View-Controller (MVC) a luat naștere din necesitatea de a simplifica modul de


lucru al dezvoltatorilor în legătură cu gestionarea datelor. Acesta are ca principal scop divizarea
responsabilităților. Noțiunea acestui design pattern oferă o explicație privind modul de operare
al acestuia, identificandu-se în acest sens cu următoarele responsabilități:

• „model” – are ca principală responsabilitate gestiunea stării și a logicii


aplicației, ignorându-se cu desăvârșire moditatea de interacțiune dintre utilizator
și interfața corespondentă
• „view” – are ca principală responsabilitate administrarea creării interfeței
utilizator pe baza informațiilor și schimbărilor survenite privind stările parcurse
de model, ignorându-se logica aplicației, dar și maniera de preluare a datelor,
dar concentrându-se pe corectitudinea stării curente a modelului la un moment
dat
• „controller” – are ca principală responsabilitate administrarea traducerii
comenzilor executate de utilizator prin intermediul unui limbaj familiar
compilatorului, ignorându-se cauza pentru care este necesară translatarea
operațiilor executate de utilizator

Dintre multitudinea de avantaje, principalele sunt reprezentate de transpunerea unei


informații percepute ca fiind modelul sub diferite forme, adăugarea, ștergerea sau modificarea
interfețelor într-un mod facil în același timp cu fenomenul de execuție și/sau compilare a
programului și actualizarea simultană a datelor de intrare, a interfeței sau a logicii aplicației fără
să fie afectat în vreun fel celălalt cod sursă. Deși părțile componente ale acestui design pattern
tind să pară entități independente, există o colaborare frecventă între acestea în vederea atingerii

15
obiectivului comun. Pentru a facilita comunicarea dintre cele trei componente fundamentale ale
MVC, există o referință către obiectul vizat pentru interacțiune în cadrul fiecărei entități.

3.2.3 Framework-uri de implementare și testare

3.2.3.1 Framework de implementare - ASP .NET

ASP .NET este o tehnologie creată de Microsoft ce permite dezvoltarea de aplicații și


servicii web cu diferite niveluri de complexitate. Principalele beneficii sunt reprezentate de
scrierea aplicațiilor utilizând funcții ale limbajelor și mediilor de programare dezvoltate,
familiarizarea cu metode și tehnici de scriptare cum ar fi PHP, respectiv Javascript și oferă
posibilitatea de a dezvolta servicii web.

.NET reprezintă un framework ce actionează independent de platformă. Acesta are


capacitatea de a suporta o multitudine de limbaje de programare, cum ar fi c#, VB .NET și
altele. Cel mai important beneficiu al acestui framework este reprezentat de capacitatea de a
oferi un set comun de biblioteci de clase, acesta putând fi accesat indiferent de limbajul de
programare .NET. Ceea ce îi conferă un plus de valoare este faptul că nu există o separabilitate
între seturile de clase și biblioteci în funcție de limbajul vizat.

. NET este perceput ca fiind un software ce are menirea de a stabili conexiunea între
oameni, dispozitive, informați precum și, sisteme. În alcătuirea lui entitățile participante sunt
reprezentate de clienți, unelte de dezvoltare și servere.

Framework-ul de.NET prezintă o multitudine de beneficii, dintre acestea remarcându-


se capacitatea de a suportă peste douăzeci de limbaje de programare diferite, abilitatea de
gestionare unei mare părți din instalațiile implicate în mod direct în etapa de dezvoltare a
produsului software, simplificarea edificării, administrarea și asigurarea unui nivel înalt de
securitate și un grad ridicat de performanță. În componența acestui framework sunt incluse setul
unitar de biblioteci pentru clase și common language runtime.

3.2.3.2 Framework-uri de testare automata

Pentru identificarea eventualelor bug-uri în aplicație, este necesară testarea prealabilă a


acestuia. În cazul testării automate, testele întocmite nu accesează direct aplicația web, interfața
ce le separă fiind reprezentată de un framework de testare automată ( vezi Fig. 3.5).

16
Figură 3.5 Principiul testării automate

SpecFlow este un framework de testare automată ce permite scrierea de specificații


prin intermediul sintaxei Gherkin. Este utilizat atât pentru a definire și gestiune cât și pentru
execuția automată a unor teste de acceptanță inteligibile pentru oameni.

Pentru fiecare scenariu se generează un test unitar și pentru fiecare scenariu se


asociază o funcție în .NET. Metodele vor susține acțiunea descrisă în pas prin intermediul
codului său executabil.

Sintaxa Gherkin presupune utilizarea a trei cuvinte cheie: Given, When și Then.
• Given - Given-Scopul acestuia este de a aduce sistemul într-o stare cunoscută
înainte ca utilizatorul (respectiv sistemul extern) să înceapă procesul de
interacțiune cu sistemul (definiți în pașii When). Este recomandată evitarea
referirii despre interacțiunea cu utilizatorii în această secțiune.
• When - Scopul acțiunii When este de a descrie acțiunea principală pe care o
realizează utilizatorul.
• Then - Scopul secțiunii Then este de observare a rezultatelor. Observațiile
trebuie să aibă legătura cu valoarea / beneficiile afacerii din descrierea de
funcție. Observațiile ar trebui să facă referire la un fel de ieșire-ceva care să
rezulte din sistem (raport, interfața utilizator, mesaj) și nu ceva care nu are
valoare comercială. Dacă se iau în considerare mai multe date, atunci sau se
pot utiliza cuvintele AND, BUT.

Selenium WebDriver este un framework de testare portabil pentru aplicații web..


Acesta oferă un instrument de redare anterior, de asemenea, de înregistrare pentru a crea teste
de autorizare fără să fie necesar să învețe o limbă de testare a script-urilor (Selenium IDE).
Acesta oferă, de asemenea, un limbaj de testare specific domeniului (Selenese) pentru a putea
scrie teste într-un număr de limbi de programare populare, inclusiv C #, Groovy, Java, Perl,
PHP, Python, Ruby și Scala. Testele se pot executa pe cele mai moderne navigatoare web.

17
4 Analiza, modelarea și proiectarea aplicației

Platforma de recrutare urmărește să ofere transparență utilizatorilor cu privire la


procesul de recrutare pentru un loc de muncă și să ofere informații conforme cu cerințele
acestora.

4.1 Meniul aplicației

Platforma de recrutare va avea meniul structurat în patru secțiuni: cont, filtrare, meniul
secțiunea destinată candidatului și secțiunea destinată angajatorului (vezi Figură 4.1).
Secțiunea cont include posibilitatea creării unui cont și autentificarea în funcție de rolul
utilizatorului în aplicație: candidat sau angajator. În funcție de rolul utilizatorului, aplicația va
va identifica secțiunile aferente acestuia. Utilizatorul cu rolul de angajat va avea vizibile
secțiunea de adăugarea unui job ce presupune inițierea unui flux ce conține etapele derulării
procesului de recrutare și secțiunea de aplicați prin intermediul căreia angajatorul poate
vizualiza candidații ce au aplicat pentru job-urile din portofoliul sau. Utilizatorul cu rolul de
candidat va avea vizibile secțiunea de CV ce presupune crearea acestuia și adăugarea
elementelor componente ale acestuia: contact, experiență, educație și abilități. De asemenea,
candidatul poate vizualiza statusul aplicărilor realizate până în momentul curent. Secțiunea de
filtrare este elementul central al aplicației și se adaptează la rolul utilizatorului, încărcând
informațiile de interes pentru acesta.

Figură 4.1 Proiectarea meniului platformei de recrutare

18
4.2 Modelarea conceptuală a datelor

Această secțiune se va concentra pe modelarea conceptuală a tipurilor de date, a


asocierilor dintre acestea și a restricțiilor de integritate. Pe baza unei analize amănunțite și prin
utilizarea unor notații standardizate va fi construit modelul conceptual al datelor. Tipurile de
obiecte utilizate în modelare sunt entitățile reprezentate de tabelele bazei de date, atributele
reprezentate de câmpurile tabelelor și asocierile reprezentând legăturile dintre tabele.

Figură 4.2 Modelarea conceptuală a datelor

Modelarea conceptuală a datelor este caracterizată de următoarele asocieri: (vezi Figură 4.2)

- candidatul deține cel puțin un CV care poate fi trimis direct la o companie


o CV-ul include zero sau mai multe secțiuni destinate experienței profesionale,
abilităților, limbilor străine și educației
- compania primește CV-ul, candidatul devenind aplicant în cadrul unui job deținut de
angajator
- compania deține cel puțin un job disponibil pentru procesul de recrutare
- atât compania, cât și candidatul dețin o secțiune de contact

19
4.3 Modelarea logică a datelor

Pentru modelarea logică a datelor se vor utiliza următoarele standarde de reprezentare:


numele relației va fi însoțită de atributele sale între paranteze, cheia primara va fi subliniată cu
linie continuă, iar pentru cheia externă se va utiliza linia punctată.

Modelul logic al datelor este reprezentat sub următoarea formă:

è User (UserId, UserName, Password, IsCandidate)


è Contact (ContactId, Name, Address, Country, City, Phone, Email, Gender, UserId)
è Candidate (CandidateId, BirthDate, PersonalStatement, ContactId)
è Company (CompanyId, Description, ActivityDomain, ContactId)
è CV (CVId, CandidateId, InsertDate)
è Language (LanguageId, Name, Level, CVId)
è Experience (ExperienceId, StartDate, EndDate, Function, Department,
CompanyName, JobDescription, City, CVId)
è Education (EducationId, AdmissionDate, GraduationDate, InstitutionType,
Specialization, InstitutionName, City, CVId)
è Type (TypeId, Name)
è PersonalDevelopment (PersonalDevelopmentId, Name, StartDate, Description,
CVId, TypeId)
è Job ( JobId, CompanyId, Type, Title, Description)
è Applicant ( ApplicantId, CandidateId, JobId, Step)
è JobFlow (FlowId, JobId, Step1, Step2, Step3, Step4, Step5, Step6, Step7, Step8,
Step9, Step10)

4.4 Modelarea funcționalităților aplicației

4.4.1 Diagrama cazurilor de utilizare

Scopul diagramei cazurilor de utilizare este de a evidenția persoanele implicate în


utilizarea platformei de recrutare (percepuți ca actori) și operațiunile ce pot fi întreprinse de
aceștia. Prin intermediul acesteia, se va obține o imagine de ansamblu pentru funcționalitatea
aplicației și modul în care actorii interacționează cu aceasta.

20
4.4.1.1 Diagrama cazurilor de utilizare pentru actorii implicați

Având în vedere că scopul aplicației din prezenta lucrare este de a asigura recrutarea
pentru un anumit job, actorii implicați în procesul de recrutare sunt candidatul și angajatorul.

Scenariul modelat de diagrama de utilizare presupune aplicarea candidatului la un


anumit job ce aparține unui angajator și include parcurgerea următoarelor etape (vezi Figură
4.3):

1. Candidatul trimite CV-ul aferent unui angajator ceea ce declanșează transformarea


rolului acestuia în aplicant pentru job-ul în cadrul căruia a aplicat
2. Angajatorul primește CV-ul și îl supune unui proces de analiză ce are ca finalitate
acceptarea sau respingerea în procesul de recrutare.
§ La acceptarea CV-ului, aplicantul este inclus în fluxul de derulare al
recrutării pentru respectivul job ceea ce include notificarea acestuia
privind acceptarea în proces și parcurgerea etapelor definite de angajator
în prealabil
§ La respingerea CV-ului, aplicantul este notificat în acest sens

Figură 4.3 Diagrama cazurilor de utilizare pentru actorii ce utilizează platforma de recrutare

21
4.4.1.2 Diagrama cazurilor de utilizare ce vizează candidatul

Scenariul modelat în Figura 4.4 vizează funcționalitățile asociate actorului cu rolul de


candidat după cum urmează:

1. autentificarea candidatului în aplicație pentru a beneficia de funcționalitate


oferite de aceasta. Etapa de autentificare presupune validarea credențialelor
introduse în baza de date. În cazul în care utilizatorul nu este găsit în baza
de date, acesta este transferat către etapa de înregistrare pentru crearea unui
cont.
2. crearea CV-ului candidatului ce include acțiunile de adăugare a secțiunilor
documentului: de contact, experiență, educație și abilități
3. filtrarea job-urilor existente în baza de date
4. vizualizarea aplicărilor efectuate la anumite job-uri ce presupune verificarea
existenței rezultelor în baza de date pentru returnarea rezultatelor și
returnarea fluxului de recrutare pentru job-urile în cadrul cărora a aplicat cu
evidențierea etapei curente în care se află în momentul curent.

Figură 4.4 Diagrama cazurilor de utilizare pentru actorul cu rolul de candidat

Elementul cazului de Descriere


utilizare
Cod CU01

22
Stare Schiță

Scop Modelarea funcționalităților destinate actorului cu rolul de candidat


în aplicație

Nume Funcționalitățile destinate candidatului

Actor principal Candidat

Descriere Candidatul își poate crea un cont în aplicație și se poate autentifica cu


rolul aferent.

Candidatul își poate crea CV-ul ce presupune adăugarea secțiunilor


de contact, experiență, educație și abilități.

Candidatul poate filtra job-urile disponibile pe platformă folosind


criterii de interes personal.

Candidatul poate vizualiza aplicările sale până în momentul curent


și este informat privind etapa curentă în procesul de recrutare asociat
fiecărui job în cadrul căruia a aplicat.

Precondiții Să fie activă conexiunea la serverul de bază de date.

Postcondiții -

Declanșator Candidatul

Flux de bază 1. Sistemul returnează funcționalitățile destinate candidatului,


accesul făcându-se în funcție de rolul acestuia
2. Candidatul poate efectua următoarele cereri:
2.1 Creare cont
2.1.1 se verifică conexiunea către baza de date aferentă
utilizatorilor
2.1.2 introducerea manuală a informațiilor aferente
unui utilizator nou
2.2 Autentificare
2.2.1 se verifică conexiunea către baza de date aferentă
2.2.2 se valideaza credențialele introduse
2.3 Creare CV cu sectiunile aferente
2.3.1 se verifică conexiunea către baza de date aferentă
2.3.2 se înserează CV-ul în tabela aferentă acestuia
2.4 Vizualizare aplicări
2.4.1 se verifică conexiunea la baza de date aferentă
2.4.2 se verifică existența rezultatelor pentru candidatul
aferent
2.4.3 se returnează rezultatele obținute
2.5 Filtrare job-uri

23
2.5.1 se verifică conexiunea către baza de date
2.5.2 se verifică existența job-urilor în tabela aferentă
job-urilor
2.5.3 se returnează rezultatele obținute pe baza
criteriile alese de candidat
Fluxuri alternative -

Frecvența utilizării moderat

Reguli 1. nu pot exista 2 candidați cu același cont


2. interogările se vor face pe baza cuvintelor cheie sau în funcție
de informațiile despre candidat

4.4.1.3 Diagrama cazurilor de utilizare ce vizează angajatorul

Scenariul modelat în Figura 4.5 vizează funcționalitățile asociate actorului cu rolul de


angajator după cum urmează:

1. autentificarea angajatorului în aplicație pentru a beneficia de funcționalitate oferite


de aceasta. Etapa de autentificare presupune validarea credențialelor introduse în
baza de date. În cazul în care utilizatorul nu este găsit în baza de date, acesta este
transferat către etapa de înregistrare pentru crearea unui cont.
2. Inserarea job-urilor ce include adăugarea unui flux de recrutare ce va reprezenta
etapele procesului de recrutare pentru fiecare job
3. filtrarea candidaților existenți în baza de date
4. vizualizarea aplicanților pentru job-urile ce aparțin acestuia ce presupune verificarea
existenței acestora în baza de date și returnarea etapei curente în derularea procesului
de recrutare pentru fiecare aplicant în parte

24
Figură 4.5 Diagrama cazurilor de utilizare pentru actorul cu rolul de angajator

Elementul cazului de Descriere


utilizare
Cod CU02

Stare Schiță

Scop Modelarea funcționalităților destinate actorului cu rolul de angajator


în aplicație

Nume Funcționalitățile destinate angajatorului

Actor principal Angajator

Descriere Angajatorul își poate crea un cont în aplicație și se poate autentifica


cu rolul aferent.

Angajatorul poate filtra candidații existenți pe platformă folosind


criterii de interes personal.

Angajatorul poate adăuga job-uri și poate asocia fiecărui job un flux


de derulare a procesului de recrutare.

25
Angajatorul poate vizualiza aplicanții la job-urile sale până în
momentul curent și este informat privind etapa curentă în procesul de
recrutare asociat fiecărui candidat.

Precondiții Să fie activă conexiunea către serverul de baza de date.

Postcondiții -

Declanșator Angajatorul

Flux de bază 1. Sistemul returnează funcționalitățile destinate angajatorului,


accesul făcându-se în funcție de rolul acestuia
2. Angajatorul poate efectua următoarele cereri:
2.1 Creare cont
2.1.1 se verifică conexiunea către baza de date aferentă
utilizatorilor
2.1.2 introducerea manuală a informațiilor aferente unui
utilizator nou
2.2 Autentificare
2.2.1 se verifică conexiunea către baza de date aferentă
2.2.2 se validează credențialele introduse
2.3 Adăugare job
2.3.1 se verifică conexiunea către baza de date aferentă
2.3.2 se inserează job-ul in tabela aferentă acestuia
2.4 Vizualizare aplicanți
2.4.1 se verifică conexiunea către baza de date aferentă
2.4.2 se verifică existența rezultatelor pentru job-urile ce
aparțin angajatorului
2.4.3 se returnează rezultatele obținute
2.5 Filtrare candidați
2.5.1 se verifică conexiunea către baza de date
2.5.2 se verifică existența candidaților în baza de date
2.5.3 se returnează rezultatele obținute pe baza criteriilor
angajatorului
Fluxuri alternative -

Frecvența utilizării moderat

Reguli 1. nu pot exista doi angajatori cu același cont


2. interogările se vor face pe baza cuvintelor cheie sau în funcție
de informațiile despre angajator

26
4.4.2 Diagramele de activitate

Prin intermediul diagramei de activitate vor fi modelate procesele executate la nivelul


platformei de recrutare.

4.4.2.1 Procesul de autentificare

Figura 4.6 conține modelarea procesului de autentificare aferent platformei de recrutare.


Inițierea procesului de autentificare este declanșată de existența unui cont, respectiv de crearea
unui cont pentru utilizatorii care doresc să se logheze pentru prima oară în aplicație. În procesul
de derulare al logării, se parcurg etapele de introducere credențiale și verificarea concordanței
acestora cu informațiile din baza de date aferentă aplicației, având ca finalitate validarea
accesului utilizatorului la meniul aplicației asociat rolului acestuia.

Figură 4.6 Diagrama de activitate aferentă procesului de autentificare

4.4.2.2 Procesul de aplicare pentru un job

Figura 4.7 modelează procesul aferent aplicației candidatului pentru un job. Inițierea
procesului este declanșată de trimiterea CV-ului direct către angajator în cadrul unui un job ales
de candidat. După finalizarea trimiterii CV-ului, angajatorul este notificat privind aplicarea la
unul din job-urile disponibile, iar aplicarea candidatului este înregistrată în tabela aferentă
aplicanților în vederea vizualizării ulterioare a aplicărilor sale în meniul aferent acestuia.

27
Figură 4.7 Diagrama de activitate aferentă procesului de aplicare

4.4.2.3 Procesul de analizare și evaluare

Figura 4.8 modelează procesul de analiză și evaluare a aplicării unui candidat în cadrul
unui job. Inițierea procesului de analiză și evaluare este declanșată în momentul vizualizării
CV-ului candidatului. În cazul în care CV-ul întrunește criteriile de acceptanță ale
angajatorului, candidatul este notificat și este inițiat fluxul de recrutare ce presupune
parcurgerea etapelor setate de angajator în prealabil la adăugarea job-ului pe platformă. În cazul
în care CV-ul nu întrunește criteriile de acceptanță, candidatul este respins și notificat în acest
sens.

Figură 4.8 Diagrama de activitate pentru analiza si evaluarea aplicarii in cadrul unui job

4.4.3 Diagrama de interacțiune

În cadrul diagramei de interacțiune din această secțiune se vor scoate în evidență relațiile
stabilite între obiecte, mesajele parsate între acestea și modelarea aspectelor dinamice din
cadrul aplicației.

28
Figură 4.9 Diagrama de interacțiune între utilizatori, server și bază de date

În Figura 4.9 este evidențiată interacțiunea între utilizatori, server și baza de


date aferentă aplicației. Utilizatorii cu rolurile de candidat, respectiv angajator inițiază diverse
cereri în aplicație ce sunt preluate de către server, urmând ca acesta să execute sarcinile
solicitate. După execuția acțiunii solicitate, serverul primește răspunsul operațiunii executate
ce va fi transmisă ulterior utilizatorului.

Proiectarea bazei de date

Baza de date aferentă aplicației este compusă din următoarele tabele:

• Tabela User – conține informații despre utilizatorii aplicației


• Tabela Contact – conține informații despre datele de contact ale utilizatorilor
• Tabela Candidate – conține informații despre utilizatorii care doresc să-și găsească
un loc de muncă prin intermediul platformei
• Tabela Company – conține angajatorii care oferă locuri de muncă pentru candidați
• Tabela CV – conține informații despre CV-ul candidatului
• Tabela Language – conține informații despre secțiunea „Limbi straine” din cadrul
CV-ului
• Tabela Type – conține informații despre tipurile de dezvoltare personală ce pot fi
incluse în CV
• Tabela PersonalDevelopment – conține informații despre secțiunea „Dezvoltarea
personala” ce pot fi incluse în CV
• Tabela Experience – conține informații despre secțiunea „Experienta” ce poate fi
inclusă în CV

29
• Tabela Education - conține informații despre secțiunea „Experienta” ce poate fi
inclusă în CV
• Tabela Job – conține informații despre locurile de muncă oferite de angajatori
• Tabela JobFlow – conține informații despre etapele urmărite în procesul de
recrutare pentru un anumit job
• Tabela Applicant – conține informații despre aplicanții pentru anumite job-uri

În Figură 4.10 este reprezentată schema bazei de date aferentă platformei de recrutare
ce conține tabelele, atributele și asocierile dintre entități.

Figură 4.10 Schema bazei de date

30
5 Implementarea aplicației

5.1 Arhitectura aplicației

În Figura 5.1 este reprezentată arhitectura platformei de recrutare evidențiind


interacțiunile între componente.

Figură 5.1 Arhitectura platformei de recrutare

Controller-ul recepționează cererile solicitate de client și adresează modelului


comenzile pentru a fi executate. Responsabilitățile modelului sunt de a controla unul ori mai
multe elemente ale sursei de date și de a trimite un răspuns care să fie concordant cu starea
curentă a sistemului, luându-se în considerare măsura în care această stare poate fi schimbată.
Partea de „view” reprezintă puntea de legătură dintre utilizator și aplicație, ocupându-se cu
încărcarea și reprezentarea conținutului aplicației în interfață..

5.2 Implementarea funcționalităților

Platforma de recrutare din lucrarea curentă se adresează atât persoanelor care își caută
un job, cât și companiilor ce pun la dispoziție locuri de muncă indiferent de nivelul de
calificare profesională. Având în vedere că aplicația va fi folosită de două categorii de
utilizatori pentru atingerea unui scop comun, autentificarea se va face în funcție de rolurile de
candidat și companie, urmând ca autorizarea pe fiecare modul să se realizeze în concordanță
cu rolul utilizatorului autentificat. Platforma dispune de o interfață creativă și facilă pentru
orice utilizator.

31
Prima pagină a aplicației conține ca și element central facilitatea de filtrare a job-urilor
disponibile și conține butonul de legătură către pagina de autentificare. Dacă utilizatorul și-a
creat un cont în prealabil, atunci acesta va fi redirecționat către pagina de autentificare unde
trebuie să introducă credențialele aferente. Dacă utilizatorul a introdus credențiale incorecte,
acesta primește un mesaj de eroare prin care va fi notificat în acest sens. Dacă utilizatorul nu
deține un cont în prealabil, atunci acesta trebuie să acceseze pagina de creare a contului, urmând
ca după această etapă să fie redirecționat către pagina de autentificare.

După validarea credențialelor utilizatorului, se verifică dacă acesta are rolul de candidat
sau angajator pentru a putea fi redirecționat către meniul pregătit acestuia (vezi . Figură 5.2)

Figură 5.2 Autentificarea și accesul în funcție de rolul utilizatorului

Dacă utilizatorul cu rolul de candidat și-a creat în prealabil CV-ul, atunci acesta îl poate
vizualiza în cadrul paginii „Aplicări”. Dacă utilizatorul nu deține un CV, atunci acesta își poate
crea unul în cadrul paginii „Creare CV”. Crearea CV-ului presupune completarea a patru
secțiuni: contact, experiență, educație și abilități în pop-ul asociat butonului de adăugare pentru
fiecare secțiune (vezi Figură 5.3) .

Figură 5.3 Paginile destinate candidatului

Elementul central al platformei de recrutare este constituit de posibilitatea de filtrare a


job-urilor disponibile, punându-se la dispoziție ca și criterii de căutare: titlul locului de

32
muncă, tipul, orașul de proveniență și numele angajatorului (vezi Figură 5.4). În cazul în care
criteriile selectate de utilizator nu sunt în concordanță cu valorile disponibile în baza de date,
acesta va fi informat în acest sens (vezi Figură 5.5) . Dacă utilizatorul nu-și va seta niciun
criteriu de filtrare, atunci acesta va vedea toate job-urile active existente în bază de date până
în momentul curent.

Figură 5.4 Pagina de start a platformei de recrutare Figură 5.5 Mesaj de informare

Figură 5.6 Rezulte returnate in urma filtrarii Figură 5.7 Vizualizarea detaliilor unui job

În cazul în care criteriile selectate de utilizator sunt concordanțe cu valorile existente în


baza de date, utilizatorul va fi direcționat către o nouă pagină ce conține prezentarea rezultatelor
obținute în urma filtrării într-un mod atractiv și simplu pentru utilizator. Această pagină conține
informațiile principale despre job-uri, precum compania angajatoare, titlul job-ului și tipul
acestuia (vezi Figură 5.6) . Titlul fiecărui job deține legătură către pagină de detalii aferentă
acestuia pentru prezentarea secțiunilor componente ale anunțului locului de muncă. Fiecare job
adăugat de angajator conține trei secțiuni: scurtă descriere, responsabilitățile acestuia și
cerințele angajatorului ce trebuiesc îndeplinite de candidat (vezi Figură 5.7).

Pentru a dispune de facilitățile oferite de platformă de recrutare, utilizatorul trebuie să


fie autentificat cu rolul specific. În continuare vor fi prezentate facilitățile oferite de aplicație
pentru utilizatorii cu rolul de candidat.

După înregistrarea candidatului ca și utilizator al platformei, acesta trebuie să-și adauge


datele personale în vederea contactării ulterioare de către angajator pentru includerea în
procesul de recrutare (vezi Figură 5.8). Exceptând câmpul aferent adresei, toate câmpurile sunt
obligatorii, utilizatorul fiind notificat în acest sens. După completarea câmpurilor obligatorii,

33
datele de contact ale utilizatorului sunt salvate în baza de date, oferind ulterior posibilitatea de
editare a informațiilor introduse. Pentru a beneficia de aplicarea pentru un job existent,
candidatul trebuie să dețină un CV pe platformă. În vederea respectării acestei cerințe,
candidatul trebuie să completeze secțiunile aferente experienței profesionale, educației,
limbilor străine aprofundate până în momentul curent și/sau abilitățile dobândite în urma
cursurilor, conferințelor sau altor activități destinate dezvoltării personale sau profesionale.
Aceste secțiuni îi sunt disponibile candidatului în pagina „CV”. După completarea și salvarea
persistentă a unui CV, acesta poate actualiza informațiile per fiecare secțiune.

Figură 5.9 Aplicarea pentru un job

Autorizarea aplicării candidatului pentru un


anumit job este realizată după autentificarea
utilizatorului cu acest rol. Dacă utilizatorul nu și-a
adăugat un CV înainte de a accesa funcționalitatea de
aplicare pentru un job, atunci acesta va fi informat în
acest sens, neputând beneficia de această acțiune. În
cazul în care utilizatorul deține un CV valid ce conține
cel puțin o secțiune completată, acesta poate aplica
pentru o multitudine de job-uri (vezi Figură 5.9) .

Figură 5.8 Secțiunea de contact destinată


candidatului

Acțiunea de aplicare pentru un job inițiată de candidat, are ca rezultate trimiterea CV-
ului direct la angajator și notificarea acestuia privind interesul utilizatorului pentru un job din
portofoliul companiei. Candidatul are posibilitatea de a vizualiza aplicările efectuate în meniul
destinat acestuia. În secțiunea „Aplicări” disponibilă candidatului, este prezentată sub formă de
lista aplicările efectuate de acesta, precum și statusul utilizatorului în cadrul fiecărui proces de
recrutare. La fiecare migrare la următoarea etapă din cadrul procesului de recrutare, candidatul
primește notificare în acest sens.

Utilizatorul cu rolul de angajator dispune de facilitatea de adăugare de job-uri ce


presupune completarea informațiilor privind tipul, titlul și departamentul asociat locului de
muncă precum și completarea a trei secțiuni ce caracterizează job-ul: scurtă descriere,
responsabilități și cerințele impuse de job (vezi Figură 5.11). Mai mult decât atât, fiecare job
trebuie să conțină un proces de derulare structurat pe etape. Angajatorul are responsabilitatea
de a actualiza statusul fiecărui aplicant în decursul procesului de recrutare. Fiecare angajator
dispune de secțiunea „Job-urile mele” în vederea vizualizării listei ce aparține acestora. În

34
cadrul fiecărui job, se oferă posibilitatea de editare, vizualizare detalii sau ștergere a acestuia
(vezi Figură 5.10).

Figură 5.10 Secțiunea destinată job-urilor unui angajator

Angajatorul are posibilitatea de a vizualiza aplicanții pentru job-urile adăugate precum


și de a vedea etapa curentă a fiecăruia în procesul de recrutare. De asemenea, utilizatorul cu
rolul de angajator dispune de o lista a tuturor candidaților existenți pe platforma de recrutare,
inclusiv facilitatea de vizualizare a CV-urilor corespondente.

În vederea adăugării unui job de către utilizatorul cu rolul de angajator a fost utilizată o
fereastră de dialog ce conține câmpurile aferente entității job, toate acestea fiind obligatorii spre
completare. Salvarea informațiilor este transmisă către controller-ul aferent entității job în
cadrul căruia se extrage id-ul angajatorului și se inserează entitatea în baza de date (vezi Figură
5.12) . Salvarea efectivă prin intermediul facilitii oferite de Entity Framework se face în clasa
JobOperation ce implementează interfața IJobOperation, aceasta conținând toate acțiunile
aferente entității job ce implică operațiile SQL (creare, interogare, actualizare și ștergere).

Figură 5.11 Adăugarea unui job Figură 5.12 Salvarea unui job în baza de date

Validările de date pentru acțiunea de adăugare a unui job se realizează în cadrul


componenței „view” corespondentă creării unui job. Acestea presupune validarea câmpurilor
obligatorii spre completare, utilizatorul fiind notificat în cazul omiterii vreunui câmp.
Fereastra de dialog aferentă adăugării unui job conține stiluri de CSS și funcționalități de
javascript din pachetul bootstrap.

35
6 Concluzii

În concluzie, platforma de recrutare din prezenta lucrare a presupus o analizare


amănunțită a site-urilor din aceleași domeniu existente pe piață până în momentul curent din
punctul de vedere al funcționalităților oferite. Comparativ cu acestea, aplicația oferă
transparența procesului de recrutare pentru un anumit job prin disponibilizarea în timp real a
migrării candidatului în diferitele etape ale procesului de recrutare. În acest fel, atât candidatul
cât și angajatorul dețin o evidență clară a statusului candidatului în procesul de recrutare pentru
un anumit job.

Platforma de recrutare reușește să îndeplinească cerințele candidatului de a fi informat


în timp real privind derularea recrutării pentru job-ul vizat, prin trimiterea de notificări
referitoare la trecerea acestuia în următoarea etapă, respectiv excluderea aplicării acestuia din
cauza neîndeplinirii cerințelor angajatorului. De asemenea, pune la dispoziția angajatorului o
listă a tuturor candidaților înscriși pe platformă și oferă posibilitatea de vizualizare a CV-urilor
corespondente.

Din punctul de vedere al extinderii funcționalităților platformei de recrutare, menționez


că aceasta ar putea include configurarea fluxului de recrutare pentru fiecare job astfel încât
angajatorul să poată desemna acțiunile ce trebuie executate în funcție de condițiile stabilite de
acesta. Cu alte cuvinte, fluxul de recrutare ar putea conține condiții și acțiuni ce pot fi
interpretate de platformă și executate ca atare. De asemenea, platforma ar putea facilita
adăugarea de teste ce pot fi trimise aplicanților în vederea evaluării acestora. Pe baza
răspunsurilor corecte setate de angajator la realizarea componenței testului, serverul va putea
face o evaluare automată, generând rezultatul testului în timp real și luând decizia de a avansa
sau nu aplicantul în etapa următoare pe baza unui procent minim setat în prealabil. O altă
funcționalitate extinsă a aplicației poate fi facilitarea programării interviurilor dintre angajator
și candidat. Prin extinderea funcționalităților prezentate, se automatizează sarcinile executate
de angajator.

36
7 Bibliografie

[1] [Interactiv]. Available: https://www.google.com/publicdata/.

[2] Ziare.com. [Interactiv]. Available: http://www.ziare.com/locuri-de-munca/stiri-


joburi/trimiterea-cv-ului-la-angajator-cea-mai-eficienta-cale-de-a-gasi-un-job-sondaj-
1199846.

[3] G. Trends. [Interactiv]. Available:


https://trends.google.com/trends/explore?date=2017-04-25%202018-05-
25&q=hipo.ro,bestjobs.ro,ejobs.ro,myjob.ro.

[4] hipo.ro. [Interactiv]. Available: https://www.hipo.ro/locuri-de-


munca/vizualizareArticol/1220/Afla-care-sunt-principalele-siteuri-de-joburi-din-
Romania.

[5] Wikipedia. [Interactiv]. Available:


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

[6] Wikipedia. [Interactiv]. Available:


https://en.wikipedia.org/wiki/Microsoft_SQL_Server.

[7] Wikipedia. [Interactiv]. Available:


ttps://ro.wikipedia.org/wiki/Cascading_Style_Sheets..

[8] J. Resig, “jQuery Cookbook”, O’Reilly Media, 2009.

[9] Wikipedia. [Interactiv]. Available:


https://en.wikipedia.org/wiki/Fortify_Software.

[10] HP Fortify Static Code Analyzer, 2016.

[11] [Interactiv]. Available: https://ro.wikipedia.org/wiki/Cascading_Style_Sheets.

[12] [Interactiv]. Available: http://ciobanu.cich.md/lectii_view.php?id=1.

[13] Javascript.

[14] [Interactiv]. Available: http://dotnet.xhost.ro/.

37

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