Human Resource Management System (HRMS) : A Project Report

Download as pdf or txt
Download as pdf or txt
You are on page 1of 66

Human Resource Management System (HRMS)

A PROJECT REPORT
Submitted by
Gaurav Usadadiya
(16CP023)

in partial fulfilment for the award of the degree of


B. TECH. (COMPUTER ENGINEERING)
Under the course of
CP442 : FULL SEMESTER EXTERNAL PROJECT

BIRLA VISHVAKARMA MAHAVIDYALAYA


(ENGINEERING COLLEGE)

​(An Autonomous Institution)

VALLABH VIDYANAGAR
Affiliated to

​GUJARAT TECHNOLOGICAL UNIVERSITY, AHMEDABAD


Academic Year: 2019 – 2020
B. V. M. ENGINEERING COLLEGE ​VALLABH VIDYANAGAR-388120

APPROVAL SHEET

The project work entitled “​Human Resource Management System(HRMS)​" carried out by
“GAURAV USADADIYA with ID No : 16CP023” (which was carried out at ​Crest Data
Systems​) is approved for the submission in the course CP442, Full Semester External Project for
the partial fulfillment for the award of the degree of B. Tech. (Computer Engineering).

Examiner(s):

(Name & Designation)

Date:

Place:
CERTIFICATE

This is to certify that Project Work embodied in this project report titled “​Human Resource
Management System(HRMS)​" was carried out by “GAURAV USADADIYA with ID No :
16CP023” which was carried out at ​Crest Data Systems under the course CP442, Full Semester
External Project for the partial fulfillment for the award of the degree of B. Tech. (Computer
Engineering). Followings are the supervisors at the institute.

Date:

Place:

(Dr. Mosin Hasan)

Assistant Professor of Computer Engineering

(Prof. Pranay Patel)

Assistant Professor of Computer Engineering

(Dr. Darshak G Thakore)


Prof. & Head of Computer Engineering Department, BVM
DEPARTMENT OF COMPUTER ENGINEERING, ​B. V. M. ENGINEERING COLLEGE
VALLABH VIDYANAGAR-388120

DECLARATION OF ORIGINALITY
I hereby certify that we are the sole authors of this report under the course CP442 Full Semester
External Project and that neither any part of this report nor the whole of the report has been
submitted for a degree to any other University or Institution.
I certify that, to the best of our knowledge, the current report does not infringe upon anyone’s
copyright nor violate any proprietary rights and that any ideas, techniques, quotations or any
other material from the work of other people included in our report, published or otherwise, are
fully acknowledged in accordance with the standard referencing practices. Furthermore, to the
extent that we have included copyrighted material that surpasses the boundary of fair dealing
within the meaning of the Indian Copyright (Amendment) Act 2012, we certify that we have
obtained a written permission from the copyright owner(s) to include such material(s) in the
current report and have included copies of such copyright clearances to our appendix.
I declare that this is a true copy of the report, including any final revisions, as approved by the
report review committee.
We have checked the write up of the present report using an anti-plagiarism database and it is in
the allowable limit. Even though later on in case of any complaint pertaining to plagiarism, we
are solely responsible for the same and we understand that as per UGC norms, University can
even revoke the degree conferred to the student submitting this report.

Date:

Institute code: 007

Gaurav Usadadiya (16CP023)


CERTIFICATE
ACKNOWLEDGEMENT

I would sincerely like to thank ​Prof. Mosin Hasan, Prof. Pranay Patel​(Department of
Computer Engineering) for the unconditional support during the whole session of study and
development and for guiding me throughout the whole internship period. They provided me with
a favorable environment, without them, I would not have achieved my goal. They had always
been there for me despite their busy schedule and were always a great source of inspiration. They
had been easily approachable during and even after college hours. I sincerely thank them for that.

I would also like to thank ​Mr​. ​Jignesh Patel​, Technical Lead (Crest Data System Pvt. Ltd.) For
supporting me during the whole internship period. Being with me all time face to face and
guiding me within a busy time schedule for her. I would like to thank him for that. I would also
like to thank my other senior colleagues who also helped me whenever I required any kind of
support.

A blend of gratitude, pleasure and great satisfaction is what I feel to convey my indebtedness to
all those who have directly and indirectly contributed to the successful completion of the project.

Gaurav Usadadiya
TABLE OF CONTENTS

Title Page No

