Are you a CS student struggling to keep track of your internship applications? Do you feel tired of using spreadsheets? We have just the right tool.

Introducing PleaseHireUs (PHU), the internship tracking application made just for you!

Ui

Here are its main features:

  • View the status of your application and assessment dates at a glance
  • Overall statistics of status of all your internship applications in a bar chart

Now you will never miss any application deadlines or internship interviews again.

PleaseHireUs has been optimized for use via a Command Line Interface (CLI) while still having the benefits of a Graphical User Interface (GUI). If you can type fast, PleaseHireUs can get your internship management tasks done faster than traditional GUI apps.

We hope you find PleaseHireUs to be useful in your internship hunt.

Table of Contents

About this User Guide

This guides aims to:

  1. Teach first-time users how to start using PleaseHireUs
  2. Show and explain to users how to use the available features
  3. Provide users with a summary of the available features
  4. Provide advanced users with tips to improve their experience

Information Box

:information_source: Info: Provides information that is useful

Tip Box

:bulb: Tip: Provides advanced users with pointers to enhance their experience

Warning Box

:exclamation: Warning: Important messages to take note to avoid any unintended effects

Highlights
Highlighted text refers to commands, parameters, field values or any user inputs
e.g. commands PARAMETERS

Keyboard Inputs
Boxed texts refers to keyboard inputs
e.g.

Quick start

  1. Ensure you have Java 11 or above installed in your Computer. You can refer to this.

  2. Download the latest PleaseHireUs.jar here.

  3. Copy the file to the folder you want to use as the home folder for your application.

  4. Double-click the file to start the app. The following help window will appear the first time you open the application. helpMessage

  5. Close the help window, you will see a GUI similar to the one below. Note how the app contains some sample data.
    Ui

  6. Type a command in the command box and press to execute it.
    e.g. typing help and pressing will open the help window.

  7. Below are some example commands you can try. You may refer to this for all the available commands.

  • list : Lists all internships.

  • add n/Grab p/software engineer pr/ASSESSMENT web/https://www.grab.com/sg/about : Adds a new internship to the internship tracker.

  • delete 3 : Deletes the 3rd internship shown in the current list.

  • clear : Deletes all internships.

  • exit : Exits the app.

Ui

COMMAND BOX

Enter your command here.

:bulb: Tip:
You can use or to navigate through your command history

RESULT DISPLAY

Returns a feedback message after a command is executed.

MAIN PANEL

Displays the list of internships.

VIEW PANEL

Displays the internship being viewed in greater detail.

STATISTIC PANEL

Bar Chart

The Bar Chart (located in the bottom right corner of the application) displays the number of applications on every stage of the possible application process which are currently listed.

For example, after carrying out the command, find c/n Shopee ,the bar chart will reflect the data for all internships whose company name contains the word Shopee.

:bulb: Tip:

  • Use tags to help you differentiate your internships eg. Winter and Summer
  • Do find c/t Summer for an overview of your summer internship application

REMINDER FOOTER

Displays the number of interviews, assessments or pending offers due in the next 7 days.

Command Format

:information_source: Notes about the command format:

  • Words in UPPER_CASE are the parameters to be supplied by the user.
    e.g. In add n/COMPANY_NAME, you may input add n/Grab or any other company name.

  • Items in square brackets are optional.
    e.g In n/COMPANY_NAME [t/TAG] both n/Grab t/highSalary or n/Grab are accepted.

  • Items with ​ after them can be used multiple times including zero times.
    e.g. [t/TAG]…​ can be used as   (i.e. 0 times), t/highSalary, t/highSalary t/Java etc.

  • Parameters can be in any order.
    e.g. if the command specifies n/COMPANY_NAME pr/APPLICATION_PROCESS, pr/APPLICATION_PROCESS n/COMPANY_NAME is also acceptable.

  • If a parameter is expected only once in the command but you specified it multiple times, only the last occurrence of the parameter will be taken.
    e.g. if you specify n/Grab n/Gojek, only n/Gojek will be taken.

  • Additional inputs for commands that do not require them (such as help, exit and clear) will be ignored.
    e.g. if the command specifies help 123, it will be interpreted as help.

Parameters Requirement

Here are the parameter requirements of commonly used parameters by commands in the Features section below.

