Download as rtf, pdf, or txt
Download as rtf, pdf, or txt
You are on page 1of 81

Human Resource Management System (HRMS)

)
A PRO JECT
REPO RT in partial fulfilm ent for the
aw ard of the degree of
Subm itted
by B.TECH .(COM PUTER
ENGINEERING)
G
a U nder the
course of
u
C P442 : FU LL SEM ESTER
r EX TER N A L PR O JEC T
a
v

s
a
d BIR LA V ISH V A K A R M
a A M A H A V ID Y A LA Y A
(EN G IN EER IN
d
G C O LLEG E)
i
y (A n A utonom
ous Institution)
a
V A LLA BH V ID
( YANAGAR
A ffiliated
1
to
6
C

P
0
2 G U JA R A T TEC H N O LO G IC A L
U N IV ER SITY ,A H M ED A BA D
3
Academic Year:
2019 – 2020
B. V. M. ENGINEERING COLLEGE VALLABH VIDYANAGAR-388120

A PPRO V A L SH EET
The projectwork entitled“Human ResourceManagement System(HRMS)" carriedoutby
“GAURAV USADADIYA withID No : 16CP023” (whichwas carriedout at Crest Data
Systems)isapprovedforthesubmissioninthecourseCP442,FullSemesterExternalProjectfor
the partial fulfillment for the award of the degree of B. Tech. (Computer Engineeri

Examiner(s):

(Name & Designation)

Date:

Place:
CERTIFICA TE
ThisistocertifythatProjectWork embodiedinthisprojectreportitled“Human Resource
Management System(HRMS)" was carriedoutby “GAURAV USADADIYA withID No :
16CP023”whichwas carriedoutatCrest Data Systems underthecourseCP442,FullSemester
ExternalProjectforthepartialfulfillmentfortheawardofthedegreeofB. 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

D ECLA RA TIO N O F O RIG IN A LITY


Iherebycertifythatwe arethesoleauthorsofthisreportunderthecourseCP442 FullSemester
ExternalProjectand thatneitherany partofthisreportnorthewholeofthereporthasbeen
submitted for a degree to any other University or Institution.
I certifythat,tothebestofourknowledge,thecurrentreportdoesnotinfringeuponanyone’s
copyrightnorviolateany proprietarightsandy thatany ideas,techniques,quotationsorany
othermaterialfromthework ofotherpeopleincludedinourreport,publishedorotherwise,are
fullyacknowledgedinaccordancewiththestandardreferencingpracticesFurthermore,tothe.
extentthatwe haveincludedcopyrightedmaterialthatsurpassestheboundaryoffairdealing
withinthemeaningoftheIndianCopyright(Amendment)Act 2012,we certifythatwe have
obtained writtenpermissionfrom thecopyrightowner(s)toincludesuchmaterial(s)inthe
current report and have included copies of such copyright clearances to our appendi
I declarethatthisisa truecopyofthereport,includinganyfinalrevisions,asapprovedby the
report review committee.
We havecheckedthewriteup ofthepresentreportusingananti-plagiarismdatabaseanditisin
theallowablelimitEven. thoughlateron incaseofanycomplaintpertainingtoplagiarism,we
aresolelyresponsibleforthesame and we understandthatasperUGC norms,Universitycan
even revoke the degree conferred to the student submitting this report.

Date:

Institute code: 007

Gaurav Usadadiya (16CP023)


CERTIFICA TE
A CK N O W LED G EM EN T

I would sincerelyliketo thank Prof.Mosin Hasan, Prof.Pranay Patel(Departmentof


ComputerEngineering)fortheunconditionalsupportduringthewhole sessionof studyand
developmentandforguidingme throughoutthewholeinternshipperiodTheyprovidedme. with a
favorableenvironment,withoutthem,I would nothaveachievedmy goal.They hadalways
beenthereforme despitetheirbusyscheduleandwerealwaysa greatsourceofinspirationThey.
had been easily approachable during and even after college hours. I sincerely thank

IwouldalsoliketothankMr . JigneshPatel,TechnicalLead(CrestDataSystemPvt.Ltd.)For
supportingme duringthewhole internshipperiodBeingwithme. alltimefacetofaceand
guidingme withina busytimescheduleforher.Iwouldliketothankhim forthatIwouldalso.
liketothankmy otherseniorcolleagueswho alsohelpedme wheneverIrequiredanykindof
support.

A blendofgratitude,pleasureandgreatsatisfactiswhatIfeeltoconveymyon indebtednessto
all those who have directly and indirectly contributed to the successful completion

Gaurav Usadadiya
TA BLE O F C O N TEN TS

Title Page No

ABSTRACT.....................................................................
TABLES .....................................................................
LIST OF FIGURES ......................................................
LIST OF TABLES ........................................................
1. INTRODUCTION.............................................................
1.1. Project Detail..................................................
1.2. Purpose .........................................................
1.3. Scope............................................................
1.4. Objective….......................................................
1.5. Technology And Literature Review………...………….......................
2. PROJECT MANAGEMENT………...................................................
2.1. Feasibility Study................................................
2.1.1. Technical Feasibility….....................................
2.1.2. Time Schedule Feasibility ……………............................
2.1.3. Operational Feasibility....................................
2 Implementation Feasibility …..............................
2.1. Project Planning…................................................ 2.2.1. Project Development
Approach .............................
2.2.2. Milestones and Deliverables ...............................
2.2.20. Roles and Responsibilities................................
1 Group Dependencies.........................................
3. SYSTEM REQUIREMENTS STUDY…….............................................
3.1. Study Of Current System ……...................……................
3.2. User Characteristics ………........................................
2 Hardware And Software Requirements ………………......................
3.3. Constraints.....................................................
3 Regular Policies..........................................
4 Hardware limitations …....................................
5 Criticality of the application…........................
3.4. Assumptions And Dependencies…………………………..........……10
4. SYSTEM ANALYSIS………………...................................................
4.1. Requirements Of New System .....................................
5. User Requirements.........................................
6. System Requirements.......................................
4. SYSTEM ARCHITECTURE DESIGN ……...........................................
5.60. System Architecture Design.....................................
5.2. Use Case Diagram...............................................
5.10. Flowchart Diagram….............................................
5.4. Activity Diagram...............................................
5.5. Sequence Diagram……………….………………...………………...21
6. IMPLEMENTATION PLANNING................................................
6.1. Implementation Environment....................................
6.2. Program/Modules Specification
..................................
6.3. Coding Standards...............................................
Coding Scenario ...............................................
6.4.
7. TESTING..................................................................
7.1. Testing Plan ..................................................
7.2. Testing Strategy...............................................
7.3. Testing Methods................................................
7.4. Test Cases.....................................................
8. USER MANUAL..............................................................
8.1. Installation Guide............................................
8.2. Screenshots ..................................................
9. LIMITATIONS AND FUTURE ENHANCEMENT ............................................. 49
9.1. Limitations ...................................................
9.2. Future Enhancement ...........................................
10. CONCLUSION AND DISCUSSION ……………………....................................50
10.1. Conclusion
11. APPENDICES..............................................................
....................................................
12. REFERENCES..............................................................
13. PLAGIARISM REPORT.......................................................
A BSTR A C T
To maintainthedataofallactiveandinactiveemployeesrequiresa significamountof
timeifwe do itwithoutsoftwareEveryorganizationhastheirown. human resourcesin
ordertoperformtheinternaland externalhuman resourceactivitiesAmong. thetotal
human resourceactivities,managingthehuman capital.eemployeesisthesignificant.
tasktoany HR. The main functionofHR istorecruit,manage andstoretheemployee
datawhich includestheirpersonalinformationincludingtheirjobroles,jobstreams,
projectsallotted,salariesand many more whichallowsthemtofacehugeworkloadIn.
ordertosupporttheHR’s therearesome electronicbasedHR systemscalledHRMS-
human resourcemanagement system.OrganizationsshouldmaintainHRMS software
witha huge number of clientserverapplications,serviceprovidersaswellascontrol
tools.But thisapplicationis costeffectiveone thatallowsthem to manage their
employee’sdataina simplemanner.Thishuman resourcemanagementsystemwillallow
theHR’s to manage thetimingsof employeeworks,employeeinformationsystems,
employeesrecruitment,employeestraining,employee retentionand performance
appraisal,employeeserviceandemployeeattendanceThisprojectbelongstoa. category
of web application that can be accessed through PC with internet connection.

i
TA BLES

LIST O F FIG U R ES

Figure Page N o.

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


Fig 5.3 Flow Chart Diagram...................................................
Fig 5.4(a) Activity Diagram for login........................................
Fig 5.4(b) Activity Diagram of functionality ................................
Fig 5.5(a) Sequence Diagram for login........................................
Fig 5.5(b) Sequence Diagram for changing profile……...........................
Fig 5.5(c) Sequence Diagram for bulkchange event.............................
Fig 5.5(d) Sequence Diagram for apply leave event............................
Fig 5.5(e) Sequence Diagram for cancel leave event...........................
Fig 5.5(f) Sequence Diagram for General profile..............................
Fig 5.5(g) Sequence Diagram for sync new employees…..........................
Fig 7.1 Testing Plan…………………………………………………………………….29
Fig 8.1(a) Login form……….…………................................................
Fig 8.1(b) Home Screen……….…………...............................................
Fig 8.2(a) Menu view for admin role....…....................................
Fig 8.2(b) Menu view for user role.......…..................................
Fig 8.3 Sync Operation……………………...............................................
Fig 8.4(a) General tab for User and Admin role...............................
Fig 8.4(b) Personal tab for User and Admin role..............................
Fig 8.4(c) Contact tab for User and Admin role...............................
Fig 8.4(d) Skills tab for User and Admin role................................
Fig 8.4(e) Job history tab for User and Admin role...........................
Fig 8.4(f) Performance tab for User and Admin role...........................
Fig 8.4(g) Attachment tab for User and Admin role............................
Fig 8.5 Employee list for Admin role….…......................................
Fig 8.6 Manage role for Admin role…....….....................................
Fig 8.7 Filter for employee list…............................................
Fig 8.8 Upload profile image…................................................
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………….................................................
Fig 8.10(b) Apply Leave module…..............................................
Fig 8.10(c)Manage leave module…………...........................................
Fig 8.10(d)Employee leave module(admin)......................................
Fig 8.11 Email notification for leave…………....................................

ii
LIST O F TA BLES

Table Page N o.

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


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

iii
C hapter 1 : IN TR O D U C TIO N

1.1 Project D etails

This Project is made using :


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

1) Google Drive API

Google DriveAPIs areprovidedby Googleitself,touseuserstodrivedatamore efficientlyin


Various languages. It fetches the data stored in the[10]user’s attachments.
2) Gunicorn