ABSTRACT.........................................................................................................................i
TABLES ............................................................................................................................ii
LIST OF FIGURES ..............................................................................................ii
LIST OF TABLES ...............................................................................................iii
1. INTRODUCTION......................................................................................................1
1.1. Project Detail............................................................................................1
1.2. Purpose .....................................................................................................2
1.3. Scope.........................................................................................................2
1.4. Objective…...............................................................................................2
1.5. Technology And Literature Review………...…………............................3
2. PROJECT MANAGEMENT……….......................................................................4
2.1. Feasibility Study........................................................................................4
2.1.1. Technical Feasibility….................................................................4
2.1.2. Time Schedule Feasibility …………….......................................4
2.1.3. Operational Feasibility.................................................................4
2.1.4. Implementation Feasibility ….....................................................4
2.2. Project Planning…....................................................................................5
2.2.1. Project Development Approach .................................................5
2.2.2. Milestones and Deliverables .......................................................6
2.2.3. Roles and Responsibilities...........................................................7
2.2.4. Group Dependencies....................................................................8
3. SYSTEM REQUIREMENTS STUDY……............................................................9
3.1. Study Of Current System ……...................……...................................9
3.2. User Characteristics ………...................................................................9
3.3. Hardware And Software Requirements ……………….......................9
3.4. Constraints...............................................................................................9
3.4.1. Regular Policies...........................................................................9
3.4.2. Hardware limitations …...........................................................10
3.4.3. Criticality of the application…..............................................10
3.5. Assumptions And Dependencies…………………………..........……10
4. SYSTEM ANALYSIS……………….....................................................................11
4.1. Requirements Of New System .............................................................11
4.1.1. User Requirements...................................................................11
4.1.2. System Requirements...............................................................11
5. SYSTEM ARCHITECTURE DESIGN …….........................................................16
5.1. System Architecture Design................................................................16
5.2. Use Case Diagram................................................................................17
5.3. Flowchart Diagram…..........................................................................18
5.4. Activity Diagram..................................................................................19
5.5. Sequence Diagram……………….………………...………………...21
6. IMPLEMENTATION PLANNING......................................................................27
6.1. Implementation Environment.............................................................27
6.2. Program/Modules Specification..........................................................27
6.3. Coding Standards................................................................................27
6.4. Coding Scenario .................................................................................28
7. TESTING..................................................................................................................29
7.1. Testing Plan ........................................................................................29
7.2. Testing Strategy...................................................................................30
7.3. Testing Methods..................................................................................31
7.4. Test Cases............................................................................................32
8. USER MANUAL......................................................................................................35
8.1. Installation Guide...............................................................................35
8.2. Screenshots ........................................................................................37
9. LIMITATIONS AND FUTURE ENHANCEMENT​.............................................​49
9.1. Limitations .........................................................................................49
9.2. Future Enhancement ..........................................................................49
10. CONCLUSION AND DISCUSSION ……………………....................................50
10.1. Conclusion.........................................................................................50
11. APPENDICES.........................................................................................................51
12. REFERENCES........................................................................................................52
13. PLAGIARISM REPORT........................................................................................52
ABSTRACT
To maintain the data of all active and inactive employees requires a significant amount of
time if we do it without software.​Every organization has their own human resources in
order to perform the internal and external human resource activities. Among the total
human resource activities, managing the human capital i.e. employees is the significant
task to any HR. The main function of HR is to recruit, manage and store the employee
data which includes their personal information including their job roles, job streams,
projects allotted, salaries and many more which allows them to face huge workload. In
order to support the HR’s there are some electronic based HR systems called HRMS-
human resource management system. Organizations should maintain HRMS software
with a huge number of client server applications, service providers as well as control
tools. But this application is cost effective one that allows them to manage their
employee’s data in a simple manner. This human resource management system will allow
the HR’s to manage the timings of employee works, employee information systems,
employees recruitment, employees training, employee retention and performance
appraisal, employee service and employee attendance. This project belongs to a category
of web application that can be accessed through PC with internet connection.

i
TABLES

LIST OF FIGURES

Figure Page No.

Fig 5.2 Use Case Diagram………..................................................................................17


Fig 5.3 Flow Chart Diagram...........................................................................................18
Fig 5.4(a) Activity Diagram for login.............................................................................19
Fig 5.4(b) Activity Diagram of functionality .................................................................20
Fig 5.5(a) Sequence Diagram for login...........................................................................21
Fig 5.5(b) Sequence Diagram for changing profile…….................................................21
Fig 5.5(c) Sequence Diagram for bulkchange event.......................................................22
Fig 5.5(d) Sequence Diagram for apply leave event.......................................................23
Fig 5.5(e) Sequence Diagram for cancel leave event......................................................24
Fig 5.5(f) Sequence Diagram for General profile............................................................25
Fig 5.5(g) Sequence Diagram for sync new employees…..............................................26
Fig 7.1 Testing Plan…………………………………………………………………….29
Fig 8.1(a) Login form……….………….........................................................................37
Fig 8.1(b) Home Screen……….…………......................................................................37
Fig 8.2(a) Menu view for admin role....….....................................................................38
Fig 8.2(b) Menu view for user role.......….....................................................................38
Fig 8.3 Sync Operation……………………...................................................................39
Fig 8.4(a) General tab for User and Admin role.............................................................39
Fig 8.4(b) Personal tab for User and Admin role...........................................................40
Fig 8.4(c) Contact tab for User and Admin role.............................................................40
Fig 8.4(d) Skills tab for User and Admin role................................................................41
Fig 8.4(e) Job history tab for User and Admin role........................................................41
Fig 8.4(f) Performance tab for User and Admin role.....................................................42
Fig 8.4(g) Attachment tab for User and Admin role......................................................42
Fig 8.5 Employee list for Admin role….…....................................................................43
Fig 8.6 Manage role for Admin role…....…...................................................................43
Fig 8.7 Filter for employee list…...................................................................................44
Fig 8.8 Upload profile image….................................................................................... 44
Fig 8.9(a) Bulk Change role for Admin…………………………………………….....45
Fig 8.9(b) Second step of Bulk Change………………………………………………..45
Fig 8.10(a) Leave module…………...............................................................................46
Fig 8.10(b) Apply Leave module…................................................................................47
Fig 8.10(c)Manage leave module…………....................................................................47
Fig 8.10(d)Employee leave module(admin)...................................................................48
Fig 8.11 Email notification for leave…………..............................................................48

ii
LIST OF TABLES

​Table Page No.

Table 2.1 Milestones and Deliverables...........................................................................7


