By: Team W14-B3
Since: Jan 2018
Licence: MIT
- 1. Introduction
- 2. Quick Start
- 3. Features
- 3.1. Viewing help :
help
- 3.2. Adding a person:
add
- 3.3. Editing a person :
edit
- 3.4. Schedule interview for a person :
interview
- 3.5. Locating persons by field:
find
[since v1.2]
- 3.6. Filter persons by multiple fields:
filter
[since v1.3]
- 3.7. Deleting a person :
delete
- 3.8. Selecting a person :
select
- 3.9. Rating a student :
rate
[since v1.1]
- 3.10. Editing the rating given to a student :
rating-edit
[since v1.5]
- 3.11. Deleting the rating given to a student :
rating-delete
[since v1.2]
- 3.12. Sorting the list of students based on different fields :
sort
[since v1.3]
- 3.13. Update applicant’s status:
status
[Since v1.3] - 3.14. Listing entered commands :
history
- 3.15. Undoing previous command :
undo
- 3.16. Redoing the previously undone command :
redo
- 3.17. Clearing all entries :
clear
- 3.18. Exiting the program :
exit
- 3.19. Saving the data
- 3.20. Add more field support in
filter
command[coming in v1.4]
- 3.21. Highlights search results in user interface
[coming in v2.0]
- 3.22. User specified Levenshtein distance
[coming in v2.0]
- 3.23. User specified search support
[coming in v2.0]
- 3.24. Displays suggested searches for user before executing find command
[coming in v2.0]
- 3.25. Customising rating criteria
[coming in v2.0]
- 3.26. Saving searches
[coming in v2.0]
- 3.27. Sending and receiving emails
[coming in v2.0]
- 3.1. Viewing help :
- 4. FAQ
- 5. Command Summary
Welcome to Human Resources Plus (HR+)! HR+ is a free recruiting and talent management software designed for campus recruiters to achieve hiring success. HR+ streamlines your recruiting process, increases your productivity and helps you make more consistent and informed hiring decisions. This guide provides you with everything you need to know about setting up and using various features of HR+ effectively as a campus recruiter. To enjoy the full benefits of HR+, you should be comfortable using desktop applications and working with a Command Line Interface (CLI). If you can type fast, HR+ can get your talent management tasks done faster than traditional Graphical User Interface (GUI) applications.
Interested? Navigate to Section 2, “Quick Start” to get started. Enjoy!
-
Ensure you have Java version
1.8.0_60
or later installed in your Computer.ℹ️Having any Java 8 version is not enough.
This app will not work with earlier versions of Java 8. -
Download the latest
HR.jar
here. -
Copy the file to the folder you want to use as the home folder for HR+.
-
Double-click the file to start the app. The GUI should appear in a few seconds.
-
Type the command in the command box and press Enter to execute it.
e.g. typinghelp
and pressing Enter will open the help window. -
Some example commands you can try:
-
list
: lists all contacts -
add
n/John Doe p/98765432 e/[email protected] a/John street, block 123, #01-01 u/NUS y/2020 m/Computer Science g/4.93 j/Software Tester
: adds a contact namedJohn Doe
to the Address Book. -
delete
3
: deletes the 3rd contact shown in the current list -
exit
: exits the app
-
-
Refer to Section 3, “Features” for details of each command.
Command Format
-
Words in
UPPER_CASE
are the parameters to be supplied by the user e.g. inadd n/NAME
,NAME
is a parameter which can be used asadd n/John Doe
. -
Items in square brackets are optional e.g
n/NAME [t/TAG]
can be used asn/John Doe t/friend
or asn/John Doe
. -
Items with
…
after them can be used multiple times including zero times e.g.[t/TAG]…
can be used ast/friend
,t/friend t/family
etc. -
Parameters can be in any order e.g. if the command specifies
n/NAME p/PHONE_NUMBER
,p/PHONE_NUMBER n/NAME
is also acceptable.
💡
|
The command keywords and parameters are case sensitive. |
Adds a person to the address book
Format: add n/NAME p/PHONE_NUMBER e/EMAIL a/ADDRESS u/UNIVERSITY y/EXPECTED_GRADUATION_YEAR m/MAJOR g/GRADE_POINT_AVERAGE j/JOB_APPLIED [r/RESUME] [i/IMAGE] [c/COMMENT] [t/TAG]…
💡
|
A person can have any number of tags (including 0) |
Examples:
-
add n/John Doe p/98765432 e/[email protected] a/John street, block 123, #01-01 u/NUS y/2020 m/Computer Science g/4.93 j/Software Tester
-
add n/Betsy Crowe t/friend e/[email protected] a/Newgate Prison p/1234567 u/SMU y/2018 m/Information Security g/4.56 j/Web Security Analyst t/Python
-
Resume to be added is specified by the relative path to the jar file. It also must be valid PDF, and smaller than 1MB. === Listing all persons :
list
Shows a list of all persons in HR+.
Format: list
Edits an existing person in the address book.
Format: edit INDEX [n/NAME] [p/PHONE_NUMBER] [e/EMAIL] [a/ADDRESS] [u/UNIVERSITY] [y/EXPECTED_GRADUATION_YEAR] [m/MAJOR] [j/JOB_APPLIED] [r/RESUME] [i/IMAGE] [c/COMMENT] [j/JOB_APPLIED] [t/TAG]…
-
Edits the person at the specified
INDEX
. The index refers to the index number shown in the last person listing. The index must be a positive integer 1, 2, 3, … -
At least one of the optional fields must be provided.
-
Existing values will be updated to the input values.
-
When editing tags, the existing tags of the person will be removed i.e adding of tags is not cumulative.
-
You can remove the person’s resume by typing
r/
without specifying any resume after it. -
You can remove all the person’s tags by typing
t/
without specifying any tags after it.
Examples:
-
edit 1 p/91234567 e/[email protected]
Edits the phone number and email address of the 1st person to be91234567
and[email protected]
respectively. -
edit 2 n/Betsy Crower t/
Edits the name of the 2nd person to beBetsy Crower
and clears all existing tags.
Schedule interview of an existing person in HR+.
Format: interview INDEX DATETIME
-
Schedule interview for the person at the specified
INDEX
. The index refers to the index number shown in the last person listing. The index must be a positive integer 1, 2, 3, … -
DATETIME
is the English representation of the date and time
Examples:
-
interview 1 next Friday at 3pm
Schedule the interview of the 1st person to be next Friday at 3pm. -
interview 2 Mar 14 2pm
Schedule the interview of the 2nd person to be 14 March at 2pm.
Finds persons whose fields contain any of the given keywords.
Option 1: find KEYWORD, [MORE_KEYWORDS]
Option 2: find prefix/KEYWORD, [MORE KEYWORDS] prefix/…
These are the prefixes supported by the find
command:
1. Name - n/
2. Phone - p/
3. Email - e/
4. Address - n/
5. University - u/
6. Major - m/
7. Job Applied - j/
8. Comment - c/
These are 3 types of features that are supported for the find
command:
-
Exact keyword match - Matches your search keyword with exact keywords found in the fields of persons.
-
Fuzzy keyword match - Matches your search keyword that is a fuzzy match with keywords found in the fields of persons. The fuzzy matching algorithm is based on the Levenshtein distance (LD) , which is a measure of the similarity between two strings. The threshold is set to 2 in HR+. This means that any keyword that is 2 characters different from the search keyword will be detected. If you are interested in finding out how the fuzzy match algorithm works, you can refer to the Java documentation on how this feature is implemented.
-
Wildcard keyword match – Matches your search keyword with 3 types of wildcard support. You should substitute the keyword " example " with your desired keyword.
-
Wildcard "example" searches for field that contains keyword example
-
Wildcard *example searches for field that ends with keyword example
-
Wildcard example* searches for field that starts with keyword example
-
Search results are displayed in the application console. The format is:
TYPE OF SEARCH MATCH
KEYWORD: (PREFIX)MATCHED KEYWORD
(PREFIX) - represents which field the matched keyword was in.
The fuzzy search algorithm is implemented to cater users that fits the following profile:
1. Unsure what they want to search for
2. Aware of some patterns of the keywords but not the full keyword
3. Prone to typos
If you are certain that you want to find a certain keyword, please use the wildcard "example"
so that all fields that contains the search keyword would be displayed only. Customizing fuzzy searching is one of our considerations for v2.0.
Examples:
💡
|
General tips are not repeated across different examples! |
-
find bernice, charlot
Returns list of persons whose keywords in any of their fields that are of an exact match OR fuzzy match withbernice
ORcharlot
. In the sample data provided, the list will return personsBernice Yu
andCharlotte Oliveiro
. Keywordbernice
is an exact match with one of the keywordsBernice
andcharlot
is a fuzzy match with one of the keywordsCharlotte
inCharlotte Oliveiro
.
💡
|
The search is case insensitive in HR+. e.g bernice might match Bernice .Different keywords should be comma separated, if not it will be treated as one keyword in HR+. All fields are searched if no prefix is supplied first in HR+. If the first keyword does not start with a valid prefix, this command would assume a global search for all fields. A global search does an OR search between keywords. Persons matching at least one keyword will be returned in HR+. |
-
find e/[email protected], [email protected] j/Software p/87438807
Returns list of persons that matches the following conditions:-
Keywords in their
email
field are of an exact match OR fuzzy match with[email protected]
OR[email protected]
AND -
Keywords in their
job applied
field are of an exact match OR fuzzy match withSoftware
AND -
Keywords in their
phone
field are of an exact match OR fuzzy match with87438807
.
In the sample data provided, the list with return personAlex
as he is the only person that matches all these conditions.
-
💡
|
The first keyword is prepended with a prefix, thus this command assumes a prefix search. A prefix search does an OR search between keywords in the same prefix and an AND search between different prefixes. |
-
find Mohammed, Julius, n/[email protected]
Returns list of persons whose keywords in any of their fields that are of an exact match OR fuzzy match withMohammed
,Julius
ORn/[email protected]
. In the sample data provided, the list will return personsJulius Hassange
andMohammed Lee
.
💡
|
The prefix is not accounted for in the third keyword as the first keyword does not start with a valid prefix. |
-
find alex bernice david
Returns list of persons whose keywords in any of their fields that are of an exact match OR fuzzy match withalex bernice david
. In the sample data provided, this command will return an empty list. -
find n/alex bernice david p/98293213 92421423
Returns list of persons that matches the following conditions:-
Keywords in their
name
field are of an exact match OR fuzzy match with keywordalex bernice david
AND -
Keywords in their
phone
field are of an exact match OR fuzzy match with keyword98293213 92421423
In the sample data provided, this command will return an empty list.
-
💡
|
Keywords are not comma separated, thus they are treated as one keyword. |
-
find bernice, "alex", ir*, *li
Returns list of persons with any of their fields that matches the following conditions:-
Keywords that are of an exact match OR fuzzy match with keyword
bernice
-
Field contains keyword
alex
-
Field starts with keyword
ir
-
Field ends with keyword
li
In the sample data provided, this command will return personsAlex Yeoh
,Bernice Yu
,David Li
andIrfan Ibrahim
.
-
-
find n/bernice, "alex", ir*, *li e/*example.com p/"5" m/Computer*
Returns list of persons with matches the following conditions:-
Name
field with keywords that are of an exact match OR fuzzy match with keywordbernice
OR contains keywordalex
OR starts withir
OR ends withli
AND -
Email
field ends with keywordexample.com
AND -
Phone
field contains keyword5
AND -
Major
field starts with keywordComputer
In the sample data provided, the list with return personBernice
as she is the only person that matches all these conditions.
-
-
find berni, charlot, bernice, charlotte
Returns list of persons whose keywords in any of their fields that are of an exact match OR fuzzy match withberni
ORcharlot
ORbernice
ORcharlotte
. In the sample data provided, the list will return personsBernice Yu
andCharlotte Oliveiro
.
Below shows how the application console looks like when this command is executed:
Exact word search matches:
charlotte: -
charlot: -
bernice: -
berni: -
Fuzzy search matches:
charlotte: -
charlot: (n/)Charlotte
bernice: -
berni: (n/)Bernice
Wildcard search matches:
💡
|
When a search keyword matches a person first, subsequent search keywords that matches the same person would be reflected in the application console as - .
|
Filters persons whose keyword is within the specified range.
Format: filter [y/KEYWORD_RANGE] [r/KEYWORD_RANGE]
-
Keyword is in the format of (1)
KEYWORD
or (2)KEYWORD1 - KEYWORD2
or (3) a combination of (1) and (2)KEYWORD1, KEYWORD2 - KEYWORD3, KEYWORD4
. -
Each keyword must be valid with respect to the preceding prefix.
-
filter
command will only be filtering based on the current view of the person list, instead of all the persons. -
Within each prefix,
filter
command will match all entries that satisfies at least one keyword range. You can think of anOR
operator within the prefix. -
filter
command will match all persons that only matches every prefixes. You can think of anAND
operator between all prefixes.
Examples:
-
filter y/2020
Returns all persons whose graudation year that is exactly 2020 -
`filter y/2019-2021' r/4.3, 4.5-5.0 Returns all persons whose graduation year between 2019 and 2021, and whose rating is either 4.3, or between 4.5 to 5.0
Since v1.4, filter command supports filtering by cGPA and interview date. It now takes the format:
Format: `filter [y/KEYWORD_RANGE] [r/KEYWORD_RANGE] [g/CGPA_RANGE] [d/INTERVIEW_DATE_RANGE]
Deletes the specified person from the address book.
Format: delete INDEX
-
Deletes the person at the specified
INDEX
. -
The index refers to the index number shown in the most recent listing.
-
The index must be a positive integer 1, 2, 3, …
Examples:
-
list
delete 2
Deletes the 2nd person in the address book. -
find Betsy
delete 1
Deletes the 1st person in the results of thefind
command.
Selects the person identified by the index number used in the last person listing.
Format: select INDEX
-
Selects the person and loads the Google search page the person at the specified
INDEX
. -
The index refers to the index number shown in the most recent listing.
-
The index must be a positive integer
1, 2, 3, …
Examples:
-
list
select 2
Selects the 2nd person in the address book. -
find Betsy
select 1
Selects the 1st person in the results of thefind
command.
Rates the student identified by the index number used in the last person listing based on technical, communication, problem solving skills and experience.
Format: rate INDEX t/TECHNICAL_SKILLS_SCORE c/COMMUNICATION_SKILLS_SCORE p/PROBLEM_SOLVING_SKILLS_SCORE e/EXPERIENCE_SKILLS_SCORE
-
Rates the student at the specified
INDEX
. The index refers to the index number shown in the last person listing. The index must be a positive integer such as 1, 2, 3, … -
All four rating scores need to be supplied.
-
The scores should be a number in the range of 1 to 5 (inclusive). Scores with more than two decimal places are rounded to two decimal places.
-
The overall rating of a student is computed as the average of the four rating scores, rounded to two decimal places.
💡
|
If you have rated the student, you will NOT be able to use the rate command on the same student again. Please use the rating-edit command to overwrite existing scores.
|
Examples:
-
rate 1 t/4.5 c/3 p/4 e/3.5
Rates the 1st person to have technical skills score of 4.5, communication skills score of 3, problem solving skills of 4, experience score of 3.5. The overall rating is computed to be 3.75. -
rate 2 t/3 c/5 p/3.5 e/2
Rates the 2nd person to have technical skills score of 3, communication skills score of 5, problem solving skills of 3.5, experience score of 2. The overall rating is computed to be 3.38.
Edits the rating given to the student identified by the index number used in the last person listing.
Format: rating-edit INDEX [t/TECHNICAL_SKILLS_SCORE] [c/COMMUNICATION_SKILLS_SCORE] [p/PROBLEM_SOLVING_SKILLS_SCORE] [e/EXPERIENCE_SKILLS_SCORE]
-
Edits the rating of the student at the specified
INDEX
. The index refers to the index number shown in the last person listing. The index must be a positive integer such as 1, 2, 3, … -
At least one rating score must be edited.
-
The score(s) should be a number in the range of 1 to 5 (inclusive). Scores with more than two decimal places are rounded to two decimal places.
-
The overall rating of a student will be re-computed and rounded to two decimal places.
💡
|
If you have not rated the student, please use the rate command to assign new rating scores.
|
Examples:
-
rating-edit 1 t/4.5 p/4 e/3.5
Edits the 1st person to have technical skills score of 4.5, problem solving skills of 4, experience score of 3.5. -
rating-edit 2 p/3.5
Edits the 2nd person to have problem solving skills of 3.5.
Deletes the rating given to the student identified by the index number used in the last person listing.
Format: rating-delete INDEX
-
Deletes the rating of the applicant at the specified
INDEX
. -
The index refers to the index number shown in the last person listing.
-
The index must be a positive integer such as 1, 2, 3, …
Examples:
-
rating-delete 1
Deletes the rating of the first applicant in HR+.
Sorts the current list of students in HR+ based on GPA, name or overall rating in descending or ascending order.
Format: sort FIELD o/SORT ORDER
-
The field to be sorted by,
FIELD
, must be eithergpa
,name
orrating
. -
The sort order can only be
asc
(ascending order) ordesc
(descending order). -
When sorting the students based on name, cases are ignored when doing comparisons.
-
If the list has been filtered, only current students on the list will be sorted instead of all students in HR+. If you intend to sort all the students in HR+, you may run the
list
command first.
Examples:
-
sort rating o/asc
Sorts the current list of students according to their overall rating in ascending order. -
sort gpa o/desc
Sorts the current list of students according to their grade point average in descending order.
Updates the status of an applicant.
Format: status INDEX STATUS_INDEX
-
The index refers to the index number shown in the last person listing.
-
The index must be a positive number 1,2,3, …
-
Status index are
-
New
-
1st round
-
2nd round
-
Rejected
-
Waitlist
-
Offered
-
Accepted
-
Withdrawn
-
Lists all the commands that you have entered in reverse chronological order.
Format: history
ℹ️
|
Pressing the ↑ and ↓ arrows will display the previous and next input respectively in the command box. |
Restores the address book to the state before the previous undoable command was executed.
Format: undo
ℹ️
|
Undoable commands: those commands that modify the address book’s content ( |
Examples:
-
delete 1
list
undo
(reverses thedelete 1
command) -
select 1
list
undo
Theundo
command fails as there are no undoable commands executed previously. -
delete 1
clear
undo
(reverses theclear
command)
undo
(reverses thedelete 1
command)
Reverses the most recent undo
command.
Format: redo
Examples:
-
delete 1
undo
(reverses thedelete 1
command)
redo
(reapplies thedelete 1
command) -
delete 1
redo
Theredo
command fails as there are noundo
commands executed previously. -
delete 1
clear
undo
(reverses theclear
command)
undo
(reverses thedelete 1
command)
redo
(reapplies thedelete 1
command)
redo
(reapplies theclear
command)
Data in HR+ are saved in the hard disk automatically after any command that changes the data.
There is no need to save manually.
Fields like interview date, status and maybe else will be supported.
Highlights search results after user executes the find
command.
Allows user to set the threshold used in the fuzzy match.
Allows user to toggle which search support they want at any point of time.
Allows user to view a list of suggested searches on the fly when typing in their search keywords.
Specifies the criteria that candidates will be rated against.
Saves searches that can be displayed in future for fast lookups.
Q: How do I transfer my data to another Computer?
A: Install the app in the other computer and overwrite the empty data file it creates with the file that contains the data of your previous Address Book folder.
-
Add
add n/NAME p/PHONE_NUMBER e/EMAIL a/ADDRESS u/UNIVERSITY y/EXPECTED_GRADUATION_YEAR m/MAJOR g/GRADE_POINT_AVERAGE j/JOB_APPLIED [r/RESUME] [i/IMAGE] [c/COMMENT] [t/TAG]…
e.g.add n/James Ho p/22224444 e/[email protected] a/123, Clementi Rd, 1234665 u/NTU y/2020 m/Information System g/4.33 j/Software Engineer
-
Clear :
clear
-
Delete :
delete INDEX
e.g.delete 3
-
Edit :
edit INDEX [n/NAME] [p/PHONE_NUMBER] [e/EMAIL] [a/ADDRESS] [u/UNIVERSITY] [y/EXPECTED_GRADUATION_YEAR] [m/MAJOR] [j/JOB_APPLIED] [r/RESUME] [i/IMAGE] [c/COMMENT] [j/JOB_APPLIED] [t/TAG]…
e.g.edit 2 n/James Lee e/[email protected]
-
Find :
find KEYWORD [MORE_KEYWORDS]
e.g.find James Jake
-
Filter :
filter [y/KEYWORD] [r/RATING]
e.g.filter y/2019
-
List :
list
-
Help :
help
-
Select :
select INDEX
e.g.select 2
-
Rate :
rate INDEX t/TECHNICAL_SKILLS_SCORE c/COMMUNICATION_SKILLS_SCORE p/PROBLEM_SOLVING_SKILLS_SCORE e/EXPERIENCE_SKILLS_SCORE
e.g.rate 1 t/4.5 c/3 p/4 e/3.5
-
Edit Rating :
rating-edit INDEX [t/TECHNICAL_SKILLS_SCORE] [c/COMMUNICATION_SKILLS_SCORE] [p/PROBLEM_SOLVING_SKILLS_SCORE] [e/EXPERIENCE_SKILLS_SCORE]
e.g.rating-edit 1 t/4.5 c/3
-
Delete Rating :
rating-delete INDEX
e.g.rating-delete 1
-
Sort :
sort FIELD o/SORT ORDER
e.g.sort gpa o/asc
-
History :
history
-
Undo :
undo
-
Redo :
redo