Parameter Description Requirement / Remarks
COMPANY_NAME Name of company you are applying to Alphanumeric and may contain spaces
POSITION Position of the internship you are applying for Alphanumeric and may contain spaces
APPLICATION_PROCESS Current stage of the internship application Can only be: APPLIED, ASSESSMENT, INTERVIEW, OFFER, ACCEPTED, REJECTED
DATE Date of the upcoming application task In dd-mm-yyyy format
PHONE Contact number of HR In [+COUNTRY_CODE] PHONE_NUMBER format

- COUNTRY_CODE is optional
- COUNTRY_CODE must be 1 to 3 digits long
- PHONE_NUMBER must be 3 to 15 digits long
- Space in between COUNTRY_CODE and PHONE_NUMBER if applicable
EMAIL Email address of HR Contains a @ symbol
Must not exceed 254 characters
Example: example@example.com
WEBSITE Website of the company Start with http:// or https://
Must not exceed 2048 characters
REMARK Additional remarks Can be left empty
TAG Additional tags to identify applications Alphanumeric and must not contain spaces
Maximum length of 20 characters
CATEGORY Refers to the parameters above Used in list find command
Refer to respective commands for individual requirements
INDEX The index number of the internship shown in current internship list under the Main Panel Used in delete edit view copy command
Must be a positive integer
eg.(1,2,3,…)

Features

This section shows all features and commands which are supported by PleaseHireUs.

:information_source: Info
Internships are uniquely identified by COMPANY_NAME and POSITION (case-insensitive). You cannot have two entries with the same COMPANY_NAME and POSITION.

Adding an internship: add

Applied for an internship role at your dream company? Track your internship application by adding it into the list.

Format: add n/COMPANY_NAME p/POSITION [pr/APPLICATION_PROCESS] [d/DATE] [ph/PHONE] [e/EMAIL] [web/WEBSITE] [r/REMARK] [t/TAG]…​

  • APPLICATION_PROCESS will be set to APPLIED by default.
  • DATE will be set to today’s date by default.
  • PHONE will be set to “NA” by default.
  • EMAIL will be set to “NA” by default.
  • WEBSITE will be set to “NA” by default.
  • REMARK will be empty by default.
  • TAG will be empty by default.

:information_source: Info: APPLICATION_PROCESS is case-insensitive
Applied, APPLIED, and applied are all acceptable inputs

:bulb: Tip: An internship application can have any number of tags (including 0)

Examples:

  • add n/Google ph/98765432 e/johnd@example.com r/Y2 summer break p/Backend Intern pr/APPLIED d/11-12-2022 web/https://careers.google.com/jobs t/high t/java
  • add n/Grab p/software engineer pr/ASSESSMENT web/https://www.grab.com/sg/about
  • add n/Gojek p/Mobile Intern

Executing command: add n/Gojek p/Mobile Intern BeforeAfterAddCommand

Listing all internships : list

See all the internships you have applied to.

Format: list [c/CATEGORY [DESCENDING]]

  • Internships can be sorted by category in ascending or descending order.
  • The CATEGORY is optional.
    • Without stating the category, list will display all internships in no particular order
    • Possible options for CATEGORY : COMPANY_NAME, POSITION, APPLICATION_PROCESS, DATE (case-insensitive)
  • The DESCENDING parameter is optional.
    • The DESCENDING parameter can only be declared if the CATEGORY is stated
    • Possible options for DESCENDING:TRUE or FALSE (case-insensitive)
    • If DESCENDING is set to TRUE. List of internships will be displayed in descending order

Examples:

  • list c/DATE TRUE
  • list c/position

:information_source: Info: If the DESCENDING parameter is empty or is spelt incorrectly, it will be set to FALSE

:bulb: Tip:

Category Short-form
COMPANY_NAME n
POSITION p
APPLICATION_PROCESS pr
DATE d

list c/company_name is equivalent to list c/n

Executing command: list c/position BeforeAfterListCommand

Locating internships by: find

Looking for specific internship applications? Find internships whose details in the target category matches the keyword/s you entered.

Format: find [c/CATEGORY] KEYWORDS…

  • The search is case-insensitive. e.g. hans will match Hans
  • The order of the keywords does not matter. e.g. Hans Bo will match Bo Hans
  • Only the target category is searched.
  • The CATEGORY is optional.
    • Without stating the category, the search will take COMPANY_NAME as the target category
    • Possible options for CATEGORY : COMPANY_NAME, POSITION, APPLICATION_PROCESS, DATE, TAG (case-insensitive)
  • KEYWORD must be provided.
    • The KEYWORD will match any word if the KEYWORD is contained in that word e.g. Han will match both Reyhan and Handy
    • Internships whose target category matches at least one keyword will be returned (i.e. OR search). e.g. c/company_name Hans Bo can return internships with company name of Hans Gruber or Bo Yang
    • To find an internship using the date category, all KEYWORD must be a valid date in dd-mm-yyyy format
    • To find an internship using the application process category, all KEYWORD must be a valid application process (case-insensitive) (i.e. Can only be: APPLIED, ASSESSMENT, INTERVIEW, OFFER, ACCEPTED, REJECTED)