Table 2.2 Roles and Responsibilities..............................................................................7
Table 7.1 Input fields in the Personal tab.......................................................................33
Table 7.2 Input fields in the Contact tab........................................................................33
Table 7.3 Input fields in the Skills tab............................................................................34

iii
Chapter 1 : INTRODUCTION

1.1 Project Details

This Project is made using :


1. Google Drive API
2. Gunicorn
3. Nginx
4. React.js
5. GraphQL

1) Google Drive API

Google Drive APIs are provided by Google itself, to use users to drive data more efficiently in
Various languages. It fetches the data stored in the user’s attachments.​[10]

2) Gunicorn

Gunicorn is one of many WSGI server implementations, but it's particularly important because it is a
stable, commonly-used part of web app deployments that's powered some of the largest
Python-powered web applications in the world, such as Instagram.Gunicorn is an implementation of
the WSGI servers concept.​[9]

3) Nginx

It can handle a high volume of connections, NGINX is commonly used as a reverse proxy and load
balancer to manage incoming traffic and distribute it to slower upstream servers.​[8]

4) React.js

It is used as front end technology.​[2]

5) GraphQL

Instead of Restful-API, We have used GraphQL for fetching data.​[7]

1
1.2 Purpose

The Crest HRMS is a Human Resource Management System that was introduced independently due to
the following challenges of the previous HRMS:
1. Very high turnaround time when asked for changes.
2. Slow and buggy.
3. No value for the money.
4. Irrelevant features for organization.

1.3 Scope

The scope of the Crest HRMS is restricted to company employees.Employee has to connect to the
company CDS-wifi using direct connection or vpn and after it ,HRMS can be accessible.Employee can
login HRMS using AD(Active Directory) credentials.The US team can also access Crest HRMS.

1.4 Objective

The Human Resource Management System (HRMS) aims to manage employee’s information. HRMS is
the most important because it provides systematic and accurate information about the employees of the
organization.

So HRMS objective are as following:-

1.Manage the recruitment of a workforce.


2.Track development related to employees.
3.It provides reports on period-to-period details of employees.
4.Give training program and information to all new employees.
5.Improving manpower plan and the effective utilization of manpower across the organization.
6.Track leave of employees.
7.Manage Audit logs.

2
1.5 Technology And Literature Review

​Technology:

Frontend: React.js

Backend: Python

Database: MongoDB

React.js

React is an open-source JavaScript library which is used for building user interfaces specifically
for single page applications. It's used for handling view layers for web and mobile apps. React
also allows us to create reusable UI components.​[2]

Python

Python is an interpreted, object-oriented, high-level programming language with dynamic


semantics. Its high-level built in data structures, combined with dynamic typing and dynamic
binding, make it very attractive for Rapid Application Development, as well as for use as a
scripting or glue language to connect existing components together. Python's simple, easy to
learn syntax emphasizes readability and therefore reduces the cost of program maintenance.
Python supports modules and packages, which encourages program modularity and code reuse.
The Python interpreter and the extensive standard library are available in source or binary form
without charge for all major platforms, and can be freely distributed.​[6]

MongoDB

MongoDB is an object-oriented, simple, dynamic, and scalable NoSQL database. It is based on


the NoSQL document store model. The data objects are stored as separate documents inside a
collection — instead of storing the data into the columns and rows of a traditional relational
database.​[3]

3
Chapter 2 : PROJECT MANAGEMENT

2.1 Feasibility Study

The feasibility of software can be tested in four dimensions:

2.1.1 Technical Feasibility

Since the project uses reliable tools like open source technology like
react, node.js,python and MongoDB, the system can be implemented efficiently
without any issues. The trio of this technology can efficiently handle data, requests and also
create user friendly applications. Hence this project has a good technical feasibility.

2.1.2 Time Schedule Feasibility

The project involved to be developed consists of total four different modules


hence it is quite tedious to manage but considering that there are sufficient human
resources available, it is feasible to develop the application in the allotted duration.And if the
requirement changes, according to it duration will be changed.

2.1.3 Operational Feasibility

How the project will work and who will use it, all such concerns arise in this phase. We have to
study the existing system’s problem, and is it worth solving or not. This Project will save a lot of
time and effort of a user to analyze the employee information and also provide additional
functionality. Hence it is operationally feasible.

2.1.4 Implementation Feasibility

The requirements mentioned above can be fulfilled using various technologies


available. React-.js,GraphQL and MongoDB, the implementation of the project is
feasible.

4
2.2 Project Planning

The project implementation uses the approach of Agile Model. We need to provide a
build to the client regularly in some intervals. The client uses checks the application
and then suggests changes in the application which is to be delivered in the next
development build. And due to this reason, Agile Model is being followed in the
project.

2.2.1 Project Development Approach

The Agile Model is used for project development. We have selected Agile Model because of its
beneficial speed without affecting the quality of product and agile makes the team so much more
productive.​[3]

Agile Model

Agile SDLC model is a combination of iterative and incremental process models with focus on
process adaptability and customer satisfaction by rapid delivery of working software products.
Agile Methods break the product into small incremental builds. These builds are provided in
iterations. Each iteration typically lasts from about one to three weeks. Every iteration involves
cross functional teams working simultaneously on various areas like planning, requirements
analysis, design, coding, unit testing, and acceptance testing. At the end of the iteration a
working product is displayed to the customer and important stakeholders.​[3]

What is Agile?

Agile models believe that every project needs to be handled differently and the existing methods
need to be tailored to best suit the project requirements. In agile the tasks are divided into time
boxes (small time frames) to deliver specific features for a release. Iterative approach is taken
and working software build is delivered after each iteration. Each build is incremental in terms of
features; the final build holds all the features required by the customer.​[3]

