User Guide
Table of Contents
- Table of Contents
- Introducing InternBuddy
- About the User Guide
- Quick Start
- Exploring the Graphical User Interface
- Command Information
-
Features
- Listing all Internships :
list
- Adding an Internship :
add
- Editing an Internship :
edit
- Viewing an Internship :
view
- Copying an Internship to Clipboard :
copy
- Finding Internships :
find
- Getting Upcoming Events and Deadlines :
upcoming
- Deleting Internships by Indices :
delete-index
- Deleting Internships by Fields :
delete-field
- Clearing all Internships :
clear
- Getting Help :
help
- Exiting InternBuddy :
exit
- Navigating through Past Commands
- Saving your Internship Data
- Loading the Data
- Listing all Internships :
- FAQ
- Command Summary
- Appendix A: Installing Java 11
- Appendix B: Customising the Data File
- Appendix C: Populating InternBuddy with Sample Data
- Glossary
- Acknowledgements
Introducing InternBuddy
InternBuddy is a desktop application for university undergraduates to manage their internship applications. It is optimized for typing where it allows you to complete internship management tasks much more efficiently via the keyboard as compared to using traditional Graphical User Interface (GUI) applications. If you are a fast typist who is seeking a one-stop platform to systematically organise your internship applications, then InternBuddy is the perfect buddy to accompany you during your internship hunt.
InternBuddy runs using Java 11 and is available on the Windows, macOS, and Linux operating systems.
About the User Guide
Objectives of the User Guide
This user guide aims to provide comprehensive instructions for learning how to use InternBuddy, including details on the installation process and features. For more advanced users, this guide will also help customize your experience.
Using the User Guide
This uses guide uses a set of formatting standards and visuals to better communicate information.
Information Box
Tip Box
Warning Box
Syntax Highlighting
Commands, fields, file paths and class names are highlighted.
command
, FIELD
, filepath.json
, ClassName
Keyboard Actions
Keyboard keys are indicated using rounded buttons.
Quick Start
- Ensure you have Java
11
or above installed in your computer.
Info: If you are unsure of whether you have Java 11 installed, or need help installing it, you can refer to Appendix A. -
Download the latest
internbuddy.jar
from here. - Copy the file
internbuddy.jar
to the folder you want to use as the home folder for InternBuddy.
Info: The home folder is the folder that you will navigate to when you want to launch InternBuddy. It will contain a subfolder where your InternBuddy data will be stored. - Double-click on the file
internbuddy.jar
to launch InternBuddy. A GUI similar to Figure 1 should appear in a few seconds. Note how the app contains some sample data.
Figure 1: InternBuddy's GUI
-
You can interact with InternBuddy by typing into the box with the text
Enter command here...
, then pressing to execute your command. For example, typinghelp
and pressing will open the help window. -
Here are some other example commands you can try:
-
list
: Lists all internships stored in InternBuddy -
add n/Food Panda r/Web Developer s/Applied d/2023-04-01
: Adds a new internship into InternBuddy. -
delete-index 3
: Deletes the 3rd internship of the current list displayed in InternBuddy. -
exit
: Exits InternBuddy.
-
Do refer to Features below for a comprehensive list of supported features and their associated details.
Exploring the Graphical User Interface
Figure 2 provides a visual representation of the different parts of InternBuddy’s GUI, while Table 1 explains what each part is used for.
Figure 2: Different parts of InternBuddy's GUI
Part | Usage |
---|---|
Command Box | You can type in your commands here to interact with InternBuddy. |
Result Display | This is where the results of your command will be displayed. |
List Panel | Displays a list of internship entries. |
View Panel | Displays either the welcome message or detailed information of a specified internship entry. |
Status Bar | States where your InternBuddy data file is located on your computer. |
Table 1: Explanation of the different parts of InternBuddy's GUI
Command Information
Command Format
-
Words in
UPPER_CASE
are the fields that are to be supplied by you.
e.g. If the command format isadd n/COMPANY_NAME
, you may input the command asadd n/Apple
where you supply the valueApple
to the fieldCOMPANY_NAME
. -
Items in square brackets are optional.
e.g. If the command format isedit INDEX [n/COMPANY_NAME] [c/COMMENT]
, you may input the command asedit 2 n/Apple
where you omit the value for the fieldCOMMENT
. -
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/Java
,t/Java t/Python
etc. -
Fields can be in any order.
e.g. If the command format isn/COMPANY_NAME r/ROLE
, bothn/Apple r/Software Engineer
andr/Software Engineer n/Apple
are acceptable. -
If a field is expected only once in the command, but you specified it multiple times, only the last occurrence of the field will be taken.
e.g. If the command format isr/ROLE
, typing inr/Front-end Developer r/Back-end Developer
will cause your input to be interpreted asr/Back-end Developer
. -
Extraneous values for commands that do not take in fields (such as
help
,list
, andexit
) will be ignored.
e.g. If the command format ishelp
, typing inhelp 123
will cause your input to be interpreted ashelp
. -
Command names are case-sensitive. For example,
help
will work, butHELP
orHelp
will not.
Prefixes and Constraints for Fields
In InternBuddy’s commands, we refer to a range of fields that you can replace with values to input information that is customised to your internship applications.
There are 3 important things that you should note:
- Most fields have associated prefixes.
- Prefixes are short character combinations that you can use to identify the field to which a value belongs. They are a convenient shorthand that allows you to refer a field without having to type out its entire name, saving precious time.
- For example, in
add n/Apple
, the valueApple
is associated with the fieldCOMPANY_NAME
since then/
prefix is used. - Prefixes are case-sensitive.
n/
will work butN/
will not.
- When entering a command, do remember to use spaces to separate different fields of information. If you enter multiple fields without using space(s) to separate them, InternBuddy will interpret them as a single field.
- For example,
edit 1 n/Visa r/Software Engineer
associatesVisa
with the fieldCOMPANY_NAME
andSoftware Engineer
with the fieldROLE
. - Conversely,
edit 1 n/Visar/Software Engineer
associatesVisar/Software Engineer
with the fieldCOMPANY_NAME
.
- For example,
- There are constraints that you must adhere to when replacing fields with values.
- Constraints differ based on the fields.
- If you do not adhere to these constraints and enter invalid values, an error message will be displayed in the Result Display when you press . The message will alert you to the invalid input and provide information on how to correct the command.
Table 2 provides a summary of the fields with their descriptions, prefixes and constraints.
Field | Description | Prefix | Constraints |
---|---|---|---|
COMPANY_NAME |
The name of the company | n/ |
Cannot be blank and must be at most 50 characters. |
ROLE |
The role that you applied for | r/ |
Cannot be blank and must be at most 50 characters. |
STATUS |
The status of the internship application | s/ |
Must be one of the following: New , Applied , Assessment , Interview , Offered , Accepted , Rejected . Note that this is not case-sensitive. |
DATE |
The date associated with the internship application | d/ |
Must be a valid date in the format of YYYY-MM-DD . |
COMMENT |
A comment that you can make on an internship application | c/ |
Cannot be blank (except when used in the edit command). |
TAG |
A label that you can give to an internship application | t/ |
Cannot be blank (except when used in the edit command) and must be at most 30 characters. |
INDEX |
The index number of the internship entry as displayed in the List Panel | - | A positive integer that is smaller than or equal to the largest index number shown in the List Panel. Note that 0 is not a positive integer. |
Table 2: Fields with their descriptions, prefixes and constraints
Details on STATUS
and DATE
The field STATUS
represents the current status of an internship application. It can only take on one
of the following values: New
, Applied
, Assessment
, Interview
, Offered
, Accepted
and Rejected
.
Note that this is not case-sensitive. Table 3 explains the meaning of each status.
STATUS |
Description |
---|---|
New |
You have recently saw this internship opportunity and would like to record it in InternBuddy. Also, you have yet to apply for it. |
Applied |
You have applied for this internship opportunity and you are currently waiting for the company’s response. |
Assessment |
You are currently in the technical assessment stage of the application process. |
Interview |
You are currently in the behavioral interview stage of the application process. |
Offered |
You have been offered the internship opportunity. |
Accepted |
You have accepted the internship opportunity. |
Rejected |
You have either been rejected by the company, or that you have rejected the internship offer. |
Table 3: Description of statuses
Depending on the status of the internship application, the DATE
field will be interpreted differently. Table 4
documents the meaning of DATE
with respect to each STATUS
value.
STATUS |
Interpretation of DATE
|
---|---|
New |
Deadline of Application |
Applied |
Date Applied |
Assessment |
Date of Technical Assessment |
Interview |
Date of Behavioral Interview |
Offered |
Deadline of Offer Acceptance |
Accepted |
Date of Acceptance |
Rejected |
Date of Rejection |
Table 4: Description of dates
Duplicate Internships
InternBuddy does not allow for the storage of duplicate internships. Should you enter a command that attempts to store a duplicate internship, InternBuddy will remind you that the internship already exists.
2 internships are considered to be duplicates if they have matching COMPANY_NAME
, STATUS
, ROLE
and
DATE
. The comparison is case-insensitive.
In Table 5, internships A and B are considered as duplicate internships, because they have the same
COMPANY_NAME
, ROLE
, STATUS
and DATE
. Note how the capitalisation differences in COMPANY_NAME
and ROLE
do not affect the comparison.
Field |
Internship A | Internship B |
---|---|---|
COMPANY_NAME |
||
ROLE |
Frontend Engineer | frontend engineer |
STATUS |
New | New |
DATE |
2023-02-02 | 2023-02-02 |
COMMENT |
NA | NA |
TAGS |
C++ | Java |
Table 5: Duplicate internships
Meanwhile, in Table 6, internships C and D are not considered as duplicate
internships, because they have different values for COMPANY_NAME
.
Field |
Internship C | Internship D |
---|---|---|
COMPANY_NAME |
Apple | Apple Inc |
ROLE |
Frontend Engineer | frontend engineer |
STATUS |
New | New |
DATE |
2023-02-02 | 2023-02-02 |
COMMENT |
NA | NA |
TAGS |
Java | Java |
Table 6: Non-duplicate internships
Duplicate Tags
If you attempt to store duplicate tags within the same internship entry, InternBuddy would only store one of them. A duplicate tag refers to a tag that is identical to another tag in every way, including the spelling and capitalisation (tags are case-sensitive). In other words, a duplicate tag is a tag that is an exact copy of another tag.
Features
InternBuddy offers a variety of features that can empower you to systematically track your internships.
Listing all Internships : list
Shows the list of all internship entries that you have stored in InternBuddy.
list
will always reset the
View Panel to display the welcome message.
Format: list
Adding an Internship : add
Do you have a new internship to track? Add it to InternBuddy using the add
command.
Format: add n/COMPANY_NAME r/ROLE s/STATUS d/DATE [c/COMMENT] [t/TAG]...
- The optional
COMMENT
field has a default value ofNA
. This means that if you do not specify any value for it, the comment for the newly added internship will beNA
. - The optional
TAG
field will be empty by default. This means that if you do not specify any value for it, there will be no tags associated with the newly added internship.
Examples:
-
add n/Food Panda r/Web Developer s/New d/2023-02-01 c/I love Food Panda! t/React t/Front-end
Adds a new internship entry with company nameFood Panda
, roleWeb Developer
, statusNew
, deadline of application2023-02-01
, commentI love Food Panda!
and tagsReact
andFront-End
. This example is illustrated in Figure 3. -
add n/Deliveroo r/Software Engineer s/Assessment d/2023-02-01
Adds a new internship entry with company nameDeliveroo
, roleSoftware Engineer
, statusAssessment
and date of technical assessment2023-02-01
. -
add n/Food Panda s/New d/2023-02-01
Displays an error because theROLE
field is missing. -
add n/Apple r/App Developer s/New d/2023-02-01 t/Java t/Java
Adds a new internship entry with company nameApple
, roleApp Developer
, statusNew
, deadline of application2023-02-01
, and tagJava
(only one tag is stored since the two tags provided are duplicates).
Figure 3: Example of the add command in action
Editing an Internship : edit
Made a mistake, or wish to update your internship entry? The edit
command allows you to make modifications.
Format: edit INDEX [n/COMPANY_NAME] [r/ROLE] [s/STATUS] [d/DATE] [c/COMMENT] [t/TAG]...
- Edits the internship whose index number is
INDEX
. - You have to provide at least one of the optional fields.
- You can reset the comment of an internship to the default value of
NA
by typingc/
without specifying any comments after it. - You can remove all of an internship’s tags by typing
t/
without specifying any other tags after it.
iOS
and Swift
, editing the internship via edit 1 t/macOS
will lead
to the internship only having the tag macOS
. To have all 3 tags, you need to type edit 1 t/iOS t/Swift t/macOS
.
Examples:
Suppose you have at least 2 internships displayed in the List Panel.
-
edit 2 s/Assessment r/Software Developer
Sets the status and role of the second internship entry asAssessment
andSoftware Developer
respectively. This example is illustrated in Figure 4. -
edit 2
Displays an error because the command does not satisfy the criteria of having at least one optional field. -
edit 2 t/Java t/Go
Sets the tags of the second internship entry as Java and Go (existing tags will be removed). -
edit 2 c/
Sets the comment of the second internship entry to beNA
. -
edit 2 t/
Removes all the tags of the second internship entry.
Figure 4: Example of the edit command in action
Viewing an Internship : view
Want to view the details of a specific internship entry? You can do so using the view
command.
Format: view INDEX
- Views the details of the internship entry with index number
INDEX
as indicated in the List Panel. - The details will be shown in the View Panel.
- Apart from the internship details, a custom tips box is also included in the View Panel. The tips provide you with suggestions on how to improve your internship experience, where their content change according to the status of the internship entry.
Examples:
-
view 3
Assuming that you have at least 3 internships displayed in the List Panel, this displays the details of the third internship in the View Panel. -
view -1
Displays an error becauseINDEX
must be a positive integer. -
view 8
Assuming that you have 7 internships displayed in the List Panel, this displays an error becauseINDEX
cannot be greater than the maximum index shown in the List Panel, which is 7 in this case.
Copying an Internship to Clipboard : copy
Need to quickly export the details of an internship? Use copy
to copy the details of an internship to
your clipboard.
Format: copy INDEX
- Copies the details of the internship entry with index number
INDEX
as indicated in the List Panel. - The copied text will be in the format of
Company Name: COMPANY_NAME; Role: ROLE; Status: STATUS; Date: DATE; Comment: [COMMENT]; Tags: [TAG]
.
Examples:
-
Suppose the first internship displayed in the List Panel has company name
Amazon
, roleCloud Architect
, statusNew
, date2023-03-28
, commentI love Amazon!
, and tagsAWS
andCloud Services
. Then,copy 1
copiesCompany Name: Amazon; Role: Cloud Architect; Status: New; Date: 2023-03-28; Comment: [I love Amazon!]; Tags: [Cloud Services][AWS]
to your clipboard. -
copy -1
Displays an error becauseINDEX
must be a positive integer. -
copy 8
Assuming that you have 7 internships displayed in the List Panel, this displays an error becauseINDEX
cannot be greater than the maximum index shown in the List Panel, which is 7 in this case.
Finding Internships : find
Want to locate selected internship entries? Use the find
command to filter through
your entries and narrow down your search.
Format: find [n/COMPANY_NAME]... [r/ROLE]... [s/STATUS]... [d/DATE]... [t/TAG]...
- You have to provide at least one of the optional fields.
- The
find
command is case-insensitive, and it returns exact matches only. For example,find n/Google Ltd
will not return an entry with company nameGoogle
becauseGoogle
does not exactly match withGoogle Ltd
. On the other hand,find t/Java
will return an entry with tagjava
because the search is case-insensitive.
There are 2 possible ways for you to use the find
command.
Method 1: Use a single field type
e.g. find s/Applied
, find s/Applied s/New
, find n/Google n/Apple n/Meta
- The
find
command returns all internship entries that match with any of the values that you provide.
More examples:
-
find s/Applied s/New
returns all internship entries that have a status of eitherApplied
orNew
.
Method 2: Use 2 or more different field types
e.g. find n/Google n/Apple s/New
, find n/Google n/Apple s/Applied s/New
, find n/Google r/Engineer t/Python t/Java
- The
find
command returns all internship entries that match with at least one value for every field type that is specified.
Detailed example:
- Figure 5 below shows InternBuddy starting with 5 internship entries. After entering
find n/Google n/Apple t/python t/java
, the internships in green boxes were returned while those in red boxes were not.
Figure 5: Example of the find command in action
- Table 7 explains the reasoning behind Figure 5.
Index of Internship | Returned? | Explanation |
---|---|---|
1 | Yes | It contains at least one company name Google and both tags python and java . |
2 | Yes | It contains at least one company name Google and at least one tag python . |
3 | Yes | It contains at least one company name Apple and at least one tag java . |
4 | No | It lacks both of the searched tags, python and java . |
5 | No | It lacks both of the searched company names, Google and Apple . |
Table 7: Explanation of Figure 5
More examples:
-
find n/Google n/Apple s/Interview
returns internship entries that have a statusInterview
and have a company name ofGoogle
orApple
. -
find n/Google n/Apple s/Applied s/Interview
returns internship entries that have company names ofGoogle
orApple
and roles ofApplied
orInterview
.
find
command always searches through all of your internship entries
that are stored in InternBuddy. This means that it will also search through entries that are not currently displayed
in the List Panel.
Getting Upcoming Events and Deadlines : upcoming
Want to view your upcoming events and deadlines? You can do so using the upcoming
command.
Format: upcoming
- The
upcoming
command provides the list of internships that have events (interviews/assessments) or deadlines (application deadline/offer acceptance deadline) within the upcoming week. - In other words, it gives you the list of internships that have a
STATUS
ofNew/Offered/Assessment/Interview
and aDATE
that falls within the upcoming week. - Upcoming week is defined as the current day and the 6 days that follow it.
Examples:
-
upcoming
If today’s date is 5 January 2023, it will list all internships that have aSTATUS
ofNew/Offered/Assessment/Interview
and aDATE
that is from 5 January 2023 to 11 January 2023 inclusive.
Deleting Internships by Indices : delete-index
Need to keep your screen neat and tidy? delete-index
can help you achieve this by deleting multiple internships using their indices.
Format: delete-index INDEX [INDEX]...
- Deletes the internship whose index number is
INDEX
. - If multiple
INDEX
are provided, multiple internships can be deleted. - At least 1
INDEX
must be provided. -
INDEX
does not need to be unique. If 2 or more ofINDEX
have the same value, only the first one will be taken.
Examples:
- If you run
delete-index 1
afterfind
, it will delete the first entry as displayed byfind
in the List Panel. - If you run
delete-index 1
afterlist
, it will delete the first entry as displayed bylist
in the List Panel. -
delete-index 1 3
Deletes the first and third internships in the List Panel. -
delete-index 3 1 3 3 1
Deletes the first and third internships in the List Panel. -
delete-index
Displays an error because at least oneINDEX
must be specified.
Deleting Internships by Fields : delete-field
Wish that you can delete internships using fields instead of indices? You can
certainly do so using delete-field
.
Format: delete-field [n/COMPANY_NAME]... [r/ROLE]... [s/STATUS]... [d/DATE]... [t/TAG]...
- You have to provide at least one of the optional fields.
- The
delete-field
command is case-insensitive. For example,delete-field n/Google
deletes all internships with company namesgoogle
,Google
orgOOgle
. Also,delete-field t/java
deletes all internships with tagsJava
,java
orJaVa
. -
delete-field
deletes entries with exact matches only. For example,delete-field n/Google Ltd
will not delete an entry with company nameGoogle
becauseGoogle
does not exactly match withGoogle Ltd
.
There are 2 possible ways for you to use the delete-field
command.
Method 1: Use a single field type
e.g. delete-field s/Applied
, delete-field s/Applied s/New
,
delete-field n/Google n/Apple n/Meta
- The
delete-field
command deletes all internship entries that match with any of the values that you provide.
More Examples:
-
delete-field s/Applied s/New
deletes all internship entries that have a status of eitherApplied
orNew
.
Method 2: Use 2 or more different field types
e.g. delete-field n/Google n/Apple s/New
, delete-field n/Google n/Apple s/Applied s/New
,
delete-field n/Google r/Engineer t/Python t/Java
- The
delete-field
command deletes all internship entries that matches with at least one value for every field type that is specified.
More Examples:
-
delete-field n/Google n/Apple s/Interview
Deletes internship entries that have a statusInterview
and have a company name ofGoogle
orApple
. -
delete-field n/Google n/Apple s/New s/Interview
Deletes internship entries that have company names ofGoogle
orApple
and roles ofNew
orInterview
.
delete-field
command only searches through the internship entries
that are displayed in the List Panel. This means that it
will never delete entries that are not currently displayed in the
List Panel.
delete-field r/Engineer c/Good company
will try to delete internships with a role
of Engineer c/Good company
.
Clearing all Internships : clear
The clear
command permanently deletes all entries from InternBuddy.
Format: clear
clear
, you can refer to Appendix C
to repopulate InternBuddy with sample data.
Getting Help : help
Forgot the commands for InternBuddy? Fret not! You can easily view the list of supported commands and their formats
using the help
command.
Format: help
- Opens a new window which displays the list of supported commands in InternBuddy, and provides a link to InternBuddy’s user guide where you can view more detailed information about each command. Figure 6 shows how the Help Window looks like.
- You can click on the button to copy the link to your clipboard.
Figure 6: Help Window
Exiting InternBuddy : exit
Done with tracking your internships for the day? Exit InternBuddy using the exit
command.
Format: exit
Navigating through Past Commands
Want to reuse a command you entered just now but too lazy to type it all out again? InternBuddy has got your back! After clicking on the Command Box, pressing and will fill the Command Box with commands that you have recently entered. This allows you to effortlessly access and use past commands without having to go through the tedious process of typing them all over again.
Example:
- Figure 7 illustrates how you can navigate through past commands where the inputs
list
,clear
andupcoming
are entered in this particular order. The and keys are used to navigate between the different inputs.
Figure 7: Navigating between commands
Saving your Internship Data
Your internship data for InternBuddy are saved automatically after any command that changes the data. The data are saved
in a file internbuddy.json
which is located in a subfolder data
in the home folder
where you placed internbuddy.json
. There is no need to save manually.
internbuddy.json
is stated in the
Status Bar of the GUI.
Loading the Data
InternBuddy data is loaded from internbuddy.json
automatically at the beginning of each run. There is no need to load
manually.
- If
internbuddy.json
is missing, InternBuddy will start with a new data file containing the sample internship entries. - If the content in
internbuddy.json
was altered and as a result has an invalid format, InternBuddy will start with an empty data file.
internbuddy.json
unless you are confident in doing so. If you are interested, you can refer to
Appendix B for instructions on how to do so.
FAQ
Q: How do I transfer my data to another Computer?
A: Install InternBuddy in the other computer and overwrite the file internbuddy.json
that it creates with the
file internbuddy.json
that is stored on your existing computer.
Q: Does InternBuddy support undoing of commands? For example, can I undo a delete-index
action?
A: Unfortunately, the current version of InternBuddy does not support the undo
command. However, it is a feature
that we are exploring and hope to implement in the future!
Command Summary
Table 8 provides an overview of the commands supported in InternBuddy.
Action | Format, Examples |
---|---|
List all Internships | list |
Add an Internship |
add n/COMPANY_NAME r/ROLE s/STATUS d/DATE [c/COMMENT] [t/TAG]... e.g. add n/Apple r/Software Engineer s/New d/2023-03-01
|
Edit an Internship |
edit INDEX [n/COMPANY_NAME] [r/ROLE] [s/STATUS] [d/DATE] [c/COMMENT] [t/TAG]... e.g. edit 2 s/Assessment r/Software Developer
|
View an Internship |
view INDEX e.g. view 1
|
Copy an Internship to Clipboard |
copy INDEX e.g. copy 1
|
Find Internships |
find [n/COMPANY_NAME]... [r/ROLE]... [s/STATUS]... [d/DATE]... [t/TAG]... e.g. find n/Apple n/Google
|
Get Upcoming Events/Deadlines | upcoming |
Delete Internships by Indices |
delete-index INDEX [INDEX]... e.g. delete-index 1 3
|
Delete Internships by Fields |
delete-field [n/COMPANY_NAME]... [r/ROLE]... [s/STATUS]... [d/DATE]... [t/TAG]... e.g. delete-field n/Apple n/Google s/New s/Applied
|
Clear all Internships | clear |
Get Help | help |
Exit InternBuddy | exit |
Table 8: Commands in InternBuddy
Appendix A: Installing Java 11
Follow the following steps to set up Java 11 on your computer.
- Open up a terminal on your computer.
- If you are using Windows, click on the
Windows
icon at the bottom left of your computer. Then, type interminal
in the search bar and double-click the application calledTerminal
. - If you are using macOS, click on the
Spotlight
search icon at the top right of your computer. Then, type interminal
in the search bar and double-click the application calledTerminal
. - If you are using Linux, press + + to launch the terminal.
- If you are using Windows, click on the
- In the terminal, type in
java -version
and press . The terminal will display the version of Java that you have installed on your computer. - If you do not have any versions of Java installed, or you have a version older than Java 11, download Java 11 here. You may then return to Step 1 to check whether you have the correct version of Java installed.
Appendix B: Customising the Data File
If you are an advanced user of InternBuddy, you can directly edit the contents of your data through the internbuddy.json
file without using the GUI. The internbuddy.json
file is found in the data
subfolder of your InternBuddy
home folder.
internbuddy.json
file. This is because if you accidentally make a mistake that leads to the JSON
file not having the correct format, InternBuddy would restart with the sample data file, wiping out any data that you had
previously.
The following steps outline how you can properly edit the internbuddy.json
file:
- Open the
internbuddy.json
file by double-clicking on it. If you are prompted to select an application to open the file, you can choose any text editor such asNotepad
. - Once opened, you will see the JSON data file in a format as shown in Figure 8. Referring to Figure 8, each box contains the data for one specific internship entry.
- Within each box, you can see that there are pairings where each pair is made up of a
FIELD
andVALUE
.Figure 8: Sample JSON data file
- To manually change the value of a field, simply replace the text for
VALUE
. Figure 9 illustrates an example where we change the value ofSTATUS
fromassessment
tointerview
for the internship entry with company nameGoogle
. Once your changes have been made, you can save the file by pressing + .
Warning: Make sure that you follow the constraints when substituting in your own values. If the constraints are not satisfied, InternBuddy will not be able to read your data in theinternbuddy.json
file and will restart with all your internship data cleared.Figure 9: Editing the JSON file
- Launch InternBuddy and you will see that your data have been updated accordingly.
Appendix C: Populating InternBuddy with Sample Data
Follow the following steps to populate InternBuddy with sample data.
- Visit this link.
-
Left-click the button labelled
Raw
. Figure 10 shows where theRaw
button is.Figure 10: Raw button on the GitHub interface
- Your screen will look like Figure 11. Right click, then click on
Save As
.Figure 11: InternBuddy Sample Data
- You will be prompted to choose a folder to save the file in. Choose the
data
subfolder that is found in the home folder that you have chosen for InternBuddy. - Click
Save
.
Warning: If you already have an internbuddy.json file in the subfolder, you will be prompted to confirm whether you want to overwrite it when attempting to populate InternBuddy with sample data. It is important to only choose to overwrite the existing file if you are absolutely certain that you do not need your old InternBuddy data anymore. If you are unsure, you can always make a backup copy of the file before overwriting. - You are done! InternBuddy will be populated with the sample data the next time you launch it.
Glossary
Table 9 provides a glossary for the technical terms used in this user guide.
Term | Definition |
---|---|
Command | An instruction for InternBuddy to perform an action. |
Command Line Interface (CLI) | A CLI is the text-based interface that you can use to provide instructions to your computer. Examples of instructions include opening files and running programs. |
Graphical User Interface (GUI) | A GUI is the visual interface that you see when an application launches, allowing you to interact with it by clicking on its various buttons and components. |
Mainstream Operating Systems | Include Windows, macOS, Linux and Unix. |
Field | A part of the command where you have to supply a value for the command to be valid. |
Prefix | A short form for the name of a field. It indicates which field does a value belongs to. For example, in n/Apple , the value Apple is supplied to the field COMPANY_NAME since the n/ prefix is used. |
Table 9: Glossary for InternBuddy's User Guide
Acknowledgements
- InternBuddy is written in Java 11.
- It is adapted from the AddressBook Level 3 project created by the SE-EDU initiative.
- Libraries and frameworks used: JavaFX, Jackson, JUnit5 and TestFX.
- GUI testing is implemented with references from AddressBook Level 4 and Please Hire Us. We utilised code from these projects to set up GUI testing and added our own test cases to test the UI components that we created.
- The feature of Navigating Through Past Commands is primarily adapted from HackNet, but we added code modifications and test cases.
- The sections on explaining the formatting standards and GUI interface in the User and Developer Guides are inspired by Please Hire Us.