PROJECT: Centralised Human Resource System (CHRS)


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:

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:

addRecruitmentPost

In addition, Command Exception will be thrown due to the following:

  1. Invalid command format is used.

  2. A duplicated recruitment field exists. Minimal 1 field should be different.

  3. 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:

editRecruitmentPost

In addition, Command Exception will be thrown due to the following:

  1. Invalid command format is used.

  2. A duplicated recruitment field exists. Minimal 1 field should be different from existing recruitment post that is about to be edited.

  3. 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:

selectRecruitmentPost

In addition, Command Exception will be thrown due to the following:

  1. Invalid command format is used.

  2. Recruitment post list is empty.

  3. 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:

deleteRecruitmentPost

In addition, Command Exception will be thrown due to the following:

  1. Invalid command format is used.

  2. Recruitment post list is empty.

  3. 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.