5
Advantages of using Agile Model

Customer satisfaction by rapid, continuous delivery of useful software. People and interactions
are emphasized rather than processes and tools. Customers, developers and testers constantly
interact with each other. Working software is delivered frequently (weeks rather than months).
Face-to-face conversation is the best form of communication. Close, daily cooperation between
business people and developers. Continuous attention to technical excellence and good design.​[3]

Disadvantages of using Agile Model

In case of some software deliverables, especially the large ones, it is difficult to assess the effort
required at the beginning of the software development life cycle.​[3]

There is a lack of emphasis on necessary designing and documentation. The project can easily
get taken off track if the customer representative is not clear what final outcome that they want.​[3]

Only senior programmers are capable of taking the kind of decisions required during the
development process. Hence it has no place for newbie programmers, unless combined with
experienced resources.​[3]

2.2.2 Milestones and Deliverables

Milestones are identified in order to complete the entire project in the time duration. Milestones
are identified for every sprint of Crest Data Systems.

6
Table 2.1 Milestones and Deliverables

PHASE DELIVERABLES PURPOSE

System Requirement ● Requirement Gathering It gives an exact


and Analysis and analysis. understanding of the
● Functional Specification user’s requirements.
● Non-functional
Specification

System Design ● Use case Diagram It gives the logical


● Activity Diagram structure that
● Data Flow Diagram describes the system.

Implementation and ● The output obtained for It makes the system


Testing the required functionality robust and reliable.
after implementing and
doing various types of
testing.

2.2.3 Roles and Responsibilities

Table 2.2 Roles and Responsibilities

Role

Name
Analysis Designing Coding Testing Documentation

Vatsal ✓ ✓ ✓ ✓ ✓
Vasoya

Gaurav ✓ ✓ ✓ ✓ ✓
Usadadiya

7
2.2.4 Group Dependencies

The members of the project should be dedicated to the project and should in turn help each other
in whatever problems concerning the project. They are expected not to have any internal or
external communication gaps. They are also expected to share the challenges faced by them
during design or development so that the team and mentors can brainstorm over every possible
dimension. They should report periodically to the concerned faculty and keep them updated
regarding the Project.

8
Chapter 3 : SYSTEM REQUIREMENTS STUDY

3.1 Study Of Current System

Before Crest HRMS ,Company was using third party’s HRMS.Which was not feasible and was
costly too.It was difficult to change existing HRMS.

3.2 User Characteristics

The users are the normal employees who want to check their leave balance,profile,other
employees general information.Admin is a special user who has extra rights like accept or reject
leave,bulk change functionality,can show all details of any user.

3.3 Hardware And Software Requirements

3.3.1 Hardware Requirements

● Dual Core 2.0 GHZ or latter CPU


● 4 GB RAM
● 100GB storage minimum

3.3.2 Software Requirements

● Chrome Latest(version: 47.0.2526 or above)

3.4 Constraints

3.4.1 Regular Policies

As, per the Company’s policy any developer has to maintain the Coding Standards and follow
the best practices. Also, each and every user should maintain the subversion and commit the
modification with appropriate comment so to have track of work and also of the code
modification. From the client’s perspective, developers should use well known coding standards.

3.4.2 Hardware limitations

The hardware limitation is almost none. System should support Python,React.js.

9
3.4.3 Criticality of the application

Criticality means any occurrence of miss operating of the system or any accidental event in
software which can damage the resources of software as well as hardware. As per my knowledge
there is no criticality in our Application.

3.5 Assumptions And Dependencies

We assume that the end user has a knowledge of Crest HRMS. So, the end user can get best out of it.
Application is dependent only on Google drive API, Client Authentication.

10
SYSTEM ANALYSIS

Chapter 4 : SYSTEM ANALYSIS

4.1 Requirements Of New System

4.1.1 User Requirements

User requirements include minor details, but most importantly users must be aware that the
system works properly with full availability, reliability, security and safety. The user
responsibility is as follows: User should know how to use the application and should adhere to
the guidelines and prescribed standards.

4.1.2 System Requirements

Functional Requirements

● Collect data from Google Drive and AD credentials.


● Gather the collected data into events and publish them.
● Apply leave should execute leave credit or debit accordingly.

Non-Functional Requirements

• ​Usability

The UI of the Crest HRMS should be user friendly so that users can navigate easily
through it.

• ​Accuracy

As we were developing the application, we must make the system that is very accurate in
its functions. All the data should keep working properly, keep getting perfect input,
process accurately and produce the perfect output. Accuracy is the most important
non-functional characteristic or requirement of the system.

• ​Reliability

Error handling mechanism must be robust to avoid failure of operation and in case of
failure the app reports it to the user without any due harm.

11
SYSTEM ANALYSIS

• ​Performance

Once the application starts, the user application should complete all tasks without errors.

Software Requirements and Specification (SRS)

R1. login using AD credentials


Description​: As an application user, One should be able to login to the application with
the AD credentials.
Input​: Enter username and password.
Output​: One should be able to login to HRMS using AD credentials else failed.

R2. sync employees which allows onboarding & offboarding

Description (Admin Person): ​As an application admin, One should be to sync new
joinees and resignees i.e onboarding and offboarding employees into employee directory.

Input: ​Sync up new joinees or resignees.


Output: ​Updated page.

R3. view/edit the employee’s general information

Description (Admin Persona): ​As an application admin, One should be able to view and
edit any employee’s General information.

