Hey there, future interns! Since you are here, we assumed that you are also a student, like us, who is starting your internship search. Welcome to InternBook, your go-to companion in the exciting journey of applying for internships!
We are a dynamic team of five students who have been in your shoes, feeling the struggle of juggling multiple internship applications while trying to keep track of every detail. We get it - those Excel spreadsheets might seem like a good idea at first, but let's face it, they quickly become a cluttered mess, making it harder to find what you need and leading to inconsistencies in your data. That's why we decided to roll up our sleeves and create InternBook!
InternBook isn't just another app - it's your personal assistant for managing internship applications effortlessly. With InternBook, you can record crucial details like company names, application deadlines, contact emails, and the roles you are applying for, all in one organised place. It is optimised for a Command line Interface (CLI), but you can use the advantages of a Graphical User Interface (GUI). No more frantic searches through endless spreadsheets or sticky notes!
This user guide is tailored to introduce you to the core functionalities of InternBook, providing comprehensive examples to kickstart your journey.
Our user guide begins by providing guidance on getting started. You can easily navigate effortlessly through our features section for a detailed overview of all available functionalities. Alternatively, utilise our convenient Table of Contents to quickly access specific sections of interest. It provides the field constraints, including permitted values and compulsory or optional parameters.
We have also included details about our future enhancements, giving you a glimpse of what features to anticipate.
Don't forget to check out our frequently asked questions section, where you'll find answers to common queries. We understand that perfection takes time, so we appreciate your patience as we work to resolve any known issues you may encounter.
For quick reference, consult our command summary, which outlines key commands used throughout InternBook.
Product: InternBook
Product Description: InternBook is a user-friendly application designed to streamline the internship application process for students. It serves as a comprehensive tool to organise, track, and manage internship applications effectively. Whether you are a tech-savvy student or new to the internship search, InternBook simplifies the process, ensuring a smooth and efficient experience for all users.
Overview of Main Features:
So, whether you are just starting your internship search or you are a seasoned pro, InternBook is here to help you land that dream internship. Let's turn those aspirations into achievements together!
Happy interning,
The InternBook Team 🚀
IMPORTANT Ensure you have Java
11
installed in your computer. If you do not have it installed, download it from here. Not sure if you have Java11
downloaded, here's how to check.
internBook.jar
from here.đź’ˇ TIP: Create a folder with internBook.jar so that the data files created will be stored in the same folder. Check our FAQ to see how to open it in your terminal.
cd
into the folder you put the jar file in, and use the java -jar internBook.jar
command to run the application.đź’ˇ TIP: If you are struggling to figure out the path to
cd
into, you can use the File Explorer in your OS to copy the file path and directlycd
to that.
Alternatively, you can simply navigate to the file location the File Explorer and double-click on the application to run.
A GUI similar to the one displayed below should appear in a few seconds. Note how the app already contains some sample data.
Try out a command!
For instance, typing help
and pressing Enter will open the help window.
You can also try out the following commands:
list
: Lists all contacts.
add -n Company -e company@gmail.com -t Role
: Adds a company contact with name Company
, email company@gmail.com
and tag Role
.
delete 1
: Deletes the contact with index 1
.
exit
: Exits the app.
Refer to the Features below for details of each command.
Notes about the command format:
Words in UPPER_CASE
are the inputs to be supplied by the user.
e.g. in add -n COMPANY
, COMPANY
is the input which can be used as add -n DBS
.
Fields in square brackets are optional.
e.g -n COMPANY [-p PHONE_NUMBER]
can be used as -n DBS -p 61234567
or as -n DBS
.
Field with …
​ after them can be used multiple times.
e.g. -t TAG…​
can be used as -t Software Engineer
, -t Software Engineer -t Data Analyst
etc.
Fields can be in any order.
e.g. if the command specifies -n COMPANY -t Software Engineer
, -t Software Engineer -n COMPANY
is also acceptable.
Extraneous parameters for commands that do not take in inputs (such as help
, list
, exit
and clear
) will be ignored.
e.g. if the command specifies help 123
, it will be interpreted as help
.
❗️ Important: Dates will only show in the GUI if both start date and end date are present.
If you are using a PDF version of this document, be careful when copying and pasting commands that span multiple lines as space characters surrounding line-breaks may be omitted when copied over to the application.
help
Shows a pop-up window of our user guide for easier access.
Format: help
list
Shows a list of all companies in the InternBook.
Format: list
add
Adds a company to the InternBook.
Format: add -n COMPANY -e EMAIL -t TAG…​ [-p PHONE_NUMBER] [-d1 START_DATE] [-d2 END_DATE]
Field | Optional/Compulsory | Flag | Remarks |
---|---|---|---|
Company Name | Compulsory | -n | Names should only have alphanumeric characters and spaces |
Compulsory | -e | Emails should be of the format local-part@domain and adhere to the following constraints: 1. 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. The local-part may not have consecutive special characters. 2. 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 at least 2 domain labels separated by a dot (.) - have each domain label start and end with alphanumeric characters - have each domain label consist of alphanumeric characters, separated only by hyphens, if any. | |
Tag (Can be used as roles) | Compulsory | -t | Multiple tags are allowed Tags should only have alphanumeric characters and "/" Tags should not start or end with "/" Tags are case insensitive and the first alphabet of each word will be capitalised |
Phone | Optional | -p | Phone numbers should be 3 or more digits |
Start Date | Optional | -d1 | Dates should be in the form YYYY-MM-DD Start date must be earlier than or equals to end date |
End Date | Optional | -d2 | Dates should be in the form YYYY-MM-DD End date must be later than or equal to start date |
Examples:
add -n DBS -t Software Engineer -e dbs@example.com -d1 2024-04-04 -d2 2024-05-05
add -n Tiktok -t Data Analyst -e tiktok@example.com -p 61234567 -t AI Engineer
ℹ️ Remark:
Here are the steps to add a company with examples of error messages and how to deal with them:
add -n Tik_Tok -p 91234-567 -e adasd.com -t Soft-ware Engineer -d1 04-05-2024 -d2 2024-04-14
add -n TikTok -p 91234-567 -e adasd.com -t Soft-ware Engineer -d1 04-05-2024 -d2 2024-04-14
add -n TikTok -p 91234567 -e adasd.com -t Soft-ware Engineer -d1 04-05-2024 -d2 2024-04-14
add -n TikTok -p 91234567 -e adasd.com -t Soft-ware Engineer -d1 2024-04-15 -d2 2024-04-14
add -n TikTok -p 91234567 -e adasd.com -t Soft-ware Engineer -d1 2024-04-14 -d2 2024-04-15
add -n TikTok -p 91234567 -e ada@sd.com -t Soft-ware Engineer -d1 2024-04-14 -d2 2024-04-15
add -n TikTok -p 91234567 -e ada@sd.com -t Software Engineer -d1 2024-04-14 -d2 2024-04-15
edit
Edits an existing company in the InternBook.
Format: edit INDEX [-n NAME] [-p PHONE_NUMBER] [-e EMAIL] [-t TAG…]​ [-d1 START_DATE] [-d2 END_DATE]
INDEX
. The index refers to the index number shown in the displayed intern book. The index must be a positive integer 1, 2, 3, …​Field | Optional/Compulsory | Flag | Remarks |
---|---|---|---|
Company Name | Optional | -n | Names should only have alphanumeric characters and spaces |
Optional | -e | Emails should be of the format local-part@domain and adhere to the following constraints: 1. 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. The local-part may not have consecutive special characters. 2. 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 at least 2 domain labels separated by a dot (.) - have each domain label start and end with alphanumeric characters - have each domain label consist of alphanumeric characters, separated only by hyphens, if any. | |
Tag (Can be used as roles) | Optional | -t | Multiple tags are allowed Tags should only have alphanumeric characters and "/" Tags should not start or end with "/"b |
Phone | Optional | -p | Phone numbers should be 3 or more digits |
Start Date | Optional | -d1 | Dates should be in the form YYYY-MM-DD Start date must be earlier than or equal to end date |
End Date | Optional | -d2 | Dates should be in the form YYYY-MM-DD End date must be later than or equal to start date |
Examples: |
edit 1 -p 91234567 -e dbs_hr@example.com
Edits the phone number and email address of the 1st company in the currently displayed list to be 91234567
and dbs_hr@example.com
respectively.edit 2 -n Meta -t Engineer
Edits the name of the 2nd company to be Meta
and change the tags to Engineer
only.Here are the steps to edit the fields of a company:
edit 1 -n Amazon
edit 1 -e alphabet@example.com
edit 1 -t UI/UX Designer
edit 1 -p 91234567
edit 1 -d1 2024-04-15 -d2 2024-05-01
đź’ˇ TIP: When editing the dates of an application, it is recommended to edit both start and end dates. If only one of the date is edited, and the record is not showing anything, please refer to our FAQ.
find
Finds companies whose names or tags begin with the given keyword.
Format: find KEYWORD
Google
will match google
Software Engineer
will not match Engineer Software
Software
will return a Company with name Software XYZ
as well as a Company with tag Software Engineer
.Test
will return Test Engineer
or QA Tester
, but not QATester
.Software Engineer
will return Software Engineering
but not Software Developer
or Staff Engineer
.Examples:
find Google
returns google
and Google
find software
returns Software Company
and companies with tags matching software
delete
Deletes the specified company from the InternBook.
Format: delete INDEX
INDEX
.Examples:
delete 2
deletes the 2nd company in the intern book.find Google
followed by delete 1
deletes the 1st company in the results of the find
command.đź’ˇTIP: If you know what company you want to delete, you should search for it by using
find COMPANY
, followed bydelete INDEX
instead of going through all entries to look for the company.
mark
Marks the specified company as applied.
Format: mark INDEX
INDEX
as applied.INDEX
is already marked.Examples:
mark 2
marks the 2nd company in the listed intern book if it is unmarked.find Google
followed by mark 1
marks the 1st company in the results of the find
command, if it is unmarked.đź’ˇ TIP: After applying to a company, you should
find COMPANY
thenmark INDEX
instead of going through all entries to look for the company.
unmark
Marks the specified company as not applied.
Format: unmark INDEX
INDEX
as not applied.INDEX
is already unmarked.Examples:
unmark 2
unmarks the 2nd company in the listed intern book if it is marked.find Google
followed by unmark 1
unmarks the 1st company in the results of the find
command, if it is marked.sort
Sorts the list in specific order.
Format: sort PREF
PREF
.PREF
refers to the preference the user can choose from.Field | Optional/Compulsory | Remarks |
---|---|---|
Sort Preference | Compulsory | Choose between "a", "s" or "e" to choose sorting preference |
Examples:
sort a
sort s
sort e
ℹ️ Remarks:
reminder
Set the number of days until the end date of an application and receive reminders about approaching deadlines.
A separate reminder window as shown below, will pop up the next time you launch the app. Companies, whose end date is NUMOFDAYS
away from current
date, and have yet to be marked as applied, will show up.
Format: reminder -r NUMOFDAYS
preferences.json
file.NUMOFDAYS
must be a positive integer or "off" to turn off the reminderField | Optional/Compulsory | Flag | Remarks |
---|---|---|---|
Reminder Period | Compulsory | -r | Reminder period should be a positive integer or "off" to turn off the reminder |
reminder -r OFF
works too.Examples:
reminder -r 7
reminder -r off
Steps to set a reminder:
reminder -r 30
đź’ˇTIP: To switch off reminder, simply key
reminder -r off
.
clear
Clears all entries from the intern book.
Format: clear
exit
Exits the program.
Format: exit
InternBook data are saved in the hard disk automatically after any command that changes the data. There is no need to save manually.
InternBook data are saved automatically as a JSON file [JAR file location]/data/internBook.json
. Advanced users are welcome to update data directly by editing that data file.
Caution:
If your changes to the data file makes its format invalid, InternBook will discard all data and start with an empty data file at the next run. Hence, it is recommended to take a backup of the file before editing it.
Furthermore, certain edits can cause the InternBook to behave in unexpected ways (e.g., if a value entered is outside the acceptable range). Therefore, edit the data file only if you are confident that you can update it correctly.
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 InternBook home folder.
Q: How do I check if I am on JDK 11?
A: For MAC users, open up your Terminal, and for Windows users, open up your Command Prompt.
Type in java -version
and you will see the java version.
Q: How do I navigate to my folder on my terminal?
A: For Windows user:
For Mac users:
Open Finder.
Navigate to the parent folder of the target folder but do not double-click into it (the folder you want to open a terminal window into)
Right-Click on the folder and hover over Services (At the bottom), Click New Terminal at Folder.
If there is no such option, you will have to go to your Settings > Keyboard > Keyboard Shortcuts... > Services > Files and Folders > Tick New Terminal At Folder
Now try again,
Q: Why are my dates missing in the GUI?
A: Ensure that you have keyed in the start date and end date for the internship application. If only one date is present,
it will not show in the GUI. You can edit them accordingly.
Q: What causes the occurrence of multiple records for companies sharing the same name, email, phone, and tag?
A: We apologise for the confusion. Please refer to known issues. Different application records may
be stored if there are distinctions in their name, phone number, email address, start date, end date, or tags. However,
if only the start date or end date is available, those dates won't be displayed, potentially leading to confusion.
Q: Can different companies be tagged to the same email address?
A: Yes, it's possible. We permit multiple company names to share the same email address. For instance, consider
inputs like OCBC Tech or OCBC Finance. We offer users the flexibility to customise company names, including departmental
distinctions, even if they share an email address.
Q: Why is it possible to add applications with dates that have already passed?
A: Users are permitted to add applications with past dates because we're in the process of developing new
features. These features will enable users to take notes about specific companies, which they can
refer back to when considering future applications.
Q: When is a company classified as a duplicate?
A: A company is identified as a duplicate when you attempt to add a record with identical name, phone number, email
address, tags, start date, and end date as an existing entry. If all these fields matches, the system flags it as a duplicate,
preventing the addition of such an application.
Q: Why do applications with no dates appear between sorted applications by start or end date?
A: We apologise for the confusion caused. This occurs because some applications may have only a start date or an end
date entered, causing them not to display any dates. However, when sorting by start date, applications with only a start
date will also be considered in the sorting process.
preferences.json
file created by the application before running the application again.sort a
is not fully accurate. It should state "Sorted all entries in alphanumerical order" instead.
Action | Format, Examples |
---|---|
Help | help |
List | list |
Add | add -n NAME -e EMAIL -t TAG…​ [-p PHONE_NUMBER] [-d1 START_DATE] [-d2 END_DATE] e.g., add -n Meta -e meta@example.com -t Software Developer |
Edit | edit INDEX [-n NAME] [-p PHONE_NUMBER] [-e EMAIL] [-d1 START_DATE] [-d2 END_DATE] [-t TAG…​] e.g., edit 2 -n DBS -p 91234567 |
Find | find KEYWORD e.g., find Google , find Software |
Delete | delete INDEX e.g., delete 3 |
Mark | mark INDEX e.g., mark 1 |
Unmark | unmark INDEX e.g, unmark 3 |
Sort | sort PREF e.g., sort a , sort s , sort e |
Reminder | reminder -r NUMOFDAYS e.g., reminder -r 7 , reminder -r off |
Clear | clear |
Exit | exit |