2017 Mit 083
2017 Mit 083
Management System
T I K Vithanage
2021
Web Based Recruitment
Management System
T I K Vithanage
University of Colombo School of Computing
Declaration
The thesis is my original work and has not been submitted previously for a degree at this or any
other university/institute.
To the best of my knowledge it does not contain any material published or written by another
person, except as acknowledged in the text.
_____________________
under my supervision. The thesis has been prepared according to the format stipulated and is of
acceptable standard.
Certified by:
_____________________
Signature: Date:
Abstract
Recruitment is an important factor in present companies. This consumes much time, cost and
resources to handle this tedious task. Most of the companies use third party generic soft wares
to handle these. Unfortunately, these are unable to customize according to the customer needs.
Then it is needed to purchase multiple soft wares separately to complete the full process of
recruitment. Otherwise they have to use third-party services to assist the process. This might
be a risk for the company. Because they have to provide their company details, job role details,
salary details and some of the standards of the company that they follow. Any how this occupy
number of days to finalize even a one task of whole process. Then it is impossible to complete
all the tasks which are expected from the company such as progress reporting, evaluation
reporting and other related report generating tasks.
After considering identified issues, this computerized solution was proposed against existing
manual process. But it should be accessible to external candidates. Because of that, this Web-
Based Recruitment Management System was proposed. This system contains all steps of the
recruiting process. Including job postings, candidate handling, candidate evaluation, and
recruitment-related reporting. This system has adapted MVC (Model View Controller)
architecture and object-oriented techniques. Then UML (Unified Modeling Language) was
used to analyze and design the system. For the implementation Typescript and JavaScript was
used. Visual Studio Code has been used as the development IDE. Both MySQL and Type ORM
have been used to manage the data storing and retrieving and aspects. Chart.js has been used
to generate reports.
Finally, the system was effectively developed and successfully implemented. According to the
user evaluation feedback, this proposed web-based recruitment management system fulfills
and satisfies most of the requirements of the organizations.
0.2 Acknowledgment
In order to achieve something, we have to contribute our own eorts and
strength. But as an individual, it is hard to achieve. Because most of the
areas which have been considered are beyond the subject areas that we are
already engaged in. Sometimes they are beyond our existing knowledge areas.
Because of that, this eort would have been in vain without the help and
support of these people. They have provided maximum support and eort
to make this eort successful.
i
Contents
0.1 Declaration . . . . . . . . . . . . . . . . . . . . . . . . . . . . i
0.2 Acknowledgment . . . . . . . . . . . . . . . . . . . . . . . . . i
0.3 List of Acronyms . . . . . . . . . . . . . . . . . . . . . . . . . 1
1 Introduction 2
1.1 Motivation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.2 Aims and Objectives . . . . . . . . . . . . . . . . . . . . . . . 3
1.3 Scope . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.4 Structure of the thesis . . . . . . . . . . . . . . . . . . . . . . 4
2 Background 6
2.1 Requirement Analysis . . . . . . . . . . . . . . . . . . . . . . . 8
2.1.1 Methods and techniques used for requirement analysis . 8
2.1.2 Data ow diagram normal recruitment management
system . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
2.2 Review of Similar Systems . . . . . . . . . . . . . . . . . . . . 11
2.2.1 Goodrms . . . . . . . . . . . . . . . . . . . . . . . . . 11
2.2.2 Simplicant . . . . . . . . . . . . . . . . . . . . . . . . . 11
2.2.3 Recruity . . . . . . . . . . . . . . . . . . . . . . . . . . 12
2.2.4 Mighty Recruiter . . . . . . . . . . . . . . . . . . . . . 13
2.2.5 Zoho Recruit . . . . . . . . . . . . . . . . . . . . . . . 13
2.2.6 Comparison of Similar Systems . . . . . . . . . . . . . 15
2.2.7 Comparing the Current System with proposed system . 16
2.2.8 Software Development Methodology Agile Model . . . 18
3 Design 20
3.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
3.1.1 Comparison of alternative design strategies . . . . . . . 21
3.2 System Design . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
3.2.1 Use Case Diagram for Recruitment Management System 25
i
3.2.2 ER Diagram for Recruitment Management System . . 30
3.2.3 Class Diagram for Recruitment Management System . 32
3.2.4 Sequence Diagram for Recruitment Management System 33
3.2.5 Data modeling diagrams . . . . . . . . . . . . . . . . . 35
3.2.6 Data Flow Diagram for Recruitment Management Sys-
tem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
3.2.7 Process Diagram for Recruitment Management System 41
3.2.8 Activity Diagram for Recruitment Management System 43
3.2.9 User interface design . . . . . . . . . . . . . . . . . . . 46
3.2.10 Report View . . . . . . . . . . . . . . . . . . . . . . . . 48
4 Implementation 50
4.1 Considering the implementation environment . . . . . . . . . . 51
4.2 Justication for the choice of implementation platform . . . . 52
4.2.1 Acknowledgment of any reused existing codes / APIs . 57
6 Conclusion 69
6.1 Critical evaluation of the project . . . . . . . . . . . . . . . . 69
6.2 Lesson Learnt . . . . . . . . . . . . . . . . . . . . . . . . . . 69
6.3 Future Works . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
ii
Appendix C User Manual 79
C.1 Logging to the system . . . . . . . . . . . . . . . . . . . . . . 79
C.2 Maintain and modify data in proles . . . . . . . . . . . . . . 81
C.2.1 Candidate Module . . . . . . . . . . . . . . . . . . . . 81
C.3 Common buttons and validations used . . . . . . . . . . . . . 85
C.3.1 Common buttons used . . . . . . . . . . . . . . . . . . 85
C.4 Error validation for system . . . . . . . . . . . . . . . . . . . . 85
C.4.1 Common eld validations . . . . . . . . . . . . . . . . 85
C.4.2 Common message validation for system . . . . . . . . . 86
iii
List of Figures
iv
3.20 Common report view . . . . . . . . . . . . . . . . . . . . . . . 49
C.1 URL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
C.2 Login credentials . . . . . . . . . . . . . . . . . . . . . . . . . 80
C.3 System dashboard . . . . . . . . . . . . . . . . . . . . . . . . . 80
C.4 System dashboard to select options . . . . . . . . . . . . . . . 81
C.5 Space for personsl details . . . . . . . . . . . . . . . . . . . . . 82
C.6 Space for qualications . . . . . . . . . . . . . . . . . . . . . . 82
C.7 Space for review information list . . . . . . . . . . . . . . . . . 83
C.8 Space for review information personal view . . . . . . . . . . . 83
C.9 Space for update information . . . . . . . . . . . . . . . . . . 84
C.10 Commonly used Edit and delete button . . . . . . . . . . . . . 85
C.11 Commonly used Add data and Form Reset . . . . . . . . . . . 85
C.12 Common eld validation . . . . . . . . . . . . . . . . . . . . . 86
C.13 Common eld validation for success . . . . . . . . . . . . . . . 86
C.14 Common message for delete conrmation . . . . . . . . . . . . 87
C.15 System validation for successful function . . . . . . . . . . . . 87
C.16 System validation for failed function . . . . . . . . . . . . . . 87
v
List of Tables
vi
0.3 List of Acronyms
MVC Model View Controller. . . . . . . . . . . . . . . . . . . . . . . 22
UI User Interface. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
1
Chapter 1
Introduction
1.1 Motivation
Companies need to recruit employees to continue their day-to-day works.
Day by day technology changes. Then the needed talents also get changed.
Because of that, it is necessary to identify the most appropriate candidate
as an employee among most candidates. It needs good selection methods.
The problem is, in most cases, there is a large number of applicants. It
may be hundreds, thousands, or more than small numbers. Evaluating these
applications one by one is time-consuming. Apart from that, it may avoid the
most appropriate candidates as the application limit exceeds when selecting
them manually. Human errors may occur. As same it is possible to cheat on
2
selection as lack of transparency. In most cases, some may avoid applying as
they have diculties in normal posting methods. But if it is possible to log
in to some system and continue, it may get more popular and helpful.
Eectively and eciently handle the candidate details and other related
documents of the candidates.
Get the support from all departments to evaluate the candidates and
their performances.
Keep track of each and every candidate and help to improve their abil-
ities and identify the weaknesses and encourage them for further im-
provements.
1.3 Scope
Maintains a system for recruitment process is more helpful to handle recruit-
ment process eciently. To achieve this process it has identied these steps
as scope of the project.
3
Approve applied candidates
4
Chapter 05: Testing and Evaluation This chapter describes how the
system was tested by using various testing methods. It also reported
errors and how to overcome those errors and how to modify the system.
And it implies the security options used and its functionalities.
Chapter 06: Conclusion This chapter include the all summarize details
of the projects and also include ndings and lessons learned during the
project with further improvements of the project.
References All the referred books, URL references and other materials
will be included in this section.
Appendix This include further details and further proofs and supple-
mentary readings for the related chapters.
5
Chapter 2
Background
6
automatically sorting and ltering applications to nd the best prospects.
Apart from that it will help to keep the transparency of the recruitment
process. Because of these it is necessary to have such an automated system
to make HR recruitment process much easier. Existing recruitment manage-
ment systems which are available online are more general. They have only
the common features such as posting advertisements, applying and make
responds. [17] [18] But in this system it is unique because it has its own
features. Such as initial stage selection, organization related job posting and
only most appropriate candidates can be selected. And this will provide abil-
ity to evaluate the talent of selected candidate. Because of this, this will be
a unique system from other systems.
7
2.1 Requirement Analysis
2.1.1 Methods and techniques used for requirement anal-
ysis
Make interviews and discussions with related people in the organiza-
tion.
8
2.1.2 Data ow diagram normal recruitment manage-
ment system
9
Figure 2.3: Data ow of normal scenario
10
2.2 Review of Similar Systems
Day by day technology getting improved. But observing existing system it
is possible to obtain more experience on how our proposed system should be
developed and how required features should be presented to the user.
2.2.1 Goodrms
In this also contain number of open source most appropriate systems accord-
ing to the requirements. But it is unable to nd all the requirements in one
system. It is needed to get more than one system. And then it is needed
to inter connect them to fulll our requirements. On the other hand the
technologies used are not matching with the existing technologies that the
business contains. Also it is unable to customize the system according to the
priorities dened by the business.
In this system: it contains simple dashboard and the very common features of
adding CV and viewing dierent job opportunities. But it does not contains
much details on selection process or recruitment process. It just consider on
the collecting CVs. But in our suggested system, it just collect the vacancy
related information form the candidate and it helps to improve the system
eciency and avoid unnecessary complications. [17]
2.2.2 Simplicant
This is one of the most appropriate systems that can be identied for the
requirements identied. These contain number of features that is needed.
11
But it is a commercial version and it allows limited number of candidates for
one time. And it is unable to customize features according to the needs of
the business.
In this system most of the features have been added. But it does not allow
facilities to evaluate number of candidates in a little amount of time. As same
it does not provide any support for recruiting and interview management
activities. They work as third party people for on-boarding process. This
provide pity much easier but it does not provide much eective way to solve
these at once. [17]
2.2.3 Recruity
Recruity is Recruitment management system which provides the facilities to
post vacancies, providing incoming responses, and the posting of jobs on the
web and social media. This contains optimization process. Then this pro-
vides synchronization of the data with smartphones and tablets.
12
Figure 2.6: Recruity Recruitment Management System
In addition, this free recruitment software posts jobs for reputable job boards.
And both free and paid. It ensures that the job requirement reaches to the
masses and the company is able to nd the right t. [26]
13
and you don't miss a good hire. They make it possible by oering a user-
friendly interface combines with robust functionalities.
3. Selection
In most cases, selection should be done in manually. Because of that it
is needed to print CVs and identify the qualications one by one. Then
14
it consumes cost, time and it may miss the correct candidates. Be-
cause of that it is decided to develop this system with special selecting
method.
4. Eectiveness
When it contains dierent systems to manage HR, interviews and re-
cruiting. But in most cases they are not interconnected. Because of
that it may loose some important data. And it will loose the trans-
parency. Because of that it is suggested to have special method to
interconnect each and every related data.
15
2.2.7 Comparing the Current System with proposed sys-
tem
Current system contains paper based manual system. It contains Excel based
calculations and evaluations. In proposed system it is decided to implement
automated system to calculate and evaluate the candidate at the same time.
This will help to reduce cost and time of both inspectors and candidates.
Then the candidate related job posting, job applying and selection related
all functions are interconnected through this system. Because of that it
helps to achieve goals, ecient and eectively. For this implementation it
is needed to identify the new requirements for the proposed system. There
it was followed, Observation, Document Analysis and Interviews to collect
relevant information.[21]
Functional Requirements
Manage Job Posting
This helps to store large amount of items with their information and
easily search, edit and delete related jobs.
Manage Interview
Mange Users
This will facilitate storing and managing user details with personal
details including their job related details.
Manage Departments
This helps to manage individual department and its job requirements.
Manage Evaluations
All individual evaluations and details related to each candidate will be
stored and managed.
Manage Interviews
Since interviews have to be conducted and its all details will be stored
and retrieved.
Manage Candidates
Main characters of this system are candidates. Their details will be
stored and managed.
16
Non Functional Requirements
Non functional requirements describe the features which should have to im-
prove the quality of the system. Non-functional requirements are dicult
to work with the functional ones because they depend on each user's per-
spective and preferences. But, the userfriendliness of the system depends on
how well these nonfunctional requirements are met. Following is the list of
nonfunctional requirements aim to oer in the proposed system.
Security
Since system will store sensitive details such as personal employee de-
tails, there are security measures in place such as user access manage-
ment, privileges control and unauthorized accedes prevention.
Usability
System userinterface contain easy to navigate menus, dashboard and a
clear way to indicate the current location user is in. This maximizes
the usability of the system allowing user to switch between modules
seamlessly.
Eciency and consistency System has very fast response rates and
accurate database management mechanisms preventing issues such as
data inconsistencies and slow data retrieval.
17
2.2.8 Software Development Methodology Agile Model
18
Testing / Quality assurance In this testing phase, development
will be compared with the user requirements and identify the quality
of the system. Then it will consider whether to continue with the same
task or come up with a new task.
19
Chapter 3
Design
3.1 Introduction
After collecting the requirements, it is essential to design the system to
achieve success in the nal system. Requirement gathering is the most chal-
lenging part of a project. And it is able to conrm and nalize the system
needs through this phase. Here, it is possible to consider dierent types of
design methods to identify and nalize the structure of the system. This will
be the core of the system that is going to complete step by step.In this chap-
ter it is discussed the system architecture by using dierent types of UML
diagrams. Each and all diagrams contains its own value of expression. These
design architectures will give a clear image and view of the system that is
going to develop. This is important because no one have an idea apart from
the BA's, Business owners and the Architectures of the system. As a result
of these introductions will help to simplify the meshed requirements. Apart
from that, it helps to simplify the verication and validation of the system.
This will helps both customer and people who involve in the development
process. Finally it will help all the parties involve in the development process
to overcome most of the problem which are to be occurred and which will be
occurred in the future.
After performing the analysis phase, it is considered and identied the func-
tional and non-functional requirements. But it is necessary to have a blueprint
for further coding and implementations. In this chapter will discuss the cho-
sen architectural design and user interface design strategies of the system
20
will also be explained in detail.
First the requirements are collected. For this it is using various methods.
After that it will be classied into two categories. They are Functional Re-
quirements and Non Functional Requirements. Then it will identied up to
what degree they could implement the system.
21
any disabilities. Because of that, the web-based approach is ideal for this
scenario.[21]
Reduce cost and time use for selection and evaluation processes
Model
This represents the shape of the data and business logic. It maintains
the data of the application. Models are being used as objects to retrieve
and store information to and from a database
View
This is a user interface. View display data with the help models to the
user and also enables them to modify the data
Controller
This handles user requests and logical operations. Typically, the user
interacts with a View, which inturn raises appropriate URL request,
this request will be handled by a controller
MVC modal is popular due to its powerful nature of separating data and its
representations. Simply put, the same data can be shown to two dierent
22
users in two dierent ways with the help of this modal.
23
Proposed system UML
24
3.2 System Design
3.2.1 Use Case Diagram for Recruitment Management
System
Use Case Diagram is a graphical indication of the interaction among the el-
ements of RMS. It represents the methodology used in system analysis to
identify, clarify and organize system. The main actors of Recruitment Man-
agement System. The main actors of RMS are: Super Admin, System user,
Candidate and coordinators: who perform the dierent type of use cases such
as Manage placement, Manage candidates, Manage interviews, and manage
users etc. Manage users and full Recruitment Management System opera-
tions. Major elements of the UML use case diagram of RMS are indicate in
the diagram as below.
25
Overall Use Case Diagram for RM
26
Proposed system System Admin
27
Proposed system Department Manager
28
Proposed system HR Manager
29
3.2.2 ER Diagram for Recruitment Management Sys-
tem
Entity Relationship Diagram. (ERD) ERD represents the model of Recruitment
Management System (RMS) RMS. The entity-relationship diagram of RMS
shows all the objects of database tables with its relationships. It is used to
structure data and to dene the relationships between structured data groups
of RMS functionalities. The main entities of the Recruitment Management
System are Department, Candidate, Jobs, Placement and interviews.
30
Figure 3.6: ER Diagram
31
3.2.3 Class Diagram for Recruitment Management Sys-
tem
32
Recruitment Management System Class Diagram describes the system re-
lated classes. It contains the details about the structure of the system
databases. It provides the details of classes, attributes and behaviors of
the system. Then it provides the relationship between each object. As in
diagram it provides Department class, Candidate class, Job class, placement
class and interview class. In each class it contains separate two parts in the
diagram. First one for its objects and the second one is for its behaviors.
Objects describes the parameters which are using to communicate with each
object and behaviors. Behaviors focus on the methods that are going to
use.
Interviews object
Placement object
Candidate object
Job object
Role object
In the login process it has it own sequence. This describes where admin
powers of login in their account using their credentials. After login user can
manage all the operations on candidate, interviews, placement, department
and job. All the pages such as placement, department, placement and job are
secure and user can access these page after login. The various objects in the
department, candidate, interview, placement and job page interact over the
course of the sequence and user will not be able to access this page without
verifying their identity. In this diagram it mainly focus on the interaction
between the objects of interviews, placement, candidate, job, department.
The instance of the class objects involved in this UML sequence diagram
mentioned above.
33
Figure 3.8: Sequence Diagram for Recruitment Management System
34
3.2.5 Data modeling diagrams
Entity Relationship Diagram, also known as ERD, ER Diagram or ER model,
is a type of structural diagram for use in database design. An ERD contains
dierent symbols and connectors that visualize two important information:
The major entities within the system scope and the interrelationships among
these entities. [15]
35
Figure 3.9: ERD diagram - Part 1
36
Figure 3.10: ERD diagram - Part 2
37
3.2.6 Data Flow Diagram for Recruitment Management
System
Recruitment Management System Data Flow Diagram (DFD) DFD is often
used as a preliminary step to create an overview of the Recruitment without
going into great detail, which can later be elaborated. It normally consists
of overall application data ow and processes. It contains all of the user
ow and their entities such all the ow of candidate, interview management,
job post and dierent type of search. All the diagrams have been used to
visualize of data processing and structured design of the Recruitment process
and working ow.
First Level DFD of RMS shows how the system is divided into subsystems
(processes), each of which deals with one or more of the data ows to or from
an external agent, and which together provide all of the functionality of the
Recruitment Management System as whole. It also identies internal data
38
stores of Login, registration, search, interview and post jobs. DFD Level
provides a more detailed breakout of pieces of the 1st level DFD.
Processing Post job records and generate report of all Post job
Processing Search job records and generate report of all search Job
Admin logins to the system and manage all the functionalities of RMS.
Admin can add, edit, delete and view the records of Candidate, Post
Job, Search Job and Login
Admin can search the details of candidate registration, search job and
evaluation
39
Figure 3.12: second level of DFD
40
3.2.7 Process Diagram for Recruitment Management
System
Candidate on Boarding Process RM Process Diagram
41
RMProcessDiagram
42
3.2.8 Activity Diagram for Recruitment Management
System
This is the Activity UML diagram for Recruitment Management System
which shows the ow between the activity of Admin, User,Candidate, De-
partment, Placement, Interview and Job.
43
RM Activity Diagram
44
Login Activity Diagram
45
3.2.9 User interface design
User Interface, or UI can be simply described as the view users see and per-
form actions on. This is one of the most critical aspects of the system since
the complexity and user friendliness of the UI can impact the success of the
overall project. UI design can also be dened as the process of designing the
way in which system users can access system functionality, and the way that
information produced by the system is displayed.
A good User Interface. (UI) UI provides a userfriendly experience, al-
lowing the user to interact with the software or hardware in a natural and
easy way. Nearly all software programs have a Graphical User Interface, or
Graphical User Interface. (GUI) GUI. This means the program includes
graphical controls, which the user can select using a mouse or keyboard. A
typical GUI of a software program includes a menu bar, toolbar, windows,
buttons, and other controls.
Since the users of this system are with intermediate computer skills, the sys-
tem should allow easy navigation with consistency between separate views. It
should also provide simplicity and descriptive feedback messages users with
minimal technical knowledge can easily understand.
Dashboard UI
User dashboard is the main interface which user directed initially to access the
system. It will provides all necessary links in a user friendly way. Dashboard
options will be restricted according to the login users privileges.
46
Figure 3.17: Dashboard UI
47
Data insert form
This system contains dierent data inserting forms in each module. Below
is the candidate related data input and update form. It consists with both
client-side JavaScript validation and server-side validation to conrm the
right data is fed into the database.
48
Figure 3.20: Common report view
Further descriptions related to the interfaces and reports are added as Ap-
pendix C. Reporting related interfaces and details are added in Appendix
D.
49
Chapter 4
Implementation
This chapter will explain how the implementation activities were carried out
during the system development. In this phase, designed technical solutions
in the design phase are transformed into an executable system that satises
the client requirements collected in the analysis phase. This chapter will dis-
cuss about the implementation process, required hardware, software, design
patterns, tools, languages, and frameworks used in the system.
Requirement gathering and analysis is a major task for any kind of project.
Mainly, requirement gathering is done by analyzing existing systems and re-
ferring to the documentation provided on the internet. There it is focused
on the challenges in the recruitment process and how to attract interview-
ers. Then it was identied that paper-based existing system does not meet
the needs of the modern world recruitment related requirements, and it took
much time to proceed when it increases the number of interviewers. As same,
sometimes it was unable to identify the correct person for the right place.
Due to some paper-based issues or attending issues. Because of these, it was
decided to work on these identied barriers. [21] [22]
After the requirement gathering, it was identied the normal existing system
deployment feasibility needs. Initially, the system was designed according to
these feasibility requirements. [23]
50
4.1 Considering the implementation environment
After taking this business organization's nature, functional and nonfunctional
requirements into account, hardware, software, and other resources were se-
lected for the implementation process in order to ensure high performance,
maintainability, and technological feasibility. Furthermore, userfriendliness
and overall experience were taken into consideration while making these
choices.
Hardware requirements
Server Computer :
Processor: 3 GHz or more
RAM : 2 GB or more
Hard Disk: 8 GB or more
Client Computer:
Processor: 1.5 GHz or more
RAM : 1 GB or more
Hard Disk: 4 GB or more5
Software
Operating System: Windows 7 upwards
Web browser: Mozilla Firefox / Chrome
Software requirements
Windows 10 / Ubuntu 20 LTS
ExpressJs 4.17
TypeORM
JQuery 3.5
51
Visual paradigm
Node.js 12.0
Google Chrome
Visual Studio Code has been the rst crossplatform development tool in the
Microsoft Visual Studio family that runs on Windows, Linux, and macOS.
It is free, open source, and it is denitely a code eccentric tool, which makes
it easier to edit code les and folderbased project systems as well as writing
crossplatform web and mobile applications over the most popular platforms,
such as Node.js with integrated support for a huge number of languages and
rich editing features such as IntelliSense, nding symbol references, quickly
reaching a type denition, and much more. [3]
52
TypeScript Language
Since both the backend and frontend of this project were developed using
Javascript,TypeScript was selected as the language for the majority of the
development. This was due to the fact that it is a superset of Javascript with
additional features such as type checking and decorators. Not only that, But
also since TypeScript is strongly typed, it was perfect for nding bugs and
writing good code.
Node.js
The server side of this project was developed using TypeScript, which ba-
sically results and Javascript code. But in order to run Javascript outside
the browser, something called a runtime is required. There are two major
run-time for Javascript called Node.js and Deno. For this, Node.js was
selected due to its high popularity and massive community support. Simply
Node.js is a run-time for writing server side JavaScript applications. It is built
on top of the V8 JavaScript run-time and uses an eventdriven, nonblocking
I/O model that makes it perfect for dataintensive, realtime applications.
Node is often used to build back end services that communicate with client-
side applications. These applications get and send data through a back end
service called an API. The API serves as an interface between dierent pro-
grams, so they are able to talk to each other[5] .
53
In more technical terms, NPM, Node Package Manager, is two things:
MySQL 8.0
Since database design of this system was done according to the relational
database design, multiple choices were available to use as the Relational
Database Management System such as PostgreSQL and Microsoft SQL Server.
From those, MySQL was selected for this project due to its suitability for
the client's requirements and open source nature.
It must be said that MySQL is easy to use and its operation is very fast.
MySQL requires at rst a general knowledge of SQL to work eectively with
it. MySQL does not require much more knowledge, but a little knowledge of
common relational database management system (RDBMS) is helpful [6]
Boostrap 3
Coding Cascading Style Sheet). (CSS) CSS manually for each and every
module of the system is a time consuming tedious task. But there are a
number of previously written, industry standard CSS libraries with reusable
54
code and components. From those, a library called Bootstrap 3 was se-
lected as the main library for designing UI components for modules in this
system.
Also, Bootstrap was used to avoid writing lengthy code and responsiveness
of each UI was well maintained due to the fact that it is intended to create
responsive websites [13].
jQuery
Most components in the clientside of this application was programmed using
Javascript. Since writing plain Javascript can lead to lengthy code, JQuery
was selected to ease up the process. Furthermore, jQuery was needed as a
dependency for Bootstrap 3 library.
Google Chrome
Here Chrome is selected as the primary web browser as it is necessary to
access the client side. Google Chrome is the most popular browser with bet-
ter support for modern Javascript features. And then it was selected as the
primary browser for this project. Further it should be mentioned that the
DevTools in Chrome was used when debugging and testing the clientside of
the system. Then Google Chrome is the primary browser, since this web-
based application complies with W3C standards, it can also be used in other
browsers such as Mozilla Firefox, Opera, and Apple Safari.
Windows 10 OS
Node.js and JavaScript development and deployment can be done in all kind
of platforms, both Windows 10 and Ubuntu 20 was used throughout the de-
velopment process. Also, Ubuntu was selected as the most suitable operating
system for the server side aspect of the project. Following are brief descrip-
55
tions of both of these operating systems.
TypeORM
When working with relational databases of large scale, manually running
SQL queries and managing them is a tedious task which can lead to long
development times and unstable systems. To simply this process, there are
tools known as ORMs. These are basically used to interact with databases
in a more abstract manner. For Node.js, there are various ORMs available.
From those, TypeORM was selected for this project due to its compatibility
with TypeScript, great documentation and large community.
ORM is a type of tool that maps entities with database tables. ORM pro-
vides simplied development process by automating object to table and table
to object version. Once it is written the data model in one place, it becomes
56
easier to update, maintain, and reuse the code.[12]
Since, the model is weakly bound to the rest of the application, it can be easily
changed without any hard dependency with other part of the application
and can be easily used anywhere inside the application. TypeORM is very
exible, abstracts the RDBMS system away from the application and allows
us to benets from the use of OOP concepts [12]
Chart.js library
Chart.js is a collection of prewritten JavaScript classes that can be used to
generate various charts and visualize them using HTML5 Canvas. It is ca-
pable of displaying interactive, detailed charts for a given data set. For that
reason, this library was used for the report generation functionality of this
system.
jQuery library
jQuery is not a language, but it is a well written JavaScript code. As quoted
on ocial jQuery website, it is a fast and concise JavaScript Library that
simplies HTML document traversing, event handling, animating, and Ajax
interactions for rapid web development.
Bootstrap framework
Bootstrap is a free and opensource frontend framework for designing websites
and web applications. It contains HTML and CSS based design templates
57
for typography, forms, buttons, navigation and other interface components,
as well as optional JavaScript extensions.
58
Chapter 5
This chapter describes the testing and evaluation of the Web Based Recruit-
ment Management System which is developed. Testing covers the Require-
ment Testing, Software Testing and the Usability Testing. In the rst sce-
nario, requirement testing refers to the testing which conrms the identied
requirements are satised through the developed functions. Then Software
testing certies the functions and the appearances of the developed system.
Finally, the usability testing provides the performance and user experiencing
issues and its quality. The system is then evaluated from a software point of
view. Below sections will provide the details descriptions of the used testing
types and its results.
59
test plan was designed. A test plan includes: test objectives, schedule and
logistics, test strategies and especially test cases.
Test cases were created according to the designed test plan. That contains
data, procedure, and expected result and represents which use to system or
part of the system run. To reduce complexity of the testing process test cases
were designed for each module independently. The following tables specify
some test cases.
Manual testing method and procedures used for testing rather than automa-
tion tools and technologies.
Test Case Id 01
Test Component Dashboard
Module Dashboard
Test Case Dashbord links
Expected output Highligheted elds when cursor provided and when click, link to the expected page
No Test Case Actual output Status
01 Navbar arrow expand function List should be expand Result
02 Navbar arrow close function List should be closed Result
03 User Link Link should be directed to the User Portal Result
04 Previlege Link Link should be directed to the User Privelege Portal Result
05 Role Link Link should be directed to the Role Portal Result
06 Candidate Link Link should be directed to the Candidate Portal Result
07 Job Category Link Link should be directed to the Jon Category Portal Result
08 Department Link Link should be directed to the Department Portal Result
09 Job Vacancy Link Link should be directed to the Job Vacancy Portal Result
10 Candidate Prole Review Link Link should be directed to the Candidate Prole Review Portal Result
In this scenario, it has been used all the test cases as the document for
requirement testing. It contains all the UI requirements and the functional
60
requirements as well. Then using it as a check list, this requirement test has
been done. Below is the one example of check lists.
61
of the collection of units or functions. Most of the time this is a one-page
or portal which contains inter depend on functionalities. Then subsystem
contains a collection of interdependent collection of modules. Finally, system
testing is testing the full system as a whole.
62
5.3.4 UI Testing
UI Testing or GUI Testing is a mechanism meant to test the aspects of any
software that a user will come into contact. Usually means testing the visual
elements to verify that they are functioning according to requirements in
terms of functionality and performance.
63
Figure 5.3: System error testing - test cases examples
64
5.4.1 API Testing
API testing refers to Application Programming Interface related testing.
Main focus of this testing is to meet the functional expectations, reliabil-
ity, performance and security.
In this project Postman software is used for API testing. This helps test all
the logic based service testing.
65
Figure 5.6: example01 API
66
Figure 5.8: example03 API
5.5 Evaluation
After completion of the project implementations, it is needed to conduct
user evaluation session. For this scenario, system has given for some random
67
users and get their comments while they are using the system. The ques-
tionnaire used, has been appended to appendix F. According to the users,
they have provided below comments and they have been corrected as change
requests:
Login form should be small and should appeared easily Due to some
issue, login does not appeared as developed. Then it was corrected.
Users request for a date indication in the system to easily identify the
days It has been added to the system as a change request.
Some creative ideas were provided and they have been kept as future
developments.
68
Chapter 6
Conclusion
Earlier and most of the companies are using normal manual methods of
interviewing and evaluation. This process will take hours to provide rel-
evant solutions. Due to this reason, neediness of automated system. By
considering all these scenarios it is identied the requirements for the pro-
posed system. Then this system was built using MVC architecture. Node.js,
Javascipt,HTML,CSS and SQL server has been used as technologies.
69
to improve technical skills as well as intellectual skills by collaborating with
many individuals from collective elds. Proper time management and plan-
ning is very important aspects learn out during this project. Should carry
out the work according to the schedule.
70
Bibliography
[3] Visual Studio Code Distilled Evolved Code Editing for Windows, ma-
cOS, and Linux. A.D. Sole, Visual Studio Code Distilled Evolved Code
Editing for Windows, macOS, and Linux. Berkeley, Ca Apress,(2019).
71
[10] W. Hosch, Chrome Internet browser. (2020).
Available: https://www.britannica.com/technology/Chrome.
[17] solutions
Available:https://www.icims.com/solutions
[18] jobvite-hire,
Available:https://www.jobvite.com/products
72
Available:https://www.researchgate.net/publication/
73
Appendix A
System Manual
These steps will be provide the detailed steps to setting up this proposed
system. Below it provides the details of software and hard ware requirements
needed for this proposed system.
A.1 Step 1
System requirements can be identied using the following table A.1 for soft-
ware verication and table A.2 for hardware verication.
74
Table A.2: Hardware Verication for the system
A.2 Step 2
Get a new CD copy of the Recruitment Management System form the
main repository.
Get the new CD copy of the MySQL Workbench and import the database
form the Recruitment Management System DB repository.
A.3 Step 3
Copy both CD contents to the selected machine and access the terminal
or command prompt. Then install all he dependencies using NPM.
75
Appendix B
Design Documentation
76
Figure B.2: Job Category
77
Figure B.4: User
78
Appendix C
User Manual
79
Figure C.2: Login credentials
80
Then you can use each and every options to proceed. If it is needed to
nd something easily, you can use the search option.
81
This form will be provided to add user's personal details.
82
This will provide ability to access user inserted data as a common list
view.
This will provide ability to view and edit user inserted data.
83
Figure C.9: Space for update information
84
C.3 Common buttons and validations used
In this system it provides common buttons and validation messages. This
common theme has been used to make the system more user friendly.
85
Figure C.12: Common eld validation
System will provide green tik mark for successful eld completion.
86
Figure C.14: Common message for delete conrmation
87
Appendix D
Management Reports
88
D.2 Job posting against departments report
89
Appendix E
In Design chapter it has been provided all the related design diagrams. There
were main Use Case diagrams. Below are some of the basic example use case
narratives.
90
Use Case Add new candidate
Actor Candidate
Description User Login to the system
Preconditions 1. User account must be present.
2. User name and password should be correct
Post-Conditions 1.User should be added to the database.
Flow of events 1. User enter user name and password
2. System validate and check user details..
3. User get redirected to the dashboard.
4. User should navigate to the Candidate prole page
5. User should be able to insert personal details
6. User should be able to insert qualications
7. User details inserted to the database tables
Alternatives 1. Error message getting displayed due to invalid credentials.
Table E.2: Use Case Narrative for Candidate Prole Creation
91
Appendix F
92
Test Case Id 02
Test Component Common Functions
Module Common Functions
Test Case Common Functions
Expected output System should satisfy the customer required functions successfully
No Test Case Actual output Status
01 Login time out Idle for 15 minutes logout automatically Pass
02 Log out Click logout button. Logout user and direct to the login page. Pass
03 Test with browser Access load system in dierent browsers eg. Firefox, Chrome, Opera,Edge Pass
04 DB connection Give inaccurate database details such as db name, db password and port Pass
Table F.2: Common Function Test Result 01
93
Recruitment Management System - User Evaluation
System Feature Results Success percentage
4 3 2 1
Interfaces are simple and understandable 7 3 92.5
System display information more familiar 8 2 95
Easily navigate through system 9 1 97.5
Functions are more reliable 7 3 92.5
System provide sucient information 6 2 2 85
Degree of Information provided in Reports. 6 3 1 87.5
Ability to maintain data, to keep it up-to date. 7 3 92.5
Ease of entering/ handling form elds, and handle manipulations. 8 2 95
Comments
94
Appendix G
Code Listing
MVC design pattern alongside OOP! ( OOP!) was used when coding the
system. Using that method, it was possible to keep a clear separation between
display logic, business logic, and database interactions. Following this struc-
ture, the proposed system was developed in three layers called Model Layer,
View Layer, and Control Layer. First and foremost, Model layers or simply
Models were used to interact with data. Throughout the project, this layer
was used to govern the procedures to access data objects and perform any
kind of operations on them. This layer is independent of the other two layers.
After that, View Layer was implemented with the help of methods in models
to collect data with the purpose of presenting them. It should also be men-
tioned that this layer reects the changes happening in the model layer. This
means a state change in models causes a state change in views that depends
on that particular model. Finally, Control Layer was used to sit inbetween
Models and Views to facilitate a twoway communication mechanism. Simply
put, this is the layer that uses methods dened in models to query required
data for views. This layer also contains logic that controls how each and
every data ow happens and how to respond to unexpected events.
95
phasize relationships such as onetoone, onetomany and manytomany. Fur-
thermore, TypeORM provided features for performing CRUD operations as
a part of the mapping process and it helped to manipulate the database in
an abstract manner. Below are the two example codes for data insert and
database table loading operation.
1
2 const showNewEntryModal = () = > {
3 mainForm . reset () ;
4 $ ( " # mainForm # id " ) . val ( " ID will be displayed after adding . "
);
5 // set date of adding
6 $ ( " # mainForm # addedDate " ) . val ( new Date () . today () ) ;
7 const username = mainWindow . tempData . profile . username ;
8 $ ( " # mainForm # createdUser " ) . val ( username ) ;
9 $ ( " # modalMainFormTitle " ) . text ( " Add New Job Vacancy " ) ;
10 $ ( " # modalMainForm " ) . modal ( " show " ) ;};
11 // load main table
12 const dataBuilderFunction = ( responseData ) = > {
13 // parse resposne data and return in data table frendly
format
14 return responseData . map (( entry ) = > {
15 return {
16 ID : entry . id ,
17 Name : entry . title ,
18 Position : entry . position ,
19 Department : entry . department . name ,
20 Category : entry . jobCategory . name ,
21 Status : entry . jobVacancyStatus . name ,
22 View : `< button class = " btn btn - success btn - sm " onclick
= " showEditEntryModal ( ' $ { entry . id } ' , true ) " ><i
class = " glyphicon glyphicon - eye - open " aria - hidden = "
true " > </i > View </ button > ` ,
23 Edit : `< button class = " btn btn - warning btn - sm " onclick
= " showEditEntryModal ( ' $ { entry . id } ') " ><i class = "
glyphicon glyphicon - edit " aria - hidden = " true " > </i >
Edit </ button > ` ,
24 Delete : `$ {
25 entry . jobVacancyStatus . name == " Deleted " ? ' < button style
=" display : none " > Delete < button > ': `< button class = " btn
btn - danger btn - sm " onclick = " deleteEntry ( ' $ { entry . id } ')
" ><i class = " glyphicon glyphicon - edit " aria - hidden = "
true " > </i > Delete </ button > `
26 }`,
27 };}) ;};
Listing G.1: Model layer implementation
96
G.2 View implementation
View Layer consists of interfaces, users can interact with. In a sense, this can
be described as a visual representation of logic and models in the backend
of the system. This layer provides facilities for endusers to use the system
and carry out various tasks through user interfaces such as dierent views,
forms, and tables. Below is the common button class use for the development.
1
2 < div id = " fmButtons " >
3 < button type = " button " class = " btnFmAdd btn btn - success " > Add
</ button >
4 < button type = " button " class = " btnFmUpdate btn btn - warning " >
Update </ button >
5 < button type = " button " class = " btnFmReset btn btn - primary "
style = " float : right ; margin - left 10 px " > Reset < button >
6 < button type = " button " class = " btnFmDelete btn btn - danger "
style = " float : right " > Delete </ button > </ div >
Listing G.2: View layer implementation
Controller implementation
The layer that sits between the data layer and the interface layer is the control
layer. The control layer handles user requests, validate those, and determine
what the user is trying to do. Then, it interacts with the data layer if some
data need to be obtained and then send a response back to the user. This
response will determine the next view user should see.
The sequencing of calls to Models, and/or the sequencing of views and re-
quired input from the user denes the application's workow. Since the
control layer acts as a bridge between user and data, the workow of the
application is dened in the control layer of the application. Below is the
commonly used reusable code snippets for controller les.
1
2 private static async getOne ({ id }) {
3 const entry : any = await getRepository ( JobVacancy )
4 . findOne ({
5 where : { id : id } ,
6 relations : [ " user " ] ,
7 })
8 . catch (( e ) = > {
9 console . log ( e . code , e ) ;
10 throw {
97
11 status : false ,
12 type : " server " ,
13 msg : " Server Error !. Please check logs . " ,
14 };
15 }) ;
Listing G.3: Controller layer implementation
98
6.3 Glossary
Sample Virtual Machine (svm)
Actual or anticipated questions which may be posed to an information re-
trieval system. (Functional requirements)
Quality features of the system. Which are unable to measure directly (Non-
functional requirements)
A system involving data processing which does not make use of stored pro-
gram computing equipment. (Manual system)
CRUD or C.R.U.D (Create, Retrieve, Update and Delete) operations are the
basic operations in any database. (CRUD operations)
Method of implementing a process. (Process modelling)
A webbased solution is a way of implementing a solution to a computing issue
or business issue through doing some work on the net. (Webbased system)
A special data processing system, or part of a data processing system, which
aids in the storage, manipulation, reporting, management, and control of
data. (Database management system)
99