Input: ​select employee whom you want to edit info on the employee page.
Output: ​Update employee information or error.

R4. view/edit the employee’s contact information

Description (Admin Person): ​As an application admin, One should be able to view and
edit any employee’s contact information.

Input: ​select employee whom you want to edit info on the employee page.
Output: ​Update employee information or error.

12
SYSTEM ANALYSIS

R5. view/edit the employee’s skills

Description (Admin Person): ​As an application admin, One should be able to view and
edit any employee’s skills.

Input: ​Add ​Skills,Primary Technology Vertical,Secondary Technology Vertical of


employee.

Output: ​Updated page of skills.

R6. employee’s job history information

Description (Admin Person): ​As an application admin, One should be able to view and
edit any employee’s job history information from the job history tab.

Input : ​Enter employee job history in Job history tab.

Output:​Updated page of job profile.

R7. employee’s job history information:

Description (User Persona): ​As an application user, One should be able to view and edit
only my job history information from the job history tab.
Input : ​Enter employee job history in Job history tab..

Output:​Updated page of job profile.

R8. Upload documents

Description: ​Upload required documents to the google drive.

Input: ​Upload crest letters,aadhar card,bank acc. page,Educational certificate, Visa


documents.

Output: ​upload document to google drive or error.

13
SYSTEM ANALYSIS

R9. Change theme

Input: ​click on change theme icon.


Output: ​toggle them between day theme and night theme.

R10. LogOut

Input: ​click on logout button.


Output:​ employee logged out from HRMS.

R11. Download employee attachments.

Description: As an application admin, One should be able to view, upload, delete and
download my own as well as other employees’ attachments.

Input:​click on the download attachment button.


Output: ​get csv file of employee details.

R12. Upload profile picture.

Input: ​Select image for profile or remove it.


Output: ​Updated profile picture.

R13. Change bulk

Description: ​Change the information of employees in bulk.


Input: ​Select list of employees whose changes are to be done and select change in bulk.

Output: ​Updated employee list.

R14. Apply Leave

Description: ​Employee request for a leave.

Input: ​Select range of date or half day leave.

14
SYSTEM ANALYSIS

Output:​Apply leave message.

R15. Cancel Leave

Description: ​Employee request for cancel applied leave.

Input:​Apply for cancellation of leave.

Output:​Cancellation message.

R15. Reject Leave

Description: ​Admin do rejection of employee’s applied leave.

Input:​Rejection of leave.

Output:​Rejection message.

15
Chapter 5 : SYSTEM ARCHITECTURE DESIGN

5.1 System Architecture Design

Systems design is the process of defining the architecture, modules, interfaces, and data for a system to
satisfy specified requirements. Systems design could be seen as the application of systems theory to
product development. There is some overlap with the disciplines of systems analysis, systems
architecture and systems engineering.​[3]

Architectural Design

The architectural design of a system emphasizes the design of the systems architecture that describes the
structure, behavior and more views of that system and analysis.​[3]

Logical Design

The logical design of a system pertains to an abstract representation of the data flows, inputs and outputs
of the system. This is often conducted via modelling, using an over-abstract (and sometimes graphical)
model of the actual system. In the context of systems, designs are included.​[3]

Physical Design

The physical design relates to the actual input and output processes of the system. This is explained in
terms of how data is input into a system, how it is verified/authenticated, how it is processed, and how it
is displayed. In physical design, the following requirements about the system are decided.​[3]

• Input requirement
• Output requirements
• Storage requirements
• Processing requirements
• System control and backup or recovery

User Interface Design is concerned with how users add information to the system and with how the
system presents information back to them. Data Design is concerned with how the data is represented
and stored within the system. Finally, Process Design is concerned with how data moves through the
system, and with how and where it is validated, secured and/or transformed as it flows into, through and
out of the system. At the end of the system design phase, documentation describing the three subtasks is

16
produced and made available for use in the next phase.​[3]

Physical design, in this context, does not refer to the tangible physical design of an information system.
To use an analogy, a personal computer's physical design involves input via a keyboard, processing
within the CPU, and output via a monitor, printer, etc. It would not concern the actual layout of the
tangible hardware, which for a PC would be a monitor, CPU, motherboard, hard drive, modems,
video/graphics cards, USB slots, etc. It involves a detailed design of a user and a product database
structure processor and a control processor. The H/S personal specification is developed for the
proposed system.​[3]

5.2 Use Case Diagram

Fig. 5.2 Use Case Diagram

17
5.3 Flowchart Diagram

Fig. 5.3 Flowchart Diagram

18
5.4 Activity Diagram

Fig. 5.4(a) Activity Diagram of Login

19
5.4(b) Activity Diagram of functionality

20
5.5 Sequence Diagram

5.5(a) Sequence Diagram of login

21
5.5(b) Sequence Diagram for changing profile

5.5(c) Sequence Diagram for Bulk Change event

22
5.5(d) Sequence Diagram for Apply leave event

23
5.5(e) Sequence Diagram for Cancel leave event

24
5.5(f) Sequence Diagram for General Profile

25
5.5(g) Sequence Diagram for Sync new employees

26
Chapter 6 : IMPLEMENTATION PLANNING

Planning is an essential aspect of any successful project. However, it can be difficult to turn goals and
strategy into tangible action, and, therefore, projects of all sizes and across all industries have a high
tendency to fail. Implementation planning can reduce this chance of failure by helping turn strategy into
action.

6.1 Implementation Environment

The application is a single server multiple client application. Multiple users can log in to use the system.

Multi-user vs. Single-user