Gunicornisoneofmany WSGI serverimplementations,butit'sparticularlyimportantbecauseitisa


stable,commonly-usedpartof web app deploymentsthat'spowered some of the largest Python-
poweredweb applicationsintheworld,suchasInstagram.Gunicornisan implementationf the WSGI
servers concept[9].
3) Nginx

Itcanhandlea highvolumeofconnections,NGINX iscommonly usedasa reverseproxyandload


balancer to manage incoming traffic and distribute it to slower[8] upstream servers.
4) React.js

It is used as front end technology[2].

5) GraphQL

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

1
1.2 Purpose

The CrestHRMS isa Human ResourceManagementSystemthatwas


introducedindependentlydueto 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 scopeof theCrestHRMS isrestrictedtocompany employees.Employeehastoconnecttothe company


CDS-wifiusingdirectconnectionorvpn andafterit,HRMS canbeaccessible.Employeecan login HRMS
using AD(Active Directory) credentials.The US team can also access Cres

1.4 Objective

The Human ResourceManagementSystem(HRMS) aimstomanageemployee’sinformationHRMS. is


themostimportantbecauseitprovidesystematicandaccurateinformationabouttheemployeesofthe
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 or 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

Reactisan open-sourceJavaScriptlibrarywhichisusedforbuildinguserinterfacesspecifically
forsinglepageapplicationsIt'susedforhandlingviewlayersforweb. andmobileapps.React also
allows us to create reusable UI[2]components.
Python

