Overview
Centralised Human Resource System (CHRS) is an application for managing employees within the company. The application is created to assist the Human Resource Department of the company to better manage the employees' information. CHRS is capable of checking work schedule, creating recruitment posts, checking of expenses claims and storage of various information of each employee such as salary, department, position, etc.
Summary of contributions
-
Project Management:
-
Assists in approving, reviewing and merging pull requests.
-
-
Major enhancement: added
addRecruitmentPostCommand
,deleteRecruitmentPostCommand
,clearRecruitmentPostCommand
editRecruitmentPostCommand
,selectRecruitmentPostCommand
-
What it does: Allow users to manage recruitment posts for the company.
-
Justification: This feature improves the product significantly because managing recruitment is one of the main responsibilities for HR admin.
-
Highlights: This enhancement provides an integrated function for HR admin to manage internal recruitment posts easily before publish to the public.
-
-
Code contributed: [Reposense Dashboard]
-
Other contributions:
-
Test cases:
-
Documentation:
-
Community:
-
Contributions to the User Guide
Given below are sections I contributed to the User Guide. They showcase my ability to write documentation targeting end-users. |
Add new recruitment post : addRecruitmentPost
Add a recruitment post based on job position, minimal years of working experience and job description.
Format: addRecruitmentPost jp/JOB_POSITION me/MINIMAL_YEARS_OF_WORKING_EXPERIENCE jd/JOB_DESCRIPTION
or
arp jp/JOB_POSITION me/MINIMAL_YEARS_OF_WORKING EXPERIENCE jd/JOB_DESCRIPTION
Examples:
-
addRecruitmentPost jp/IT Manager me/3 jd/maintain the functionality of company server
Add an recruitment post with the available position called IT Manager, and the job requires minimal 3 years of working experience in similar field. The job position requires the candidates' ability to maintain the functionality of company server -
arp jp/IT Manager me/3 jd/maintain the functionality of company server
Add an recruitment post with the available position called IT Manager, and the job requires minimal 3 years of working experience in similar field. The job position requires the candidates' ability to maintain the functionality of company server
Duplicate recruitment posts are not allowed. Minimal one field should be different. |
Edit an existing recruitment post : editRecruitmentPost
Edit a recruitment post based on its index no.
Format: editRecruitmentPost [Index] jp/JOB POSITION me/MINIMAL YEARS OF WORKING EXPERIENCE jd/JOB DESCRIPTION
or erp [Index] jp/JOB POSITION me/MINIMAL YEARS OF WORKING EXPERIENCE jd/JOB DESCRIPTION
Examples:
-
editRecruitmentPost 1 jp/IT Manager me/3 jd/To maintain the company server
Edit the recruitment post with index 1. And the post information from job position, minimal working experience to job description respectively changes to IT manager, minimal working experience of 3 years in relevant field and the job description is to maintain the company server. -
erp 1 jp/IT Manager me/3 jd/To maintain the company server
Edit the recruitment post with index 1. And the post information from job position, minimal working experience to job description respectively changes to IT manager, minimal working experience of 3 years in relevant field and the job description is to maintain the company server.
Minimal one field should be changed in order to make the editing recruitment post function work. |
Select an existing recruitment post : selectRecruitmentPost
Select a recruitment post based on post index ID.
Format: selectRecruitmentPost INDEX
or srp INDEX
Examples:
-
selectRecruitmentPost 1
Select the recruitment post with the index of '1'
At least one recruitment post should be added in the recruitment post list panel before performing this function. |
Delete an existing recruitment post : deleteRecruitmentPost
Delete a recruitment post based on post index ID.
Format: deleteRecruitmentPost INDEX
or drp INDEX
Examples:
-
deleteRecruitmentPost 1
Deletes the recruitment post with the index of '1'
At least one recruitment post should be added in the recruitment post list panel before performing this function. |
Clear recruitment posts : clearRecruitmentPost
Clear all recruitment posts at one go.
Format: clearRecruitmentPost
or crp
Publish recruitment posts to job portal: publishRecruitmentPost
[Upcoming in 2.0]
publishRecruitmentPost
command allows users to publish an existing recruitment post to job portal such as job street
website. [Upcoming in 2.0]
Contributions to the Developer Guide
Given below are sections I contributed to the Developer Guide. They showcase my ability to write technical documentation and the technical depth of my contributions to the project. |
Recruitment Post Feature
Recruitment post
features allows HR staffs to manage internal recruitment posts easily before publishing to the public
. It allows users to do add, delete, clear, select and edit recruitment post based on 3 fields including job position,
working experience, and job description.
All logic commands come with a dedicated parser. These parsers ensure that the input conforms to the following field restrictions in phase 1 before parsing to the actual command for execution in phase 2:
Field Name | Prefix | Limitations |
---|---|---|
JOB_POSITION |
jp/ |
Job position accepts only characters. It must not be blank and should not include numbers and punctuation mark. And users are not allowed to exceed the character limit which is from 1 to 20 |
MINIMAL_YEARS_OF_WORKING_EXPERIENCE |
me/ |
Minimal years of working experience must be integers and should not be blank . And It is limited from 0 to 30 |
JOB_DESCRIPTION |
jd/ |
Job description accepts only characters and Punctuation mark including only comma, full stop, and single right quote. It must not be blank and should not include numbers. And users are not allowed to exceed the character limit which is from 1 to 200 |
Current Implementation for addRecruitmentPost
addRecruitmentPost
command allows a new recruitment post to be added. The sequence diagram below illustrates the
operation of addRecruitmentPost
command:
In addition, Command Exception will be thrown due to the following:
-
Invalid command format is used.
-
A duplicated recruitment field exists. Minimal 1 field should be different.
-
Fields' restrictions are not followed.
Current Implementation for editRecruitmentPost
editRecruitmentPost
command allows an existing recruitment post to be edited. The sequence diagram below illustrates
the operation of editRecruitmentPost
command:
In addition, Command Exception will be thrown due to the following:
-
Invalid command format is used.
-
A duplicated recruitment field exists. Minimal 1 field should be different from existing recruitment post that is about to be edited.
-
Fields' restrictions are not followed.
Current Implementation for selectRecruitmentPost
selectRecruitmentPost
command allows users to select an existing recruitment post based on recruit post index number
displayed in the recruitment post list panel. The sequence diagram below illustrates the operation
of selectRecruitmentPost
command:
In addition, Command Exception will be thrown due to the following:
-
Invalid command format is used.
-
Recruitment post list is empty.
-
Invalid index number is used.
Current Implementation for deleteRecruitmentPost
deleteRecruitmentPost
command allows users to delete an existing recruitment post based on recruit post index number
displayed in the recruitment post list panel. The sequence diagram below illustrates the operation
of deleteRecruitmentPost
command:
In addition, Command Exception will be thrown due to the following:
-
Invalid command format is used.
-
Recruitment post list is empty.
-
Invalid index number is used.
Future Implementation for publishRecruitmentPost
[Upcoming in 2.0]
publishRecruitmentPost
command allows users to publish an existing recruitment post to job portal such as job street
website. [Upcoming in 2.0]
Design Considerations for Recruitment Post Feature
Aspect implementation of all Recruitment Post Commands
-
Alternative 1 (current choice): Have separate commands to manage recruitment posts.
-
Pros: Individual command is easier for user to use and easier for developer to debug and test.
-
Cons: More methods and implementation is required.
-
-
Alternative 2: Have a single command to manage recruitment posts.
-
Pros: Lesser methods and implementation is required.
-
Cons: The command could be too complicated for users to use as more fields would be needed.
-