Single user applications are the application where it is useful to only one user at a time. While in Multi
user given application is used by many users at the same time and thus web application is used by many
users at the same time. Our system is a multi-user system as we have more than one user who can use
the system at the same time.

GUI vs. Non-GUI

Non-GUI application uses command Prompt for input and output while GUI application has graphics
form to interface and other graphics property for various I/O operations and are easy to use Our System
is a GUI based and thus easy and effective to use therefore user can easily give input and take Input.

6.2 Program/Modules Specification

● MongoDB database Server


● VS Code
● OS: Ubuntu & MacOS

6.3 Coding Standards

Coding techniques incorporate many facts about software development. Although they usually have no
impact on the functionality of the application; they contribute to an improved comprehension of source
code. All forms of source code are considered here, including programming, scripting markup, and
query languages.​[3]

27
The coding techniques defined are not proposed to form an inflexible set of coding standards. Rather,
they are meant to serve as a guide for developing a coding standard for a specific software project. We
used sonarlint standards for creating our whole project.​[3]

Purpose of Coding Standards and Best Practices

To develop reliable and maintainable applications, you must follow coding standards and best practices.
The naming conventions, coding standards and best practices described in this document are compiled
from our own experience and by referring to various guidelines. There are several standards that exist in
the programming industry. None of them are wrong or bad and you may follow any of them. What is
more important is, selecting one standard approach and ensuring that everyone is following it.​[3]

In this phase of software development, the design is related to a system converted into a
machine-readable code that can be compiled and executed. Although the coding phase does not affect
the structure of the system, it has a great impact on the internal structure of the module, which affects
the testability, under the stability of the system.​[3]

6.4 Coding Scenario

We used python Programming and the GraphQL query language of API Call.. GraphQL is used instead
of REST. We modularized every functionality so we can reuse those whenever we need.​[7]

We have also used Google Drive API, to access the Attachment of employees. We have stored those
documents and only the admin can access it.​[4]

We have used react.js for front end.We have utilized components very well and also used redux.Redux
is a very powerful tool of react.​[2]

A major challenge for us was to achieve success when 500 employees use HRMS at a time.We have
used Nginx for load balancing. Our HRMS product is also secure in terms of https support.

28
Chapter 7 : TESTING

7.1 Testing Plan

The objective of the system testing is to ensure that all individual programs are working as expected,
that the programs link together to meet the requirements specified and ensure that the computer system
and the associated clerical and other procedures work together. Systems are not designed as entire
systems but they are tested as single systems. The analyst must perform both unit and system testing.​[3]
<<

Different types of testing methods are available. We have tested our system for different aspects like
Does the application meet the goals for which it has been designed? This was a very important question
that stood before us as the application was designed to be implemented on such a large network.​[3]
<

To fulfill its goal of being able to run on different systems we went through a series of tests at different
places where this is supposed to be used the most. As we need to make our system efficient enough, we
need to test it thoroughly.​[3]
<

Finally, we tested the system with real-time data, for which it is actually designed. We are successful in
satisfying our needs as it was designed according to client's requirements. But it is very necessary to
maintain this application and so our work is not still over.​[3]

Fig. 7.1 Testing Plan

29
TESTING

7.2 Testing Strategy

Once source code has been generated, the software must be tested to uncover as many errors as possible
before delivery to the customer. Our goal is to design a series of test cases that have a high likelihood of
finding errors. Software testing techniques provide systematic guidance for designing tests that (1)
Exercise the internal logic of software components (2) Exercise the inputs and outputs domains of the
program to uncover errors in program function, behavior and performance.​[3]

During the early stages of testing, a software engineer performs all tests. However, as the testing process
progresses, testing specialists may become involved. Reviews and other activities can and do uncover
errors, but they are not sufficient. Every time the program is executed, the customer tests it! Therefore,
you have to execute the program before it gets to the customer with the specific intent of finding and
removing all errors. In order to find the highest possible number of errors, tests must be conducted
systematically and test cases must be designed using disciplined techniques.​[3]

Testing Objectives

● Testing is a process of executing a program with the intention of finding an error.


● A good test case is one that has a high probability of finding an as-yet undiscovered error.
● A successful test is one that uncovers an as-yet undiscovered error.

Unit Testing

Unit testing is a software development process in which the smallest testable part of an application,
called units, are individually scrutinized for proper operation. Unit testing is often automated but it can
also be done manually. This testing mode is a component of Extreme Programming (XP), a pragmatic
method of software development that takes a meticulous approach to building a product by means of
continual testing and revision.​[3]

Unit testing involves only those characteristics that are vital to the performance of the unit under test.
This encourages developers to modify the source code without immediate concerns about how such
changes might affect the functioning of the units or the program as a whole. Once all of the units in a
program have been found to be working in the most efficient and error free manner possible, larger
components of the program can be evaluated by means of integration testing.​[3]

System Testing

Now, it’s time for whole System testing. We have found some cosmetic bugs and minor bugs .We have
fixed it and tested it again. We worked on each error and exception that we got while testing and most of
them are resolved or handled programmatically.​[3]

30
TESTING

Recovery Testing

It is a system test that forces the software to fail in a variety of ways and verifies that recovery is
properly performed.​[3]

Performance Testing

It is designed to test the run-time performance of software within the context of an integrated system
performance testing occurs throughout all steps in the testing process.​[3]

7.3 Testing Methods

Acceptance Testing