Python is an interpreted,object-oriented,high-levelprogramminglanguagewith dynamic


semanticsItshigh.-levelbuiltindatastructures,combinedwithdynamictypingand dynamic
binding,make itveryattractiveforRapidApplicationDevelopment,as wellas foruseasa
scriptingor gluelanguagetoconnectexistingcomponentstogetherPython'simple,easyto.
learnsyntaxemphasizesreadabilityand thereforereducesthecostof programmaintenance.
Pythonsupportsmodulesandpackages,whichencouragesprogrammodularityandcodereuse.
The Pythoninterpreterandtheextensivestandardlibraryareavailableinsourceorbinaryform
without charge for all major platforms, and can be [6]freely distributed.

MongoDB

MongoDB isan object-oriented,simple,dynamic,andscalableNoSQL databaseItisbasedon.


theNoSQL documentstoremodel.The dataobjectsarestoredasseparatedocumentsinsidea
collection— insteadof storingthedataintothecolumnsand rows ofa traditionalre ational
database[3].

3
C hapter 2 : PR O JEC T M A N A G EM EN T

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 withoutany issuesThe. trioof
thistechnologycanefficientlyhandledata,requestsand also create user friendly applications.
Hence this project has a good technical fe

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
resourcesavailable,itisfeasibletodeveloptheapplicationtheallottedduration.Andifthe requirement
changes, according to it duration will be changed.

2.1.3 Operational Feasibility

How theprojectwillwork andwho willuseit,allsuchconcernsariseinthisphase.We haveto


