User Guide
- Introduction
- Quick Start
- What is a Role?
- Features
- Creating Role Info
- Viewing Role Info
- General Commands
- Editing raw data
- FAQ
- Command Summary
Introduction
TechTrack is a powerful internship/job tracking application that combines the flexibility of a Command Line Interface (CLI) with the benefits of a Graphical User Interface (GUI). Designed for computing students and professionals, TechTrack helps you manage your internship/job search project by tracking deadlines and information regarding various roles. Its CLI interface is optimized for speed, efficiency, and ease of use, making it a valuable tool for students who are already familiar with CLI environments.
Quick Start
- Ensure you have Java
11or above installed in your Computer. - Download the latest TechTrack.jar from here.
- Copy the file to the folder you want to use as the home folder for TechTrack.
- Open a command terminal,
cdinto the folder you put the jar file in, and use thejava -jar TechTrack.jarcommand to run the application. - A GUI similar to the below should appear in a few seconds. Note how the app contains some sample data.

What is a Role?
In TechTrack, users can manage their favourite roles through various commands. Here is what TechTrack can store per role:
The prefixes and their respective parameters are as follows:
| Required | Prefix | Parameter | Restrictions |
|---|---|---|---|
Yes |
n | NAME | The string must contain at least one alphanumeric character or space. If the string consists of only one character, it cannot be a space. |
Yes |
c | CONTACT | Numeric characters only. At least 3 numeric characters. |
Yes |
e | Must follow a valid email format. See below for more information. | |
Yes |
coy | COMPANY | The string must contain at least one non-space character. |
No |
t | TAG | The string must contain at least one alphanumeric character or space. If the string consists of only one character, it cannot be a space. Note: Editing a role’s tag to a space character removes the tag from that role |
Yes |
w | WEBSITE | Must be in www.[any number of characters].com *Brackets between ‘www.’ and ‘.com’ are not needed. |
Yes |
jd | JOB DESCRIPTION | The string must contain at least one non-space character. |
Yes |
$ | SALARY | Must be a positive whole number that is larger than 0. |
Yes |
d | APPLICATION DEADLINE | Follows YYYY-MM-DD format and must not be over current date. |
Yes |
x | EXPERIENCE REQUIRED | The string must contain at least one non-space character. |
Email Format
- Emails 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.
💡 Note: TechTrack does not allow users to store duplicate Roles. Roles are considered duplicates if they have the same NAME and COMPANY (both are case-sensitive).
Features
This section guides you on how to utilise features available in TechTrack.
The features of TechTrack can be split into 3 main categories:
Notes about the command formatting:
-
Words in
UPPER_CASEand surrounded by{}are the parameters to be supplied by the user. e.g. inadd n/{NAME},{NAME}is a parameter which can be used asadd n/Software Engineer. -
Items in square brackets are optional. e.g
n/{NAME} [t/TAG]can be used asn/Software Engineer t/BigTechor asn/John Doe. -
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/Tech,t/Applied t/InvitedForInterviewetc. -
Parameters can be in any order. e.g. if the command specifies
n/{NAME} c/{CONTACT},n/{NAME} c/{CONTACT}is also acceptable. -
If a parameter is expected only once in the command but you specified it multiple times, only the last occurrence of the parameter will be taken. e.g. if you specify
c/12341234 c/56785678, onlyc/56785678will be taken. -
Extraneous parameters for commands that do not take in parameters (such as
help,list,exitandclear) will be ignored.
e.g. if the command specifieshelp 123, it will be interpreted ashelp.
Creating Role Info
The commands in this segment are focused on creating, editing and removing data to and from the application. These commands are:
Adding a role: add
Adds a role to TechTrack.
Format: add n/{NAME} c/{CONTACT} e/{EMAIL} coy/{COMPANY} jd/{JOB DESCRIPTION} [t/{TAG}]... w/{WEBSITE} $/{SALARY} d/{DEADLINE} x/{EXPERIENCE}
Example: Adding a new role to a fresh installation of TechTrack
add n/Software Engineer c/98765432 e/google@example.com coy/Google t/Java t/Golang w/www.google.com
jd/Data Engineering team - penultimate students preferred $/4000 d/2023-10-20 x/Javascript - 1 Year

💡 Note: Refer to the attributes of a role here
Editing a Role: edit
Edit any parameters of a preexisting role.
💡 Note: The user must provide at least one parameter to edit!
Format: edit {index} [n/{NAME}] [c/{CONTACT}] [e/{EMAIL}] [coy/{COMPANY}] [jd/{JOB DESCRIPTION}] [t/{TAG}]... [w/{WEBSITE}]
[$/{SALARY}] [d/{DEADLINE}] [x/{EXPERIENCE}]
- Edits the role at the specified
{INDEX}. The index refers to the index number shown in the displayed role 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.
- When editing tags, the existing tags of the role will be removed i.e adding of tags is not cumulative.
- You can remove all the person’s tags by typing
t/without specifying any tags after it.
Examples:
edit 1 n/Software EngineerChanges the name of the 1st role to “Software Developer”

edit 2 coy/Meta t/Changes the company of the 2nd role to “Meta” and removes all tags.