Acceptance testing can be connected by the end user, customer, or client to validate whether or not to
accept the product. Acceptance testing may be performed as part of the hand-off process between any
two phases of development. The acceptance test suite is run against the supplied input data or using an
acceptance test script to direct the tester. Then the results obtained are compared with the expected
results. If there is a correct match for every case, the test suite is said to pass.

Alpha & beta testing

The alpha test is conducted at the developer’s site by a customer. The software is used in a natural
setting with the developer “looking over shoulder” of the user and recording errors and usage problems.
Alpha test is conducted in a controlled environment. The beta testing is conducted at one or more
customer sites by the end-user of the software. Unlike alpha testing, the developer is generally not
present. Therefore, the beta test is a “live” application of the software in an environment that cannot be
controlled by the developer.​[3]

Black-box testing

Also known as functional testing. Software testing techniques where by the internal working of the item
being tested are not known by the tester. For example, in a black box test on software design the tester
only knows the inputs and what the expected outcomes should be and not how the program arrives at
those outputs. The tester does not ever examine the programming code and does not need any further
knowledge of the program other than its specification.​[3]

The advantages of this type of testing include:

31
TESTING

● The test is unbiased as the designer and the tester are independent of each other.
● The tester does not need knowledge of any specific programming languages.
● The test is done from the point of view of the user, not the designer. Test cases can be designed
as soon as the specifications are complete.

The disadvantages of this type of testing include:

● The test can be redundant if the software designer has already run a test case.
● The test cases are difficult to design. Testing every possible input stream is unrealistic because it
would take an inordinate amount of time: hence many program paths will go untested.

White Box Testing

Also known as glass box, structural, clear box and open box testing. A software testing technique where
by explicit knowledge of the internal workings of the item being tested are used to select the test data.
Unlike black box testing, white box testing uses specific knowledge of programming code to examine
outputs. The test is accurate only if the tester knows what the program is supposed to do. He or she can
then see if the program diverges from its intended goal.​[3]

7.4 Test Cases

To minimize the number of errors in software, a rich variety of test design methods have evolved for
software. These methods provide the developer with a systematic approach to testing. More importantly,
methods provide a mechanism that can help to ensure the completeness of the test and provide the
highest likelihood for uncovering errors in software.​[3]

An engineering product can be tested in one of the two ways:

● Knowing the specified function that product has been designed to perform, tests can be conducted
that demonstrate each function is fully operational while at the same time searching for errors in
each function:​[3]
● Knowing the internal workings of a product, tests can be conducted to ensure that “all gear mesh “,
that is, internal oppression are performed according to specifications and all internal components
have been adequately exercised. Here are the test cases that we had made for our application.​[3]

32
TESTING

Table 7.1 Input fields in the Personal tab

Field Name Field Is Field Accessible by Accessible by


Type Mandatory? User? Admin?

Father’s name Text No Yes Yes

Date of Birth Date Yes Yes Yes

Blood Group Dropdown Yes Yes Yes

Personal Email Email No Yes Yes

Gender Radio Yes Yes Yes


Button

Marital Status Dropdown Yes Yes Yes

Aadhar Text Yes Yes Yes


Number

PAN Number Text No Yes Yes

Table 7.2 Input fields in the Contact tab

Field Name Field Is Field Accessible by Accessible by


Type Mandatory? User? Admin?

Present Text Yes Yes Yes


Address

City Text Yes Yes Yes

State Dropdown Yes Yes Yes

33
TESTING

Pincode Number Yes Yes Yes

Contact Number Yes Yes Yes

Emergency Number Yes Yes Yes


Contact

Table 7.3 Input fields in the Skills

Field Name Field Is Field Accessible by Accessible by


Type Mandatory? User? Admin?

Skills Dropdown Yes No Yes

Primary Dropdown Yes No Yes


Technology
Vertical

Secondary Dropdown No No Yes


Technology
Vertical

34
Chapter 8 : USER MANUAL

8.1 Installation Guide:

Pre-requisites​[5]
● CentOS - 8
● Google drive account
● Make a directory with a name build in home.
○ cd /home
○ mkdir build
● Bamboo plan for production server
● Open port using below command(port 7000):
○ firewall-cmd --zone=public --add-port=7000/tcp --permanent
○ firewall-cmd --reload

Installation Steps​[5]
● Install python-3
● sudo dnf install python3
● Install MongoDB
○ Make file using below command
■ vi /etc/yum.repos.d/mongodb.repo
○ Paste this in file
■ [MongoDB] name=MongoDB Repository
baseurl=http://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/4.2/$base
arch/ gpgcheck=1 enabled=1
gpgkey=​https://www.mongodb.org/static/pgp/server-4.2.asc
○ Run commands to install and start service
■ sudo yum install mongodb-org systemctl start mongod.service systemctl enable
mongod.service
● Install Node sudo dnf install nodejs
● Run bamboo build
● Install all required python dependencies. From HRMS_Production folder (/home/build/HRMS)
run below command: pip3 install -r app/requirements.txt
● Only for first time installation: From HRMS_Production folder run below command for
database: mongorestore -d HRMS app/database_hrms
● From hrms/app folder, open conf.ini. Check if the FOLDER_ID for the production is
uncommented and FOLDER_ID for the Dev/QA is commented. If not, do the same.