studytheexistingsystem’sproblem,andisitworthsolvingornot.ThisProjectwillsavea lotof
timeand effortof a userto analyzetheemployeeinformationand alsoprovideadditional
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 i 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 applica 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 AgileModel isusedforprojectdevelopmentWe. haveselectedAgileModelbecauseofits


beneficialspeedwithoutaffectingthequalityofproductandagilemakestheteamsomuch more
productive[3].

Agile Model

AgileSDLC modelisa combinationofiterativeandincrementalprocessmodelswithfocuson


processadaptabilityand customersatisfactionby rapiddeliveryofworkingsoftwareproducts.
AgileMethodsbreaktheproductintosmallincrementalbuildsThesebuildsareprovidedin.
iterationsEachiterationtypical.lastsfromaboutonetothreeweeksy.Everyiterationinvolves
crossfunctionalteamsworkingsimultaneouslyon variousareaslikeplanning,requirements
analysis,design,coding,unittesting,and acceptancetestingAt. theend of theiteration working
product is displayed to the customer and important[3] stakeholders.

What is Agile?

Agilemodelsbelievethateveryprojectneedstobehandleddifferentlyandtheexistingmethods
needtobe tailoredtobestsuitheprojectrequirementsInagilethetasksaredividedintotime.
boxes(smalltimeframes)todeliverspecificfeaturesfora releaseIterativeapproachistaken.
andworkingsoftwarebuildisdeliveredaftereachiterationEachbuildisincrementaltermsof.
features; the final build holds all the features required[3] by the customer.

5
Advantages of using Agile Model

Customersatisfactionby rapid,continuousdeliveryofusefulsoftwarePeopleandinteractions.
areemphasizedratherthanprocessesand toolsCustomers,developersand. testersconstantly
interactwitheachotherWorkingsoftwareisdeliveredfrequently(weeksratherthanmonths)..
Face-to-faconversationisthebestformofcommunicationClose,dailycooperationbetween.
business people and developers. Continuous attention to technical excellence[3]

Disadvantages of using Agile Model

Incaseofsome softwaredeliverablespeciallythelargeones,itisdifficulttoassesstheeffort,
required at the beginning of the software development[3] life cycle.
Thereisa lackofemphasison necessarydesigninganddocumentationThe. projectcaneasily get
taken off track if the customer representative is not clear what final[3] ou

Only seniorprogrammersare capableof takingthekindof decisionsrequireduringthe


developmentprocessHence. ithasno placefornewbieprogrammers,unlesscombinedwith
experienced resources[3].

2.2.2 Milestones and Deliverables

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

6
Table 2.1 Milestones and Deliverables

PHASE DELIVERABLES PURPOSE


System Requiremen ● Requirement Gatherin It gives an exact
and Analysis and analysis. understandingof the
● Functional Specifica user’s requirement
● Non-functional
Specification
System Design ● Use case Diagram It gives the logica
● Activity Diagram structure that
● Data Flow Diagram describes the syst
Implementationand ● The outputobtainedfor It makes the system
Testing therequiredfunctional robust and reliabl
afterimplementingand
doing varioustypes 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 oftheprojectshouldbededicatedtotheprojectandshouldinturnhelpeachother


inwhateverproblemsconcerningtheprojectThey. areexpectednottohave any internalor
externalcommunicationgaps.They arealsoexpectedtosharethechallengesfacedby them
duringdesignordevelopmentsothattheteamandmentorscanbrainstormovereverypossible
dimension.They shouldreportperiodicallytotheconcernedfacultyand keep them updated
regarding the Project.

8
C hapter 3 : SY STEM R EQ U IR EM EN TS STU D Y

3.1 Study Of Current System

BeforeCrestHRMS ,Companywas usingthirdparty’sHRMS.Which was


notfeasibleandwas costly too.It was difficult to change existing HRMS.

3.2 User Characteristics

The usersare the normalemployeeswho want to check theirleavebalance,profile,other


employeesgeneralinformation.Admisan specialuserwho hasextrarightslikeacceptorreject
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,pertheCompany’spolicyany developerhastomaintaintheCodingStandardsandfollow the


bestpracticesAlso,eachand. everyusershouldmaintainthesubversionand committhe
modificationwith appropriatecomment so to have trackof work and alsoof the code
modification. From the client’s perspective, developers should use well known

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

Criticalitymeans any occurrenceof missoperatingof thesystemor any accidentaleventin


softwarewhichcandamagetheresourcesofsoftwareaswellashardwareAs. permy
knowledge there is no criticality in our Application.

3.5 Assumptions And Dependencies

We assumethattheenduserhasa knowledgeofCrestHRMS. So,theendusercangetbestoutofit.