Examples:

  • find c/position engineer returns a list of internships with a position of Algorithm Engineer and Software Engineer
  • find sea shop returns a list of internships with company name of Sea Labs, Shopee, and Shopback

:bulb: Tip:

Category Short-form
COMPANY_NAME n
POSITION p
APPLICATION_PROCESS pr
DATE d
TAG t

find c/position engineer is equivalent to find c/p engineer

Executing command: find sea shop BeforeAfterFindCommand

View details of an internship: view

Need to contact HR? View more details about your internship application.

Format: view INDEX

  • Only the index is searched.

:information_source: Info: If the website is “NA”, the browser will not be opened when clicked

Examples:

  • find sea shop followed by view 1 displays more details of the 1st internship in list.

Executing command: view 1 BeforeAfterViewCommand

Editing internship : edit

Need to update your application status or change your assessment date? Edit the details of your internship application.

Format: edit INDEX [n/COMPANY_NAME] [p/POSITION] [pr/APPLICATION_PROCESS] [d/DATE] [ph/PHONE] [e/EMAIL] [web/WEBSITE] [r/REMARK] [t/TAG]…​

  • Edit the details of internship at the specified INDEX.

Examples:

  • list followed by edit 2 p/quant researcher d/01-01-2023 will edit the position and assignment date of the 1st internship in the list to quant researcher and 1 January 2023 respectively.
  • find sea shop followed by edit 1 pr/REJECTED will edit the application process of the 1st internship in the results of the find command to REJECTED.

Executing command: edit 1 pr/REJECTED BeforeAfterEditCommand

Copy details of internship : copy

Quickly share your application details by copying it into your computer’s clipboard.

Format: copy INDEX

  • Only the internship at the specified INDEX is copied.
  • Full details of the internship will be copied into system clipboard.

Deleting internship(s) : delete

Deletes the specified internship(s) from the list.

Format: delete INDEX…​

  • Deletes the internship at the specified INDEX.
  • Can add multiple INDEX to delete multiple internships.

Examples:

  • list followed by delete 1 3 deletes the 1st and 3rd internship from the list.
  • find sea shop followed by delete 1 deletes the 1st internship in the results of the find command.

Executing command: delete 1 BeforeAfterDeleteCommand

Clearing all entries : clear

Starting a new internship season? Clear all entries from the internship tracker.

Format: clear

Executing command: clear BeforeAfterClearCommand

Undo previous command : undo

Made a mistake? Undo the most recent command that modified the internship book.

Format: undo

:information_source: Info:
You can only undo add,clear,delete,edit,redo commands

Executing command: undo BeforeAfterUndoCommand

Redo previous undone command : redo

Redo the most recent command that was undone.

Format: redo

Viewing help : help

If you need a quick refresher on the available commands, head right to the help page. Link to the user guide is also available.

Format: help

help message

:bulb: Tip:

  • Press to close the Help window
  • Press to copy the User Guide url into the clipboard when the Help window is opened

Exiting the program : exit

Exits the program.

Format: exit

Saving the data

PleaseHireUs data is saved in the hard disk automatically after any command that changes the data. There is no need to save manually.

Editing the data file

PleaseHireUs data is saved as a JSON file [JAR file location]/data/internshipbook.json. Advanced users are welcome to update the data directly by editing that data file.

For more information on editing the JSON file, click here

:exclamation: Caution: If your changes to the data file makes its format invalid, PleaseHireUs will discard all data and start with an empty data file at the next run.

Archiving data files [coming in v2.0]

Details coming soon …​

Command summary

