Human Resource Management System (HRMS) : A Project Report
Human Resource Management System (HRMS) : A Project Report
Human Resource Management System (HRMS) : A Project Report
A PROJECT REPORT
Submitted by
Gaurav Usadadiya
(16CP023)
VALLABH VIDYANAGAR
Affiliated to
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):
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:
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:
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
ii
LIST OF TABLES
iii
Chapter 1 : INTRODUCTION
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
5) GraphQL
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.
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
MongoDB
3
Chapter 2 : PROJECT MANAGEMENT
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.
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.
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.
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]
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]
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
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
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.
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.4 Constraints
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.
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.
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
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.
Functional Requirements
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.
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.
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.
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
Description (Admin Person): As an application admin, One should be able to view and
edit any employee’s skills.
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.
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..
13
SYSTEM ANALYSIS
R10. LogOut
Description: As an application admin, One should be able to view, upload, delete and
download my own as well as other employees’ attachments.
14
SYSTEM ANALYSIS
Output:Cancellation message.
Input:Rejection of leave.
Output:Rejection message.
15
Chapter 5 : 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]
17
5.3 Flowchart Diagram
18
5.4 Activity Diagram
19
5.4(b) Activity Diagram of functionality
20
5.5 Sequence Diagram
21
5.5(b) Sequence Diagram for changing profile
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.
The application is a single server multiple client application. Multiple users can log in to use the system.
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.
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.
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]
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]
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
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]
29
TESTING
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
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]
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.
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]
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 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.
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]
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]
● 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
33
TESTING
34
Chapter 8 : USER MANUAL
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
37
Fig.8.2(a) Menu view for Admin Role
38
Fig.8.3 Sync Operation
39
Fig.8.4(b) Personal Tab for User and Admin role
40
Fig.8.4(d) Skills Tab for User and Admin role
41
Fig.8.4(f) Performance Tab for User and Admin role
42
Fig.8.5 Employee List for Admin role
43
Fig.8.7 Filter for Employee List in Admin role
44
Fig.8.9(a) Bulk Change screen for Admin
45
Fig.8.10(a) Leave module
46
Fig.8.10(b) Apply leave module
47
Fig.8.10(d) Employees leave module(Admin)
Fig.8.11
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.
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/
51
REFERENCES
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
54
PLAGIARISM REPORT
55