Application is dependent only on Google drive API, Client Authentication.

10
SYSTEM ANALYSIS

C hapter 4 : SY STEM A N A LY SIS

4.1 Requirements Of New System

4.1.1 User Requirements

User requirementsincludeminordetails,butmost importantlyusersmust be awarethatthe


system works properlywith fullavailability,reliability,securityand safety.The user
responsibilisasfollows:Usershouldknowty how tousetheapplicationandshouldadhereto 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 theCrestHRMS shouldbe userfriendlyso thatuserscannavigateasily


through it.
• Accuracy

As we weredevelopingtheapplication,we mustmake thesystemthatisveryaccuratein


itsfunctionsAll. thedatashouldkeep workingproperly,keep gettingperfectinput,
processaccuratelyand producethe perfectoutput.Accuracyisthemost important non-
functional characteristic or requirement of the system.
• Reliability

Errorhandlingmechanismmust be robusttoavoidfailureofoperationand incaseof


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 ta

Software Requirements and Specification (SRS)

R1. login using AD credentials


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

R2. sync employees which allows onboarding & offboarding

Description(Admin Person):As an applicationadmin,One shouldbe tosyncnew joinees


and resignees i.e onboarding and offboarding employees into empl

Input:Sync up new joinees or resignees.


Output:Updated page.

R3. view/edit the employee’s general information

Description(Admin Persona):As anapplicationadmin,One


shouldbeabletoviewand 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 applicationadmin,One


shouldbeabletoviewand 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 applicationadmin,One


shouldbeabletoviewand edit any employee’s skills.

Input:Add Skills,PrimaryTechnologyVertical,SecondaryTechnologyVerticalof
employee.

Output:Updated page of skills.

R6. employee’s job history information

Description(Admin Person):As an applicationadmin,One shouldbeabletoviewand


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(UserPersona):As anapplicationuser,One shouldbeabletoviewandedit


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 crestletters,aadhcard,bankacc.page,Educationalcertificate,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 applicationadmin,One shouldbe abletoview,upload,deleteand


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 c

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
C hapter 5 : SY STEM A R C H ITEC TU R E D ESIG N

5.1 System Architecture Design

Systemsdesignistheprocessofdefiningthearchitecture,modules,interfaces,anddatafora systemto
satisfyspecifiedrequirementsSystemsdesigncouldbe. seenastheapplicatiofsystemstheoryton
productdevelopment.There is some overlapwith the disciplinesof systemsanalysis,systems
architecture and systems engineering[3].

Architectural Design

The architecturaldesignofa systememphasizesthedesignofthesystemsarchitecturethatdescribesthe

structure, behavior and more views of that system[3] and analysis.

Logical Design

The logicaldesignofa systempertainstoanabstractrepresentationofthedataflows,inputsandoutputs


ofthesystem.Thisisoftenconductedviamodelling,usingan over-abstract(andsometimesgraphical)
model of the actual system. In the context of systems, designs[3] are included.

Physical Design

The physicaldesignrelatestotheactualinputandoutputprocessesofthesystem.Thisisexplainedin
termsofhow dataisinputintoa system,how itisverified/authenticated,how itisprocessed,andhow it
is displayed. In physical design, the following requirements about[3]the system are d

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

User InterfaceDesignisconcernedwithhow usersadd informationtothesystemand withhow the


systempresentsinformationbacktothem.DataDesignisconcernedwithhow thedataisrepresented and
storedwithinthesystem.Finally,ProcessDesignisconcernedwithhow datamoves throughthe
system,andwithhow andwhereitisvalidated,securedand/ortransformedasitflowsinto,throughand
outofthesystem.At theendofthesystemdesignphase,documentationdescribingthethreesubtasksis

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

Physicaldesign,inthiscontext,doesnotrefertothetangiblephysicaldesignofaninformationsystem. To
usean analogy, personalcomputer'sphysicaldesigninvolvesinputviaa keyboard,processing
withintheCPU, and outputviaa monitor,printer,etc.Itwould notconcerntheactualayoutofthe
tangiblehardware,which fora PC would be a monitor,CPU, motherboard,harddrive,modems,
video/graphicscards,USB slots,etc.Itinvolvesa detaileddesignof a userand a productdatabase
structureprocessorand a controlprocessorThe. H/S personalspecificatisdevelopedfortheon
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 D iagram offunctionality

20
5.5 Sequence Diagram

5.5(a) Sequence D iagram oflogin


21
5.5(b) Sequence D iagram for changing profile

5.5(c) Sequence D iagram for Bulk C hange event

22
5.5(d) Sequence D iagram for Apply leave event

23
5.5(e) Sequence D iagram for C ancelleave event