Action Undo Format, Examples
Add :heavy_check_mark: add n/COMPANY_NAME p/POSITION [pr/APPLICATION_PROCESS] [d/DATE] [ph/PHONE] [e/EMAIL] [web/WEBSITE] [r/REMARK] [t/TAG]…​
e.g., add n/Tiktok p/backend engineer
List :x: list [c/CATEGORY [DESCENDING]]
e.g, list c/d true, list c/date
Find :x: find [c/CATEGORY] KEYWORDS…​
e.g., find c/p engineer
View :x: view INDEX
e.g., view 1
Edit :heavy_check_mark: edit INDEX [n/COMPANY_NAME] [p/POSITION] [pr/APPLICATION_PROCESS] [d/ASSESSMENT_DATE] [ph/PHONE] [e/EMAIL] [r/REMARK] [web/WEBSITE] [t/TAG]…​
e.g.,edit 2 p/Backend Intern pr/INTERVIEW d/01-11-2022
Copy :x: copy INDEX
e.g., copy 1
Delete :heavy_check_mark: delete INDEX…​
e.g., delete 1 3
Clear :heavy_check_mark: clear
Undo :x: undo
Redo :heavy_check_mark: redo
Help :x: help
Exit :x: exit

:information_source: Info: Valid inputs for CATEGORY parameter in list and find

Command Valid Categories (case-insensitive)
list COMPANY_NAME POSITION APPLICATION_PROCESS DATE
find COMPANY_NAME POSITION APPLICATION_PROCESS DATE TAG

Prefix Summary

Prefix Symbolize
n/ Company Name
p/ Position
pr/ Application Process
d/ Date
web/ Website
ph/ Phone Number
e/ Email
r/ Remark
t/ Tag
c/ Category

FAQ

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 PleaseHireUs home folder.

Glossary

Term Description
Alphanumeric Characters that are either a number or a letter.
Clipboard A clipboard is a temporary storage area in the computer for data that the user wants to copy from one place to another.
Command Instruction typed by the user for PHU to execute.
Command Line Interface (CLI) CLI allows user to use text as commands to be executed by an application.
Graphical User Interface (GUI) GUI allows user to interact with an application through graphics such as icons, menu, etc.
PHU PleaseHireUs
Parameter A component of a command for the user to input information. For PHU context, this refers to the internship application details.
Prefix An abbreviation for the name of the parameter. Prefix should be entered before the actual parameter in a command and always ends with a slash (/).

Acknowledgements

Appendix: Installing Java 11

  1. Check if you have installed the correct version of java by running java -version in your terminal.
  2. If Java is not installed in your computer or the Java version is different,
    1. For Windows users, you may download Java 11 here.
    2. For Mac users, you may download Java 11 here.
  3. After installing, you may verify that the correct version of Java is installed by repeating step 1.

Appendix: Manually Editing the Save File

:information_source: Info:
This section assumes that you are an advanced user and understand some basic computing terminologies

The save file contains a single object with a single field named "internships".

Below is an example of a valid save file format:

{
  "internships": [
    {
      "name": "Google",
      "phone": "87438807",
      "email": "alexyeoh@example.com",
      "remark": "Technical Interview (3 Questions - 2 Medium, 1 Hard)",
      "position": "Backend Intern",
      "applicationProcess": "APPLIED",
      "date": "20-10-2022",
      "website": "https://careers.google.com/",
      "tagged": ["Golang", "Summer"]
    },
    {
      "name": "TikTok",
      "phone": "NA",
      "email": "NA",
      "remark": "",
      "position": "Frontend Intern",
      "applicationProcess": "OFFER",
      "date": "25-10-2022",
      "website": "NA",
      "tagged": []
    }
  ]
}

The "internships" field is an array of objects which must contains all the following fields:

  1. name: Represents the company name.
    A non-empty string which fulfills the COMPANY_NAME parameter constraints.

  2. phone: Represents the phone number.
    EITHER "NA" which represents no phone number provided OR a string which fulfills the PHONE parameter constraints.

  3. email: Represents the email.
    EITHER "NA" which represents no email provided OR a string which fulfills the EMAIL parameter constraints.

  4. remark: Represents the remark.
    A (possibly empty) string which fulfills the REMARK parameter constraints.

  5. position: Represents the position of the internship.
    A non-empty string which fulfills the POSITION parameter constraints.

  6. applicationProcess: Represents the application process of the corresponding internship.
    A string which fulfills the APPLICATION_PROCESS parameter constraints. Note that the string is case-insensitive.

  7. date: Represents the internship application date
    A string which fulfills the DATE parameter constraints.

  8. website: Represents the company’s website
    EITHER "NA" which represents no website provided OR a string which fulfills the WEBSITE parameter constraints.

  9. tagged: Represents a collection of tags for the corresponding internship
    An (possibly empty) array of strings with each string being non-empty and fulfilling the TAG parameter constraints.

Refer to this for the parameter requirements.

:exclamation: Warning: Though some parameters might work with leading / trailing whitespaces, it is recommended to avoid it completely as it might make the format invalid