User Guide
CinternS is a desktop app for managing internship applications, optimised for use via a Command Line Interface (CLI) while still having the benefits of a Graphical User Interface (GUI). If you can type fast, CinternS can get your internship application management tasks done faster than traditional GUI apps. It consists of several useful features which the users are able to execute using commands.
- Quick Start
-
Features
- Viewing help:
help
- Adding an internship application:
add
- Listing all internship applications:
list
- Listing all archived internship application:
list-archive
- Deleting an internship application:
delete
- Finding an internship application:
find
- Editing an internship application:
edit
- Sorting the internship applications:
sort
- Adding or editing an interview:
interview
- Removing an interview:
remove-i
- Archiving an internship application:
archive
- Retrieving an internship application from archives:
retrieve
- Undoing the previous command:
undo
- Redoing the previously undone command:
redo
- Viewing a list of upcoming interviews:
remind
- Showing the statistics of applications:
stats
- Clearing all entries:
clear
- Exiting the program:
exit
- [COMING SOON:
edit-i
] - [COMING SOON:
find-i
] - Saving the data
- Viewing help:
- FAQ
- Command summary
Quick start
-
Ensure you have Java
11
or above installed in your Computer. -
Download the latest
CinternS.jar
from here. -
Copy the file to the folder you want to use as the home folder for your CinternS app.
-
Double-click the file to start the app. If this does not launch the app, open a command window in the directory containing the
CinternS.jar
file and launch it with the commandjava -jar CinternS.jar
instead.
The GUI similar to the below should appear in a few seconds. When the app is started for the first time, sample data is included to help you get started.
- Type commands into the command box and press Enter to execute them.
Here are some example commands you can try:-
help
: Shows a message explaining how to access the help page. -
list
: Displays all the internship applications in the list. -
add
c/ByteDance ct/98765432 e/johnd@example.com p/Software Engineer d/2022-10-09 s/pending t/tiktokParentCompany
: Adds an internship application to CinternS. This application was submitted on2022-10-09
toByteDance
for the role ofSoftware Engineer
. The contact number is98765432
, the email isjohnd@example.com
and the status ispending
. An optional tagtiktokParentCompany
is added with the application. -
delete
2
: Deletes the 2nd application shown in the current list. -
find
google
: Finds the applications that contain keyword google in their company name and/or position. -
edit
1 e/hr@internship.sg
: Edits the email of the 1st application shown in the current list to a new one. -
interview
5 ir/Technical interview id/2024-09-16 it/1400 il/11, Kallang Way 2, #08-15, 119546
: Adds an interview to the 5th application in the displayed application list / Edits the existing interview in the 5th displayed application. -
clear
: Clears all entries from CinternS. -
undo
: Undoes the previous command. -
exit
: Exits the app.
-
- Refer to the Features section below for details of each command.
Features
Notes about the command format:
-
Words in
UPPER_CASE
are the parameters to be supplied by the user.
e.g. inadd c/COMPANY
,COMPANY
is a parameter which can be used asadd c/Google
. -
Items in square brackets are optional. e.g.
c/COMPANY [t/TAG]
can be used asc/Google t/preferred
or asc/Google
. -
Items with
...
after them can be used multiple times including zero times. e.g.c/COMPANY [t/TAG]...
can be used asc/Google
(i.e. 0 tags),c/Google t/preferred
,c/Google t/preferred t/techCompany
, etc. -
A parameter without a prefix needs to be specified before other parameters, but the rest of the parameters with prefixes can be specified in any order.
e.g. if the command specifiesINDEX d/DATE_APPLIED p/POSITION
,INDEX p/POSITION d/DATE_APPLIED
is also acceptable butd/DATE_APPLIED p/POSITION INDEX
is not. -
If a parameter with a prefix 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
ct/12341234 ct/62226222
, onlyct/62226222
will be taken. -
Extraneous parameters for commands that do not take in parameters (such as
list
andexit
) will be ignored.
e.g. if the command specifieslist 123
, it will be interpreted aslist
.
Viewing help: help
Shows a message explaining how to access the help page.
Format: help
- Click the
Copy URL
button to copy the User Guide link to your clipboard. - Click the
Go
button to open the User Guide in your web browser.
Adding an internship application: add
Adds an internship application to the list.
Format: add c/COMPANY ct/CONTACT e/EMAIL p/POSITION d/DATE_APPLIED s/STATUS [t/TAG]...
1.
CONTACT
must be 5-15 digits long. [COMING SOON: allowing spaces and country codes in contacts]2.
EMAILS
should be of the format local-part@domain
.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, nor can it contain consecutive special characters.
The local-part is followed by a ‘@’ and then a domain name. The domain name is made up of domain labels separated by periods. Each domain label consists of alphanumeric characters, separated only by singular hyphens, if any, and they must each start and end with alphanumeric characters. The domain name must end with a domain label that contains at least 2 consecutive alphanumeric characters.
3.
DATE_APPLIED
must be specified in the format yyyy-MM-dd.4.
STATUS
must be one of the following: pending, interview, offered, rejected.5. Do note that an interview
STATUS
does not imply that the application has an associated interview in the interview list. The purpose of the status is to help users in tracking the applications according to their own preferences (e.g. user can put the status as pending
instead of interview
for an application even if an interview is received).6. Tags must be alphanumeric and cannot contain spaces.
- Note that you currently cannot add two applications with the same company and position at the same time. This is to help prevent accidentally adding duplicate applications. If you do intend to add another similar application (e.g. if you are applying to the same company in a later year), you will need to delete the old application first. This validation check is planned to be improved in a future version.
Examples:
add c/Google ct/60221023 e/google@example.com p/Software Engineer d/2022-01-01 s/pending t/preferred
add c/Facebook ct/98765432 e/facebook@example.com p/Backend Engineer d/2022-01-02 s/interview
Listing all internship applications: list
Displays all the internship applications in the list.
Format: list
Listing all archived internship applications: list-archive
Displays all the archived internship applications in the list.
Format: list-archive
Deleting an internship application: delete
Deletes the specified internship application from the list. If the application has an interview, it will also be deleted from the interview list.
Format: delete INDEX
- Deletes the internship application at the specified
INDEX
. - The index refers to the index number shown in the displayed internship application list.
- The index must be a positive integer 1, 2, 3, …
- The index cannot be greater than the number of applications in the displayed list.
Example:
-
list
followed bydelete 2
deletes the 2nd internship application in the list (and its interview from the interview list).
Finding an internship application: find
Finds applications whose companies or positions contain any of the given keywords.
Format: find KEYWORD [MORE_KEYWORDS]...
- The search is case-insensitive. e.g.
google
will matchGoogle
. - The order of the keywords does not matter. e.g.
Tech Micron
will matchMicron Tech
. - The keywords are only searched for inside the applications’ companies and positions.
- Only full words will be matched e.g.
ByteDance
will not matchByteDances
. - Applications matching at least one keyword will be returned (i.e.
OR
search). e.g.Google Shopee
will matchShopee HQ
andGoogle Singapore
. - The
find
command is also able to search for archived applications with matching keywords, then theretrieve
command can be used on this resulting list. However, please ensure that the index provided is within the size of the list and the selected application is an archived one. -
find
command will not affect the interview list shown in GUI. Please uselist
orlist-archive
command to ensure the interview list is synced to the application list.
Example:
-
find Software
returns theGoogle
andWise
applications since their positions contain the keyword “software”.
Editing an internship application: edit
Edits an existing application in CinternS.
Format: edit INDEX [c/COMPANY] [ct/CONTACT] [e/EMAIL] [p/POSITION] [d/DATE_APPLIED] [s/STATUS] [t/TAG]...
- Edits the application at the specified
INDEX
. - The index refers to the index number shown in the displayed application list.
- The index must be a positive integer 1, 2, 3, …
- The index cannot be greater than the number of applications in the displayed list.
- At least one of the optional fields must be provided.
- Provided fields must follow the same formats as specified in
add
command. - Existing values will be updated to the input values.
- Changes to the company name and the position will also be reflected in the interview list.
- When editing tags, the existing tags of the application will be removed i.e. adding of tags is not cumulative.
- You can remove all the application’s tags by typing
t/
without specifying any tags after it.
Examples:
-
edit 1 ct/91234567 e/grab@example.com
edits the contact and email of the 1st application to91234567
andgrab@example.com
respectively. -
edit 2 c/Garena t/
edits the company of the 2nd application and the corresponding interview toGarena
and clears all existing tags.
Sorting the internship applications: sort
Sorts the internship application list according to the specified order.
Format: sort [o/ORDER] [r/]
-
ORDER
can becompany
,position
,date
(for application date), orinterview
(for interview date). - Including
r/
causes the sort order to be reversed (to become reverse alphabetical or reverse chronological). - When sorting by interview dates, any applications with no associated interview will always get sorted to the bottom of the list.
- Newly added applications will follow the current sort order when being inserted into the application list.
- The sort order persists even after closing and reopening CinternS.
- Note that before the very first
sort
command is run, CinternS starts out sorted in chronological order of application date.
Examples:
-
sort o/company
sorts the application list in alphabetical order of company. -
sort o/interview r/
sorts the application list in reverse chronological order of interview dates. -
sort
sorts the application list in chronological order of application dates as the default.
Adding / Editing an interview: interview
Interview, being one of the branches of the application process, plays a crucial part in every application. It helps users have a better understanding on how the current application process is going on.
Adds an interview to an existing application or edits an existing interview in an application.
Format: interview INDEX ir/ROUND id/INTERVIEW_DATE it/INTERVIEW_TIME il/LOCATION
1.
INTERVIEW_DATE
must be specified in the format yyyy-MM-dd.2.
INTERVIEW_TIME
must be specified in the format HHmm.- Adds an interview to the application at the specified
INDEX
. - The index refers to the index number shown in the displayed application list.
- The index must be a positive integer 1, 2, 3, …
- The index cannot be greater than the number of applications in the displayed list.
- All fields must be provided.
- Supports edit of the existing interview by overwriting the old interview.
- Added interviews are automatically sorted in chronological order by default when displaying in the interview list.
- Currently, we only support ONE interview in each of the application. [COMING SOON: Multiple interviews in one application.]
- [COMING SOON: Checks to prevent adding an interview to an application depending on the status. E.g. If you are adding an interview to an application that already has the
offered
status, CinternS will block it and notify you of the problem.]
Examples:
-
interview 5 ir/Technical interview id/2024-09-16 it/1400 il/11, Kallang Way 2, #08-15, 119546
adds an interview to the application with displayed index5
. - If the application with displayed index
5
has an existing interview, the above command overwrites the previous existing interview.
Removing an interview: remove-i
Removes an interview from an existing application in CinternS.
Format: remove-i INDEX
- Removes the interview at the specified
INDEX
. - The index refers to the index number shown in the displayed interview list which has a prefix
i
. - The index must be a positive integer 1, 2, 3, …
- The index cannot be greater than the number of applications in the displayed list.
Example:
-
remove-i 3
removes the interview in the interview list with display indexi3
.
Archiving an internship application: archive
Archives the specified internship application from the list.
Format: archive INDEX
- Archives the internship application at the specified
INDEX
. - The application specified must be unarchived.
- The index refers to the index number shown in the displayed internship application list.
- The index must be a positive integer 1, 2, 3, …
- The index cannot be greater than the number of applications in the displayed list.
- Interview related to the specified application will also be updated in the interview list once the application is archived.
Example:
-
list
followed byarchive 2
archives the 2nd internship application in the list.
Retrieving an internship application from archives: retrieve
Retrieves the specified internship application from the list of archived applications.
Format: retrieve INDEX
- Retrieves the internship application at the specified
INDEX
. - The application specified must be archived.
- The index refers to the index number shown in the displayed internship application list.
- The index must be a positive integer 1, 2, 3, …
- The index cannot be greater than the number of applications in the displayed list.
- The
list-archive
command is recommended to be executed to display the archived applications before using theretrieve
command. Alternatively, thefind
command can also display archived applications, so then theretrieve
command can be used on them. - Interview related to the specified application will also be updated in the interview list once the application is retrieved.
Example:
-
list-archive
followed byretrieve 1
retrieves the 1st internship application in the list of archived applications.
Undoing the previous command: undo
Restores the state of CinternS before the change made by the previous command.
Format: undo
- There must be a previous state to restore to.
- Commands that do not change the data stored in CinternS, e.g.
list
,find
,sort
, etc., will not be undone.
Example:
-
delete 1
followed byundo
makes no change to the application list or the interview list.
Redoing the previously undone command: redo
Restores the state of CinternS before the command undo
.
Format: redo
- There must be a previously undone state to restore to.
Example:
-
delete 1
followed byundo
thenredo
deletes the first application in the list (and its interview in the interview list).
Viewing a list of upcoming interviews: remind
Shows a list of all upcoming interviews within the next 1 week, sorted by interview date and time.
Format: remind
- Archived interviews will not be displayed even if they fall within the next week.
- Interviews at the current date and time are not considered upcoming as they are considered to have passed.
- If there are no upcoming interviews, a blank window will be displayed.
Showing the statistics of applications: stats
Shows the statistics of applications (e.g. number of each application status, interviews, archived applications etc.).
Format: stats
- All the statistics counts include the archived applications.
- The interview count shown from the
stats
command does not relate to theinterview
status tag. It shows the number of actual interviews associated with the applications in CinternS. - The
pending
,offered
andrejected
counts are related to the status tag of the applications.
Clearing all entries: clear
Clears all entries from CinternS (including archived ones).
Format: clear
Exiting the program: exit
Exits the program.
Format: exit
COMING SOON: edit-i
A separate command for editing an interview in CinternS.
COMING SOON: find-i
Find interviews based on their fields.
Saving the data
The data of all the internship applications is saved automatically to the hard disk whenever any changes are made, so no manual saving is necessary.
Notes about the CinternS save file:
-
A new folder
data
will be created with the fileapplicationbook.json
. This is where your data will be stored for the next time you use the app, transferring it to another device or sharing with your friend. -
Editing the save file directly is discouraged as it might become corrupted. When CinternS is booted, if the file is corrupted, it will reset the save file. You will NOT be able to retrieve your data!
-
If you do wish to edit the save file, please make sure every field is included as specified in the above commands (e.g. each application and interview must have all the fields listed as required above). Do make a copy of your save file before making any edits in the case that your data is lost so that you can recover it (by replacing the save file with the copy).
FAQ
Q: What should I do if the program crashes?
A: Screenshot the error message (if any) and report the error to us via GitHub issue here.
We will assist you as soon as possible.
Q: Is CinternS supported on mobile platforms?
A: No. CinternS is only available on PC now.
Q: Will my data be lost after updating the program?
A: No. All your data will remain the same as long as you keep your data file.
Q: How do I transfer my data to another computer?
A: Install the app in the other computer and overwrite the created data file with the save file from your previous CinternS home folder that contains your data.
Command summary
Action | Format, Examples |
---|---|
Help | help |
Add |
add c/COMPANY ct/CONTACT e/EMAIL p/POSITION d/DATE_APPLIED s/STATUS [t/TAG]... e.g., add c/ByteDance ct/98765432 e/johnd@example.com p/Software Engineer d/2022-10-09 s/pending t/tiktokParentCompany
|
List | list |
ListArchive | list-archive |
Delete |
delete INDEX e.g., delete 2
|
Find |
find KEYWORD [MORE_KEYWORDS]... e.g., find engineer
|
Edit |
edit INDEX [n/COMPANY] [ct/CONTACT] [e/EMAIL] [p/POSITION] [d/DATE_APPLIED] [s/STATUS] [t/TAG]... e.g., edit 2 c/Grab d/2022-10-10
|
Sort |
sort [o/ORDER] [r/] e.g., sort o/date r/
|
Interview |
interview INDEX ir/ROUND id/INTERVIEW_DATE it/INTERVIEW_TIME il/LOCATION e.g., interview 5 ir/Technical interview id/2024-09-16 it/1400 il/11, Kallang Way 2, #08-15, 119546
|
Remove-i |
remove-i INDEX e.g., remove-i 3
|
Archive |
archive INDEX e.g., archive 2
|
Retrieve |
retrieve INDEX e.g., retrieve 2
|
Undo | undo |
Redo | redo |
Remind | remind |
Statistics | stats |
Clear | clear |
Exit | exit |
Glossary
- Application: To distinguish “internship application” and “CinternS application”, we only use the word “application” for internships and instead use “app” when we are talking about CinternS.
- GUI: Graphical user interface, the main window where you can interact with while using CinternS.
- Parameters: Fields that you may be required to provide for each command. They may start with a prefix or they may not. E.g.
INDEX
orc/COMPANY
.