24
5.5(f) Sequence D iagram for G eneralProfile

25
5.5(g) Sequence D iagram for Sync new em ployees

26
C hapter 6 : IM PLEM EN TA TIO N PLA N N IN G

Planningisan essentiaspectofanysuccessfulprojectlHowever,itcanbe. difficulttoturngoalsand


strategyintotangibleaction,and,therefore,projectsofallsizesand acrossallindustrieshavea high
tendencytofailImplementationplanningcanreducethischanceoffailureby. helpingturnstrategyinto
action.

6.1 Implementation Environment

The application is a single server multiple client application. Multiple users can

Multi-user vs. Single-user

Singleuserapplicationsaretheapplicationwhereitisusefultoonlyoneuserata time.WhileinMulti
usergivenapplicationisusedby many usersatthesametimeandthusweb applicationisusedby many
usersatthesame time.Our systemisa multi-usersystemaswe havemore thanoneuserwho canuse
the system at the same time.

GUI vs. Non-GUI

Non-GUI applicationusescommand Promptforinputand outputwhileGUI applicationhasgraphics


formtointerfaceandothergraphicspropertyforvariousI/OoperationsandareeasytouseOur System
is a GUI based and thus easy and effective to use therefore user can easily give in

6.2 Program/Modules Specification

● MongoDB database Server


● VS Code
● OS: Ubuntu & MacOS

6.3 Coding Standards

Codingtechniquesincorporatemany factsaboutsoftwaredevelopmentAlthoughtheyusuallyhaveno.
impacton thefunctionalityoftheapplication;theycontributeoan improvedcomprehensionofsource
code.Allformsof sourcecode areconsideredhere,includingprogramming,scriptingmarkup,and
query languages[3].

27
The codingtechniquesdefinedarenotproposedtoforman inflexiblesetofcodingstandardsRather,.
theyaremeanttoserveasa guidefordevelopinga codingstandardfora specificsoftwareprojectWe.
used sonarlint standards for creating our[3] whole project.

Purpose of Coding Standards and Best Practices

To developreliableandmaintainableapplications,youmustfollowcodingstandardsandbestpractices. The
namingconventions,codingstandardsandbestpracticesdescribedinthisdocumentarecompiled
fromourown experienceandby referringtovariousguidelinesThereareseveralstandardsthatexistin.
theprogrammingindustryNone. ofthem arewrong orbadandyou may followanyofthem.What is more
important is, selecting one standard approach and ensuring that [3]everyone is fo

In thisphase of softwaredevelopment,the designis relatedto a system convertedintoa machine-


readablecodethatcanbe compiledand executedAlthoughthecodingphasedoesnotaffect.
thestructureofthesystem,ithasa greatimpacton theinternalstructureofthemodule,whichaffects the
testability, under the stability[3] of the system.

6.4 C oding Scenario

We usedpythonProgrammingandtheGraphQL querylanguageofAPI Call..GraphQL isusedinstead


of REST. We modularized every functionality so we can reuse those[7]whenever we need.

We havealsousedGoogleDriveAPI,toaccesstheAttachmentofemployeesWe. havestoredthose
documents and only the admin can [4]access it.

We haveusedreact.forfrontendjs.Wehaveutilizedcomponentsverywellandalsousedredux.Redux is
a very powerful tool [2]of react.

A majorchallengeforus was toachievesuccesswhen 500 employeesuseHRMS ata time.Wehave


used Nginx for load balancing. Our HRMS product is also secure in terms of https su

28
C hapter 7 : TESTIN G

7.1 Testing Plan

The objectiveofthesystemtestingistoensurethatallindividualprogramsareworkingasexpected,
thattheprogramslinktogethermeettherequirementsspecifiedandensurethatthecomputersystem and
theassociatedclericalnd otherprocedureswork togetherSystemsarenotdesignedas. entire
systems but they are tested as single systems. The analyst must perform both[3] unit a
<<

DifferenttypesoftestingmethodsareavailableWe. havetestedoursystemfordifferentaspectslike Does


theapplicationmeetthegoalsforwhichithasbeendesigned?Thiswas a veryimportantquestion that stood
before us as the application was designed to be implemented [3]on such a la
<

To fulfillitsgoalofbeingabletorunon differentsystemswe wentthrougha seriesoftestsatdifferent


placeswherethisissupposedtobe usedthemost.As we needtomake oursystemefficientenough,we
need to test it thoroughly[3].
<

Finally,we testedthesystemwithreal-timedata,forwhichitisactuallydesignedWe. aresuccessfulin


satisfyingourneedsasitwas designedaccordingtoclient'srequirementsBut. itisverynecessaryto
maintain this application and so our work is[3] not still over.