35
● For Dev/QA: Copy qa_token.pickle file from app/google_pickle_files to app/configuration.
Delete the current token.pickle and rename qa_token.pickle to token.pickle.
● From hrms/app folder, open conf.ini. Check if the FOLDER_ID for the production is commented
and FOLDER_ID for the Dev/QA is uncommented. If not, do the same.
● From HRMS_Production/ui folder change .env file: change the url according to the ip of the
instance and default port:7000 and add/change GENERATE_SOURCEMAP=false.
● Install npm dependencies. From HRMS_Production/ui folder run below command: npm install
● From HRMS_Production/ui folder run below command: npm run build
● From the hrms/app folder run below command: gunicorn -c configuration/gunicorn_config.py
app:app If you are facing issue in running above command due to an already running process
then find the process and kill it. To find the process run below command: ps -ef | grep gunicorn
To kill the process, take parent process ID from above command and run below command: kill
-9 <PID>
● Your application will be running on a port specified in file
app/configuration/gunicorn_config.py(default: 7000) of the instance. If you change this port then
you should change port in step 2 of deployment and follow other steps.

36
8.2 Snapshots of the application

Fig.8.1(a) Login form

Fig.8.1(b) Home Screen

37
Fig.8.2(a) Menu view for Admin Role

Fig.8.2(b) Menu view for User Role

38
Fig.8.3 Sync Operation

Fig.8.4(a) General Tab for User and Admin role

39
​ Fig.8.4(b) Personal Tab for User and Admin role

​Fig.8.4(c) Contact Tab for User and Admin role

40
​Fig.8.4(d) Skills Tab for User and Admin role

​ ig.8.4(e) Job history Tab for User and Admin role


​ F

41
Fig.8.4(f) Performance Tab for User and Admin role

Fig.8.4(g) Attachments Tab for User and Admin role

42
​Fig.8.5 Employee List for Admin role

​Fig.8.6 Manage roles for Admin role

43
Fig.8.7 Filter for Employee List in Admin role

​ ​Fig.8.8 Upload profile image

44
Fig.8.9(a) Bulk Change screen for Admin

Fig.8.9(b) Second step of Bulk Change

45
Fig.8.10(a) Leave module

46
Fig.8.10(b) Apply leave module

Fig.8.10(c) Manage leave module

47
Fig.8.10(d) Employees leave module(Admin)

Fig.8.11

Email notification for leave

48
Chapter 9 : LIMITATIONS AND FUTURE ENHANCEMENT

9.1 Limitations

● To get the best out of our product we assume that the end user knows the Crest HRMS.
● Users must have basic knowledge of Active Directory and must have its credentials.
● Fast internet connection is expected.
● Users are expected to have data in plain text format
● Users are expected to connect in the Crest network.

9.2 Future Enhancement

● Provide Project details in HRMS.


● Provide the more data encoding formats like PDF Format.
● Provide the ability to access Crest HRMS outside Crest Network.
● Give docker facility.

49
Chapter 10 : CONCLUSION

10.1 Conclusion

Due to this Human Resource Management System(HRMS) lots of work which was done Manually by the
HR and PMO team will be automated. From now on the HR team does not have to maintain an excel sheet(Leave
Tracker) for the leaves of all employees. Employees can apply and the DM can approve/reject leaves from HRMS
itself and track the leave status. Using the Bulk change module HR and PMO can directly change the grade,
designation, department and etc. of many employees in bulk. Most crucial thing is that HRMS is operated and
maintained by Crest itself, So it can save money on outsourcing the software and the company can make all
required changes according to their needs. Using the feature of filter under employee directory HR and PMO team
can filter out employees data they require based on skills, previous experience and various other parameters.

50
APPENDICES

● GraphQL
○ https://graphql.org/

● React.js
○ https://reactjs.org/
○ https://www.udemy.com/tutorial/react-the-complete-guide-incl-redux/what-is-react/

● Gunicorn
○ https://github.com/benoitc/gunicorn

● Nginx
○ https://www.nginx.com/

● Google Drive API Documentation


○ ​ ​https://developers.google.com/drive/api/v3/about-sdk

51
REFERENCES

[1]​ ​JavaScript. (2007) The Morden JavaScript Tutorial


[Online] [Accessed on January 2020]
​https://javascript.info/

[2]​ ​Redux. (2015) A Predictable State Container For JS App


[Online] [Accessed on January 2020]
​https://redux.js.org/

[3] Quora. (2009) For Solution of Question


[Online] [Accessed from February to June 2020]
​www.quora.com

​ tack Overflow. (2008) Coding Related Question Solution


[4]​ S
​[Online] [Accessed from February to June 2020]
​https://stackoverflow.com/

[5]​ ​GitHub. (2007) Github Support Community


[Online] [Accessed from February to June 2020]
​https://github.community

[6]​ ​Python. (2001) Python Documentation


[Online] [Accessed from February to June 2020]
​https:​//docs.python.org/3/

[7]​ ​Graphql. (2015) A query language for your API


[Online] [Accessed from February to June 2020]
​https:​//graphql.org/graphql-js/graphql

[8] Nginx. (2004) Software for web serving, reverse proxying


​[Online] [Accessed from February to June 2020]
​https://docs.nginx.com/nginx/

52
[9] Gunicorn. [2010] A Python Web Server Gateway Interface HTTP Server.
[Online] [Accessed from February to June 2020]
​https://gunicorn.org/#docs

[10] Google Drive API. [~2012] To read, write, and sync files in Google Drive.
[Online] [Accessed from February to June 2020]
​https://developers.google.com/drive/api/v3/about-sdk

53
PLAGIARISM REPORT

This plagiarism report is generated from the plagiarism checker available at


https://www.duplichecker.com/​. This plagiarism checker has a limit of 1000 words per
report.

54
PLAGIARISM REPORT

● Average plagiarism = 23.875%

55

You might also like