User Guide
Tinner (Anagram of Intern) is a desktop app for managing internship applications for students, 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, Tinner allows you to easily sort through and retrieve relevant information faster than traditional GUI apps.
Tinner aims to solve the hassle of managing internship applications though 3 aspects.
- Tracks essential information such as statuses and deadlines at a glance.
- Reminds you of important deadlines so that you will not miss anything about your application.
- Allows you to Review the process and take down notes so that you can ace your next application.
The main purpose of this User Guide is to assist the user in learning how to use Tinner. The guide covers everything from what the user sees, how Tinner can help the user, and even its limitations.
Table of Contents
- Quick Start
- About
- Features
- Frequently Asked Questions (FAQs)
- Command Summary
Quick Start
- Ensure you have Java 11 or above installed in your computer.
- Download the latest tinner.jar.
- Copy the file to the folder you want to use as the home folder for your Tinner.
For Windows
- Double-click the file to start the app
For Mac
- Run the following command in the directory containing tinner.jar:
java -jar tinner.jar
On Mac devices, the above command java -jar tinner.jar
must be invoked rather than double-clicking the file to start the application or else the application will be unable to run as expected.
-
Type the command in the command box and press Enter to execute it. e.g. typing help and pressing Enter will open the help window.
Some example commands you can try:
-
list
: Lists all companies and internship roles. -
addCompany
n/Google p/98765432 e/hr_google@gmail.com a/70 Pasir Panjang Rd, #03-71 Mapletree Business City II, Singapore 117371
: Adds a company namedGoogle
to Tinner. -
addRole
1 n/Software Engineering Intern s/applying r/30-05-2022 23:59 d/Write mobile applications $/5000
: Adds a software engineering intern role to the company at index 1. -
deleteCompany
1
: Deletes the 1st company shown in the current list. -
deleteRole
1 1
: Deletes the 1st role of the 1st company shown in the current list. -
exit
: Exits the app.
-
-
Refer to the Features below for details of each command.
About
Outline of this Guide
This subsection helps you to understand the Graphical User Interface (GUI), commonly used technical terminologies and general symbols to help you better understand the User Guide.
Following this would be the Features, detailing the capabilities of Tinner and how to use them. This section can be either read from the start to bottom or by nicely divided segments of Tinner’s repertoire in the Table of Contents and learn everything you can do with that specific area.
Navigating within Tinner
The GUI of Tinner can be broken down into different segments with different purposes. This section aims to help users who are confused by the GUI get a better understanding of its use and get more comfortable using the application.
Main Window
Component | Function |
---|---|
Tab Bar | Shortcuts for you to quickly exit Tinner or view help |
Command Box | Text field for users to key in their commands |
Response Box | Tinner’s response to user’s commands. If the command was successful, Tinner would respond with what it did. Else it tells you what went wrong and any tips to fix it |
Company Result List | List out all the companies tracked by Tinner, or those that you specifically want to find |
Role Result List | List out all the roles in this company tracked by Tinner, or those that you specifically want to find |
Role Tags | A quick and easy visual aid to check an application’s progress, more on this below |
Status Bar | Shows the file path to which your data is being saved at |
Role Tags
The role tags are colour coded in order to make use of the GUI to better inform you how far along the internship application process for each role is at a glance.
Reminder Pane
Component | Function |
---|---|
Reminder List | List of all reminders within the reminder window (defaults to 7 days) in ascending order |
Date Card | With the date denoted at the top, all the reminders within this date card have their date of reminder on the same day |
Reminder Card | Describes the company name and role name to be reminded of as well as its status and full reminder date and time; reminders are sorted in chronological order, from which reminders with the same date and time are sorted in alphabetical order |
The Reminder Pane cannot be re-opened after it is closed, until the next restart of the application.
All changes to Tinner’s company list will not be reflected in the Reminder Pane as the application is still running, and will only be reflected after restarting the application.
Technical Terminologies
Term | What it means |
---|---|
Command word | Commands are invoked based on the command word, which is the first word in every user command; The command word is indicated by COMMAND_WORD in the guide |
Parameter | User input supplied to a command |
Whitespace | Any string of text composed only of spaces, tabs or line breaks |
Integer | An integer is a number which is not a fraction; a whole number |
General Symbols
Symbol | What it means |
---|---|
list |
Words that have a grey highlighted background are either commands or parameters |
Useful tip | |
Warning | |
Important piece of information |
Command Format
The following points explain the format of a command.
-
Words in
UPPER_CASE
are the parameters to be supplied by the user.
e.g. inaddCompany n/COMPANY e/EMAIL
,COMPANY
andEMAIL
represent parameters which can be used likeaddCompany n/Google e/hr@google.com
. -
Items in square brackets are optional.
e.gn/COMPANY [p/PHONE_NUMBER]
can be used asn/Google P/65427981
or asn/Google
. -
Parameters can be in any order.
e.g. if the command specifiesn/COMPANY [p/PHONE_NUMBER]
,[p/PHONE_NUMBER] n/COMPANY
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 specifyp/12341234 p/56785678
, onlyp/56785678
will be taken. -
Additional non-whitespace parameters for commands that do not take in parameters (such as
help
,list
,exit
) will result in an error.
e.g. if the command specifieshelp 123
, Tinner will throw an error and the command will not be executed. -
Duplicate company names are not allowed.
e.g. if there exists a company namedmeta
, adding another company with the namemeta
is not allowed.
Commands are recognised by their command word. As such, if the command word is incorrect, even if it differs slightly from the correct command word, Tinner’s response box will indicate that you have entered an unknown command.
Note that the invalid command messages in the response box will not specify the missing parameters in the command.
Command Restrictions
Company Restrictions
- The
COMPANY_NAME
should only contain alphanumeric characters and spaces, and have a character limit of at most 30. - The
PHONE_NUMBER
should only contain numbers, and be at least 3 digits long and at most 14 digits. - The
EMAIL
should be of the format local-part@domain and adhere to the following constraints:- The local-part should only contain alphanumeric characters and these special characters, excluding the parentheses, (+_.-).
- The local-part may not start or end with any special characters.
- This is followed by a ‘@’ and then a domain name. The domain name is made up of domain labels separated by periods.
- The domain name must:
- end with a domain label at least 2 characters long
- have each domain label start and end with alphanumeric characters
- have each domain label consist of alphanumeric characters, separated only by hyphens, if any
- The
ADDRESS
should not be blank.
In the ADDRESS
field, if the character / is present, the previous character in the user input should be a space to observe the intended output. If the previous character matches any of these characters, ‘a’,’e’,’n’,’p’, excluding the parentheses, the intended output will not be observed.
Role Restrictions
- The
ROLE_NAME
should only contain alphanumeric characters, spaces and ending with an optional pair of round brackets to specify the role type. It has a character limit of at most 30. - The
REMINDER_DATE
should not be in the past and must be a valid date in the following format: dd-MM-yyyy HH:mm. - The
STATUS
is case-sensitive and can only accept the following inputs:- applying
- pending
- interview and assessments
- offered
- rejected
- complete
- The
DESCRIPTION
can contain alphanumeric characters, spaces and special characters. - The
STIPEND
must be a positive integer with input going up to 10 digits long.
Demo Use Cases
Use case describes an interaction between the user and Tinner for a specific functionality.
Note that some of these demos may be outdated, as such do remember to update the reminder date if you follow the demo as reminder dates cannot be in the past.
Use cases
- Use Case #1: Applying to a role in a company
- Use Case #2: Deleting a company or a role
- Use Case #3: Editing a company or a role
- Use Case #4: Setting reminder window for reminder list
- Use Case #5: Favouriting a company
- Use Case #6: Finding a role
Use Case #1: Applying to a role in a company
Say you found a company with an opening that you are interested in. You did your research and found relevant information pertaining to the company and the role. Here’s how you can input this data in the application:
-
Add the company to the company list.
-
Add the role under the added company.
Note the successful command execution message in the response box upon successful adding of the role. This applies for this use case and all other use cases listed.
Use Case #2: Deleting a company or a role
Perhaps for some reason, you decide not to go through with an application. Maybe you realised the company’s mission and vision were not in line with your values or maybe you realised the role isn’t for you. Here’s how you can delete these entries from the application:
-
Delete the role from a given company.
-
Delete the company from the company list.
Use Case #3: Editing a company or a role
Say you received an email for an interview and the point of contact’s email is different. Here’s how you can make changes to the application:
-
Edit the company from the company list.
Also, you can change the status of your internship application and set the reminder for the interview date by making this entry:
-
Edit the role from a given company.
Note the change in color of the role tag.
Use Case #4: Setting reminder window for reminder list
Assuming that the reminder date from Demo Use Case #3 is within a week from today, upon the next launch of Tinner, you will be able to see a reminder pop-out box like this:
If you do not see the intended reminder, it is likely that the reminder date is not within
the reminder window.
Thus, you can increase the reminder window by making this entry:
-
Set the reminder window for the reminder list.
Use Case #5: Favouriting a company
A scenario where multiple companies have sent you offers and you may want to store these companies in
a list of favourites for ease of reference.
You can favourite a company by making this entry:
-
Favourite a company from the company list.
Note that the favourite company will be denoted by the star icon next to the company name.
Note that favouriting companies can be utilized in other ways, and not just to keep track of companies which have sent you offers.
You can choose to unfavourite by making this entry:
-
Unfavourite a company from the company list.
Finally, you can make a quick reference by listing all favourite companies using the listFavourite
command.
Use Case #6: Finding a role
In the future when you have many applications, finding specific applications can be daunting. The
find command allows you to search for applications easily with keywords matching COMPANY_NAME
and ROLE_NAME
.
Say you are interested in finding out what are the roles you had applied to at Amazon, you can make this entry:
-
Finding a company from the company list.
Then after realising that you have an offer for a backend role at Amazon, you want to check out the progress of similar roles. You can search for other backend roles by making this entry:
-
Finding all roles from the company list.
COMPANY_NAME
and ROLE_NAME
. E.g. find c/amazon r/backend engineer
.
Features
Modifying Companies
This section pertains to modifying the data of a company item as stored by Tinner.
Adding a company: addCompany
The most fundamental command in Tinner. Much like storing contact details in an address book, save details about a company that may come in handy during the internship application process.
Function: Adds a company that does not exist in the list.
Format: addCompany n/COMPANY_NAME [p/PHONE_NUMBER] [e/EMAIL] [a/ADDRESS]
- More restrictions for command parameters can be found here
Examples:
addCompany n/Google p/98765432 e/hr_google@gmail.com a/70 Pasir Panjang Rd, #03-71 Mapletree Business City II, Singapore 117371
addCompany n/Meta p/91234567 e/hr_meta@meta.com a/9 Straits View, Marina One, Singapore 018937
- Refer to Demo Use Case #1 for an example use case.
The EMAIL
and PHONE_NUMBER
are fields to store the contact details belonging to the Point of Contact (POC) after applying for a role at the company. This POC could be a representative from a job seeking agency.
If a prefix is specified, even for optional fields, the value after the prefix cannot be blank. e.g. p/
only is not valid but p/94442222
is valid.
Editing an existing company : editCompany
Added a company with addCompany
but made a typo? The company recruitment team changed their email address? Fret
not, editCompany
has got you covered. Simply edit the parts of the company details that you want updated.
Function: Edits the specified company within the displayed company list.
Format: editCompany COMPANY_INDEX [n/COMPANY_NAME] [p/PHONE_NUMBER] [e/EMAIL] [a/ADDRESS]
- Edits the company at the specified INDEX. The index refers to the index number shown in the displayed company list. 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.
-
PHONE_NUMBER
,EMAIL
andADDRESS
fields can be left blank, allowing you to remove previously added information which may be erroneous.
-
- More restrictions for command parameters can be found here
Examples:
-
list
followed byeditCompany 1 p/91234567 e/johndoe@example.com
edits the 1st company in the displayed company list. -
list
followed byeditCompany 1 p/ e/
removesPHONE_NUMBER
andEMAIL
from the 1st company in the displayed company list. - Refer to Demo Use Case #3 for an example use case.
Deleting a Company : deleteCompany
Delete a company when you’re not interested in them anymore with deleteCompany
. This will help you keep your list of
companies less clustered and thus more organised.
Function: Deletes the specified company within the displayed company list.
Format: deleteCompany COMPANY_INDEX
- Deletes the company at the specified
COMPANY_INDEX
. - The index refers to the index number shown in the displayed company list.
- The index must be a positive integer like 1, 2, 3, …
- Refer to Demo Use Case #2 for an example use case.
Examples:
-
list
followed bydeleteCompany 2
deletes the 2nd company in the displayed company list.
Deleting a company would also delete all roles and information belonging to it. Since there is no undo feature, please double check before using this command.
Favouriting a specific company: favourite
We all have those few companies that we’re particularly interested in. Use favourite
to visually tag a company with a
star to let it stand out from the rest.
Function: Favourite a specific company from the list of companies.
Format: favourite COMPANY_INDEX
- Favourites the company at the specified
COMPANY_INDEX
. - The index refers to the index number shown in the displayed company list.
- The indexes must be a positive integer like 1, 2, 3, …
Examples:
-
list
followed by,favourite 1
favourites the 1st company in Tinner. - Refer to Demo Use Case #5 for an example use case.
listFavourite
command.
Unfavouriting a specific company: unfavourite
Perhaps you fell through with an ex-favourite company. Use unfavourite
to peel that star off.
Function: Unfavourite a specific company from the list of companies.
Format: unfavourite COMPANY_INDEX
- Unfavourites the company at the specified
COMPANY_INDEX
. - The index refer to the index number shown in the displayed company list.
- The indexes must be a positive integer like 1, 2, 3, …
Examples:
-
list
followed by,unfavourite 1
unfavourites the 1st company in Tinner. - Refer to Demo Use Case #5 for an example use case.
Modifying Roles
This section discusses features that modify the data of a role item that is (or is to be) associated with a company in Tinner.
Adding an internship role to an existing company: addRole
What’s Tinner without the ability to track internships? Use addRole
create a new internship role under an existing
company.
Function: Adds an internship role to a company that already exists in the list.
Format: addRole COMPANY_INDEX n/ROLE_NAME [(TYPE)] s/STATUS [r/REMINDER_DATE] [d/DESCRIPTION] [$/STIPEND]
- Add internship role at the specified
COMPANY_INDEX
. - The
COMPANY_INDEX
must be a positive integer like 1, 2, 3, … - More restrictions for command parameters can be found here.
Examples:
addRole 1 n/Data Analyst s/applying r/30-05-2022 23:59 d/Analyse data $/4800
addRole 3 n/Software Engineer (Front end) s/applying r/30-05-2022 01:20 d/web deveploment with react js $/2400
-
list
followed bydeleteCompany 2
deletes the 2nd company in the displayed company list. - Refer to Demo Use Case #1 for an example use case.
Roles in a Company are listed based on the order in which they are added to the Company.
Role name is special as it does not just accept alphanumeric symbols, but also round brackets too.
When round brackets are used, they must be in pairs and at the end of the role name.
Editing an existing role from company : editRole
Just got invited to an interview? Keep your internship role status and other details up to date with editRole
.
Function: Edits the specified role in the specified company within the displayed company list.
Format: editRole COMPANY_INDEX ROLE_INDEX [n/ROLE_NAME [(TYPE)]] [s/STATUS] [r/REMINDER_DATE] [d/DESCRIPTION] [$/STIPEND]
- Edits the role at the specified
ROLE_INDEX
of the company at the specifiedCOMPANY_INDEX
. The indexes refers to the index number shown in the displayed company list. The indexes 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.
-
REMINDER_DATE
,DESCRIPTION
andSTIPEND
fields can be left blank, allowing you to remove previously added information which may be erroneous.
-
- More restrictions for command parameters can be found here.
Examples:
-
list
followed byeditRole 1 1 s/offered $/3000
edits the 1st role from the 1st company in the displayed company list. -
list
followed byeditRole 1 1 r/ d/ $/
removesREMINDER_DATE
,DESCRIPTION
andSTIPEND
from the 1st role from the 1st company in the displayed company list. - Refer to Demo Use Case #3 for an example use case.
Deleting an internship role from company : deleteRole
Perhaps you revoked an internship application, or never got word back from a company. Whatever your reason, keep
reundant roles off your mind and Tinner with deleteRole
.
Function: Deletes the specified role in the specified company within the displayed company list.
Format: deleteRole COMPANY_INDEX ROLE_INDEX
- Deletes the role at the specified
ROLE_INDEX
of the company at the specifiedCOMPANY_INDEX
. The indexes refer to the index numbers shown in the displayed company list. - The indexes must be a positive integer like 1, 2, 3, …
Examples:
-
list
followed by,deleteRole 1 1
deletes the 1st role from the 1st company in the displayed company list. - Refer to Demo Use Case #2 for an example use case.
Retrieving Companies
Refer to this section for features that retrieve the data of company items.
Listing all companies : list
After adding the companies and internship roles, view them all at a glance with list
.
Function: Shows a list of all companies and internship roles in Tinner.
Format: list
Listing all favourited companies : listFavourite
Keep your priorities straight with listFavourite
. It’s list
but for your favourite
companies!
Function: Shows a list of all favourited companies and internship roles within these companies in Tinner.
Format: listFavourite
Examples:
- Refer to Demo Use Case #5 for an example use case.
Finding internship roles by name: find
If you’re having trouble locating an internship role, consider find
. Save time by using keywords to
readily identify and track down items!
Function: Find specific roles depending on the format given.
- If only company keywords are entered, companies whose names match any of the given keywords will be displayed with all their roles.
- If only role keywords are entered, roles across all companies whose role names match any of the given keywords will be displayed.
- If both keywords are entered, only companies whose names match any of the company keywords, while containing one or more roles whose names match any of the role keywords, are displayed. In this scenario, only the matched roles within these companies are displayed.
Format: find c/COMPANY_KEYWORD [MORE_COMPANY_KEYWORDS] r/ROLE_KEYWORD [MORE_ROLE_KEYWORDS]
- The search is case-insensitive. e.g.
meta
will matchMeta
. - The order of the keywords does not matter. e.g.
software engineer
will matchengineer software
. - Only the company name, and the role name are searched.
- Only full words would be matched e.g.
mobile
will not matchmobiles
. - Companies and roles matching at least one keyword will be returned e.g.
software engineer
will matchmobile engineer
andsoftware developer
. - At least one role keyword or one company keyword must be provided in the user input.
- The prefixes
c/
andr/
can be omitted or included if no corresponding keywords are meant to be entered.
Examples:
find c/meta amazon r/engineer
- Refer to Demo Use Case #6 for an example use case.
Note that if you are trying to find ‘book’ within company names, Tinner would return records named Face Book but not Facebook.
General
Below are miscellaneous features that enhance the general user experience.
Changing the reminder window: setWindow
Is the default reminder window of 7 days not to your liking? Update the window size with setWindow
so that you can
keep better track of upcoming tasks.
- The parameter
REMINDER_WINDOW
specifies the period (in days) in which you will receive reminders before a role’s reminder date. - Sets the reminder window to the specified
REMINDER_WINDOW
. - The
REMINDER_WINDOW
is capped at 30 (in days) because Tinner aims to highlight only imminent deadlines. - All roles with reminder dates that are within the specified
REMINDER_WINDOW
days away from today will show up in the reminders window.
Format: setWindow REMINDER_WINDOW
Examples:
-
setWindow 14
would make Tinner remind you of all upcoming reminders from up to two weeks prior to the associated role’s reminder date. - Refer to Demo Use Case #4 for an example use case.
Changes to the reminder window can only be observed after restarting Tinner.
Clearing the company list: clear
Start off the internship application period fresh with clear
. Reset the list of companies and internship roles with a
single command.
Function: Clears the entire company list, including roles within each company.
Format: clear
Viewing help : help
If you’re not too familiar with the CLI, help
can help! It provides a link to this user guide as well as a table of commands to assist you.
Function: Shows a message explaining how to access the user guide and a table of commands.
Format: help
Exiting the program : exit
Use exit
if you’re too lazy to click out of the application.
Function: Exits the Tinner application.
Format: exit
Saving the data
Tinner data are saved in the hard disk automatically after any command that changes the data. There is no need to save manually.
Editing the saved json file directly might result in undesirable results if the proper formatting is not maintained. Avoid doing so at all cost if you are unsure of the format.
Coming soon
Review feature that allows you to add reviews to roles.
Frequently Asked Questions (FAQs)
Q: Do I need to save my data manually?
A: No, you don’t. Your list of companies is saved automatically after each user command.
Q: Why is there already data in Tinner when I first launch the application?
A: When you use Tinner for the first time, Tinner creates a list of companies with sample data containing a set of
default companies and roles. You may use the command clear
if you wish to erase all the sample data.
Q: Where is my data saved?
A: When you use Tinner for the first time, a folder named data is created in the application’s home directory
containing a file named “companyList.json”. The list of companies is stored within this file.
Q: How do I transfer my data to another computer?
A: Install the app in the other computer. Overwrite the empty data file it creates with the data file from your
previous Tinner home folder.
Q: What happens if I clear the company list accidentally using clear
?
A: Please ensure that you only use the command clear
when you are certain that you want to erase the company list.
There are currently no features to revert the clear
command.
Command Summary
Action | Format, Examples |
---|---|
Add company |
addCompany n/COMPANY_NAME [p/PHONE_NUMBER] [e/EMAIL] [a/ADDRESS] e.g., addCompany n/Google p/98765432 e/hr_google@gmail.com a/70 Pasir Panjang Rd, #03-71 Mapletree Business City II, Singapore 117371
|
Edit company |
editCompany COMPANY_INDEX [p/PHONE_NUMBER] [e/EMAIL] [a/ADDRESS] e.g., editCompany 1 n/Google p/98765432 e/hr_google@gmail.com
|
Delete company |
deleteCompany COMPANY_INDEX e.g., deleteCompany 3
|
Favourite company |
favourite COMPANY_INDEX e.g., favourite 1
|
Unfavourite company |
unfavourite COMPANY_INDEX e.g., unfavourite 1
|
Add role |
addRole COMPANY_INDEX n/ROLE_NAME [(TYPE)] s/STATUS r/REMINDER_DATE [d/DESCRIPTION] [$/STIPEND] e.g., addRole 1 n/Data Analyst s/applying r/30-05-2022 23:59 d/Analyse marketing data $/5000
|
Edit role |
editRole COMPANY_INDEX ROLE_INDEX [n/ROLE_NAME [(TYPE)]] [s/STATUS] [r/REMINDER_DATE] [d/DESCRIPTION] [$/STIPEND] e.g., editRole 1 1 s/pending r/30-05-2022 23:59 $/5000
|
Delete role |
deleteRole COMPANY_INDEX ROLE_INDEX e.g., deleteRole 3 1
|
List companies | list |
List favourited companies | listFavourite |
Find company or role |
find c/COMPANY_KEYWORD [MORE_COMPANY_KEYWORDS] r/ROLE_KEYWORD [MORE_ROLE_KEYWORDS] e.g., find c/google r/mobile software
|
Set reminder window |
setWindow REMINDER_WINDOW e.g., setWindow 14
|
Clear | clear |
Help | help |
Exit Tinner | exit |