Fig. 7.1 Testing Plan


29
TESTING

7.2 Testing Strategy

Once sourcecodehasbeengenerated,thesoftwaremustbetestedtouncoverasmany errorsaspossible


beforedeliverytothecustomerOur. goalistodesigna seriesoftestcasesthathavea highlikelihoofd
findingerrorsSoftwaretestingtechniquesprovidesystematicguidancefordesigningteststhat(1).
Exercisetheinternallogicofsoftwarecomponents(2)Exercisetheinputsandoutputsdomainsofthe program
to uncover errors in program function, behavior[3]and performance.

Duringtheearlystagesoftesting,a softwarengineerperformsalltestsHowever,asthetestingprocess.
progresses,testingspecialistsmay become involvedReviewsand. otheractivitiescananddo uncover
errors,buttheyarenotsufficientEverytimetheprogramisexecuted,thecustomertestsit!Therefore,. you
havetoexecutetheprogrambeforeitgetstothecustomerwiththespecifintentoffindingandc
removingallerrorsIn. ordertofindthehighestpossiblenumber oferrors,testsmust be conducted
systematically and test cases must be designed using disciplined[3] techniques.

Testing Objectives

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


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

Unit Testing

Unittestingisa softwaredevelopmentprocessinwhichthesmallesttestablepartofan application,


calledunits,areindividuallyscrutinizedforproperoperationUnittestingisoftenautomatedbutitcan. alsobe
done manuallyThistestingmode. isa componentofExtremeProgramming(XP),a pragmatic
methodofsoftwaredevelopmenthattakesa meticulousapproachtobuildinga productby means of
continual testing and revision[3].
Unittestinginvolvesonlythosecharacteristicshatarevitaltotheperformanceoftheunitundertest.
Thisencouragesdeveloperstomodifythesourcecode withoutimmediateconcernsabouthow such
changesmightaffecthefunctioningoftheunitsortheprogramasa whole.Once alloftheunitsina
programhave been foundtobe workinginthemost efficientand errorfreemannerpossible,larger
components of the program can be evaluated by means of integration[3] testing.

System Testing

Now, it’stimeforwholeSystemtestingWe. havefoundsome cosmeticbugsandminorbugs.We have


fixeditandtesteditagainWe. workedon eacherrorandexceptionthatwe gotwhiletestingandmostof
them are resolved or handled programmatically[3].

30
TESTING

Recovery Testing

Itisa systemtestthatforcesthesoftwaretofailina varietyofways and verifiesthatrecoveryis properly


performed[3].

Performance Testing

Itisdesignedtotestherun-timeperformanceofsoftwarewithinthecontextofan integratedsystem
performance testing occurs throughout all steps in the[3] testing process.

7.3 Testing Methods

Acceptance Testing

Acceptancetestingcanbe connectedby theenduser,customer,orclienttovalidatewhetherornotto


accepttheproductAcceptancetestingmay. be performedaspartofthehand-offprocessbetweenany
two phasesofdevelopmentThe. acceptancetestsuiteisrunagainsthesuppliedinputdataorusingan
acceptancetestscriptodirecthetesterThen. theresultsobtainedarecomparedwiththeexpected
results. If there is a correct match for every case, the test suite is said to pass

Alpha & beta testing

The alphatestisconductedatthedeveloper’ssiteby a customerThe. softwareisusedina natural


settingwiththedeveloper“lookingovershoulder”oftheuserandrecordingerrorsandusageproblems.
Alpha testisconductedina controllednvironmentThe. betatestingisconductedatone or more
customersitesby theend-userof thesoftwareUnlikealphatesting,thedeveloperisgenerallynot.
presentTherefore,thebetatestisa. “live”applicatiofthesoftwareinanenvironmentthatcannotben
controlled by the developer[3].

Black-box testing

Alsoknown asfunctionaltestingSoftwaretestingtechniqueswhereby. theinternalworkingoftheitem


beingtestedarenotknown by thetesterForexample,ina. blackbox teston softwaredesignthetester
onlyknows theinputsand what theexpectedoutcomesshouldbe andnothow theprogramarrivesat
thoseoutputsThe. testerdoesnoteverexaminetheprogrammingcodeanddoesnotneedanyfurther
knowledge of the program other than its [3]specification.

The advantages of this type of testing include:

31
TESTING

● The test is unbiased as the designer and the tester are independent of each o
● The tester does not need knowledge of any specific programming languages.
● The testisdonefromthepointofviewoftheuser,notthedesignerTestcasescanbedesigned. 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 cas
● The testcasesaredifficulttodesignTestingeverypossibleinputstreamisunrealisticbe. auseit would
take an inordinate amount of time: hence many program paths will go unt

