Platformă de recrutare
COORDONATOR ŞTIINŢIFIC
Iulian ILIE-NEMEDI
ABSOLVENT
Ileana Simona SCARLAT
București 2018
1
Table of Contents
1 INTRODUCERE ........................................................................................................................... 3
6 CONCLUZII ............................................................................................................................... 36
7 BIBLIOGRAFIE .......................................................................................................................... 37
2
1 Introducere
Figură 1.1 Rata șomajului în România din 1998 până în prezent [1]
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) .
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.
4
2 Analiza la nivel de aplicații de recrutare
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ă.
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]
a) Hipo.ro
7
Figură 2.6. Adăugarea unui design atractiv CV-ului Figură 2.7. Interfața responsive a portalului hipo.ro
b) Bestjobs.ro
8
Figură 2.9. Filtrarea rezultatelor după cuvântul cheie „blabla"
c) Ejobs.ro
9
Figură 2.10. Meniul aplicatiei ejobs.ro
Figură 2.11. Funcționalități specifice portalului ejobs.ro Figură 2.12. Meniul destinat candidatului
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
11
3 Resurse software si tehnologii implicate in
implementare
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.
- 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 ).
13
3.2 Limbaje și tehnologii 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.
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”.
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].
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.
. 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.
16
Figură 3.5 Principiul testării automate
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.
17
4 Analiza, modelarea și proiectarea 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.
18
4.2 Modelarea conceptuală a datelor
Modelarea conceptuală a datelor este caracterizată de următoarele asocieri: (vezi Figură 4.2)
19
4.3 Modelarea logică a datelor
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.
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
22
Stare Schiță
Postcondiții -
Declanșator Candidatul
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 -
24
Figură 4.5 Diagrama cazurilor de utilizare pentru actorul cu rolul de angajator
Stare Schiță
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.
Postcondiții -
Declanșator Angajatorul
26
4.4.2 Diagramele de activitate
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
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
Î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
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.
30
5 Implementarea aplicației
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)
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) .
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
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.
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.
34
cadrul fiecărui job, se oferă posibilitatea de editare, vizualizare detalii sau ștergere a acestuia
(vezi Figură 5.10).
Î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
35
6 Concluzii
36
7 Bibliografie
[13] Javascript.
37