💡 Note: Refer to the attributes of a role here
Deleting a role: delete
Deletes the role from the current list of roles.
Format: delete {index}
- Deletes the role at the specified
{index}. The index refers to the index number shown in the displayed role list. The index must be a positive integer 1, 2, 3, …
Examples:
listfollowed bydelete 3deletes the 3rd role from TechTrack

company googlethendelete 2deletes the 2nd role in the results of thecompanycommand
Viewing Role Info
The commands in this segment are focused on viewing formats and details of the preexisting roles. These commands are:
Finding roles
The commands in this section returns roles where a certain attribute contains the given keywords. The property
differs based on the command (e.g., name {keyword} will search for roles based on their name).
- The search is case-insensitive. e.g
softwarewill matchSoftware - The order of the keywords does not matter. e.g.
Software Engineerwill matchEngineer Software - Only the name is searched.
- Only full words will be matched e.g.
Softwill not matchSoftware - Roles matching at least one keyword will be returned (i.e.
ORsearch). e.g.Software Analystwill returnInvestment Analyst,Software Developer
Find roles by Name: name
Searches for roles whose name contains any of the given keywords.
Format: name {keyword} [{more keywords}]...
Examples:
name analyst softwarereturns roles with names that include keywords “analyst” and “software”
name developerreturns roles with names that include the “developer” keyword
Find roles by Company: company
Searches for roles whose company contains any of the given keywords.
Format: company {keyword} [{more keywords}]...
Examples:
company google metareturns roles with company that include keywords “google” and “meta”company googlereturns roles with company that include the “google” keyword
Image examples omitted as they’re similar to the name command
Find roles by Tag: tag
Searches for roles whose tags contain any of the given keywords.
Format: tag {keyword} [{more keywords}]...
Examples:
tag golang javareturns roles with tags that include keywords “google” and “meta”tag golangreturns roles with tags that include the “google” keyword
Image examples omitted as they’re similar to the name command
Sorting roles
The commands in this role sorts the entire role list based on an attribute, which differs per command.
For example, using the command name SWE followed by deadline asc would sort the filtered list of roles with
SWE in its name, in ascending order by deadline. Afterwards, using the list command would display the
original role list in its newly sorted order.
Sorting by Deadline: deadline
Sort roles based on deadline in ascending or descending order.
Format: deadline asc/desc
Example 1: deadline asc

Example 2: deadline desc

Sorting by Salary: salary
Sort roles based on salary in ascending or descending order.
Format: salary asc/desc
Example 1: salary asc

Example 2: salary desc

Viewing more details of a role: view
The view command allows users to view more detailed information about a specific role. While the list of role cards on the left side of the GUI only displays key information such as the role’s name, company, salary, deadline, and required experience, the view command generates a graphic on the right side of the GUI that presents additional details of the selected role.
Format: view {index}
- Views the role at the specified
{index}. The index refers to the index number shown in the displayed role list. The index must be a positive integer 1, 2, 3, …
Examples:
listfollowed byview 1
company metafollowed byview 1
General Commands
List: list
Lists all roles available in TechTrack.

Clear: clear
Deletes all roles available in TechTrack.
Help: help
Display commands that are available in TechTrack and the proper format for usage. Also links to this user guide.

Exit: exit
Exits and closes TechTrack.
Editing raw data
You can directly edit TechTrack’s data file after running and exiting the app.
❗ Caution: If your changes to the data file makes its format invalid, TechTrack will discard that data file and start with an empty list of roles.
FAQ
Q: How do I transfer my data to another Computer?
A: Install the app in the other computer and overwrite the empty data file it creates with the file that contains the data of your previous TechTrack home folder.
Command Summary
| Command | Format | Example |
|---|---|---|
| add | add n/{NAME} c/{CONTACT} e/{EMAIL} coy/{COMPANY} jd/{JOB DESCRIPTION} [t/{TAG}]... w/{WEBSITE} $/{SALARY} d/{DEADLINE} x/{EXPERIENCE} |
add n/Software Engineer c/98765432 e/google@example.com coy/Google t/Java t/Golang w/www.google.com jd/Data Engineering team - penultimate students preferred $/4000 d/2023-10-20 x/Javascript - 1 Year |
| edit | edit {index} [n/{NAME}] [c/{CONTACT}] [e/{EMAIL}] [coy/{COMPANY}] [jd/{JOB DESCRIPTION}] [t/{TAG}]... [w/{WEBSITE}] [$/{SALARY}] [d/{DEADLINE}] [x/{EXPERIENCE}] |
edit 1 e/johndoe@example.com w/www.google.com c/91234567 jd/Working on HFT systems - C++ knowledge needed $/4000 d/2023-10-20 x/Javascript - 1 Year |
| delete | delete {index} |
delete 1 |
| name | name {keyword} [{more keywords}]... |
name analyst engineer data |
| company | company {keyword} [{more keywords}]... |
company Google |
| tag | tag {keyword} [{more keywords}]... |
tag frontend |
| deadline | deadline {asc/desc} |
deadline asc |
| salary | salary {asc/desc} |
salary desc |
| view | view {index} |
view 1 |
| list | list |
list |
| clear | clear |
clear |
| help | help |
help |
| exit | exit |
exit |
💡 Note: Refer to the attributes of a role here