White Box Testing

Alsoknown asglassbox,structuralearboxandopenboxtesting,A.softwaretestingtechniquewhere by
explicitknowledgeoftheinternalworkingsoftheitembeingtestedareusedtoselecthetestdata.
Unlikeblackbox testing,whitebox testingusesspecificknowledgeofprogrammingcodetoexamine
outputsThe. testisaccurateonlyifthetesterknows whattheprogramissupposedtodo.He orshecan
then see if the program diverges from its[3]intended goal.

7.4 Test Cases

To minimizethenumber oferrorsinsoftware,richvarietyoftestdesignmethodshaveevolvedfor
softwareThesemethodsprovidethedeveloperwitha. systematicapproachtotestingMore. importantly,
methodsprovidea mechanismthatcan helptoensurethecompletenessof thetestand providethe
highest likelihood for uncovering errors[3] in software.

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

● Knowing thespecifiedfunctionthatproducthasbeendesignedtoperform,testscanbe conducted


thatdemonstrateachfunctionisfullyoperationalwhileatthesame timesearchingforerrorsin each
function:[3]
● Knowing theinternalworkingsofa product,testscanbe conductedtoensurethat“allgearmesh “,
thatis,internaloppressionareperformedaccordingtospecificationds allinternalcomponents have
been adequately exercised. Here are the test cases that we had made[3] for our

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 nam Text No Yes Yes

Date of Birt Date Yes Yes Yes

Blood Group Dropdown Yes Yes Yes

Personal Ema Email No Yes Yes


Gender Radio Yes Yes Yes
Button

Marital Stat 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
C hapter 8 : U SER M A N U A L

8.1 Installation G uide:

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 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 system
mongod.service
● Install Node sudo dnf install nodejs
● Run bamboo build
● Install all required python dependencies. From HRMS_Production folder (/home/ run below
command: pip3 install -r app/requirements.txt
● Only for first time installation: From HRMS_Production folder run below comma database:
mongorestore -d HRMS app/database_hrms
● From hrms/app folder, open conf.ini. Check if the FOLDER_ID for the productio 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/con 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 productio 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 instance and
default port:7000 and add/change GENERATE_SOURCEMAP=false.
● Install npm dependencies. From HRMS_Production/ui folder run below command: n
● From HRMS_Production/ui folder run below command: npm run build
● From the hrms/app folder run below command: gunicorn -c configuration/gunicor app:app If
you are facing issue in running above command due to an already ru then find the process and
kill it. To find the process run below command: ps To kill the process, take parent process ID
from above command and run below -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 c 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 fordAdminUser rolean

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


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

Fig.8.4(e) Job history Tab forAdminUser roleand


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 roleAdmin

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
C hapter 9 : LIM ITA TIO N S A N D FU TU R E EN H A N C EM EN T

9.1 Limitations

● To get the best out of our product we assume that the end user knows the Cres
● Users must have basic knowledge of Active Directory and must have its credent
● 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
C hapter 10 : C O N C LU SIO N

10.1 Conclusion

D ue to this H um an Resource M anagem entSystem (H RM S)lotsofw ork w hich w asdone M anually by the H
R and PM O team w illbe autom ated.From now on the H R team doesnothave to m aintain an excelsheet(Leave
Tracker)forthe leavesofallem ployees.Em ployeescan apply and the D M can approve/rejectleavesfrom H RM S itself and
track the leave status. U sing the Bulk change m odule H R and PM O can directly change the grade,
designation,departm entand etc. of m any em ployees in bulk. M ostcrucialthing is thatH RM S is operated and m
aintained by Crest itself, So itcan save m oney on outsourcing the softw are and the com pany can m ake all required
changesaccording to theirneeds.U sing the feature offilterunderem ployee directory H R and PM O team can filter outem
ployees data they require based on skills,previous experience and various other param eters.

50
A PPEN D IC ES

● GraphQL
○ https://graphql.org/
● React.js
○ https://reactjs.org/
○ https://www.udemy.com/tutorial/react-the-complete-guide-incl-redux/what-
● 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
R EFER EN C ES

[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

[4]Stack Overflow. (2008) Coding Related Question Solution


[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 Driv [Online]
[Accessed from February to June 2020]
https://developers.google.com/drive/api/v3/about-sdk

53
PLA G IA R ISM R EPO R T

This plagiarismreportis generatedfrom the plagiarismcheckeravailableat


https://www.duplichecker..Thisplagiarismcheckerhasacom/ limitof1000 wordsper
report.

54
PLAGIARISM REPORT

● Average plagiarism = 23.875%

55

You might also like