InternSprint is your Ultimate Internship Application Assistant!
Navigating internship applications can be overwhelming - multiple platforms, countless CV versions, and keeping track of application stages can quickly become chaotic. InternSprint is here to streamline the entire process, acting as your personal assistant for managing and organizing internship applications efficiently.
Designed for Command Line Interface (CLI) users, InternSprint is optimized for speed, flexibility, and simplicity. Whether you’re applying through countless online jop application portals, or personal connections, our tool ensures you stay on top of your applications.
Key features include, logging, monitoring and updating your applications across multiple platforms in one place and easily tracking status of your applications.
With InternSprint, you’ll never lose track of an application again!
help
list
add [TYPE]
edit
delete
find
desc
interview for
sort interviews
my
view user
project general
project software
project hardware
view general
view software
view hardware
bye
Ensure you have Java 17 or above installed in your Computer, and it is compatible with your device operating system (Mac or Windows).
Download the latest .jar
file from here under latest release.
Copy the file to the folder you want to use as the home folder for InternSprint.
Open a command terminal, cd
into the folder you put the jar file in, and use the java -jar InternSprint.jar
command to
run the application.
InternSprint should appear in your terminal window as shown below.
If you are a Mac user, do note that due to Mac Gatekeeper, this .jar file and its home folder cannot be in the
Downloads
directory, and will have to be relocated to another directory such asDesktop
to bypass Mac’s additional security check, hence if you seeError: unable to access jarfile InternSprint.jar
simply relocate the directory. (You may bypass this quarantine on your Mac but this will require admin privileges and could be potentially be a security risk since anyone can now access this file, thus the relocation method is best).
Type the command in the terminal window and press Enter to execute it. e.g. typing list and pressing Enter will list all stored tasks. Some example commands you can try:
list
: Lists all internships.
add general /c Google /r Human Resource /dept HR
: Adds a general type of internship at Google, of Human
resources role, under HR department.
edit /index 1 /eli Year 2 students
: Adds description of eligibility to internship indexed at 1 in your list.
bye
: Exits the app.
Notes about the command format:
- Words in
UPPER_CASE
are the parameters to be supplied by the user.- Items in square brackets
[...]
are optional./
is a reserved character to represent flag prefixes. It should not be used to give the value of any parameter. Use hyphens (-
) instead.
help
Allows users to view the usage of all the available commands, or the usage of a specific command.
Format: help
OR help COMMAND
help
is used to view the usage of all commands.help COMMAND
is used to view the usage of the specific command.Example of usage:
> help add general
------------------------------------------------------------------------------------------------------------------------
-> add general: Adds a general internship to the internship list.
Parameters: /c COMPANY_NAME /r ROLE /dept DEPARTMENT
Example: add general /c Google /r Human Resource /dept HR
------------------------------------------------------------------------------------------------------------------------
list
Adds a new item to the list of todo items.
Format: list
list
is used to view the list of all added internships.Example of usage:
> list
------------------------------------------------------------------------------------------------------------------------
Here is your internship list!
Software Internships:
1. Company: google, Role: intern, Tech: c++
Hardware Internships:
General Internships:
2. Company: UBS, Role: IT Intern, Dept: IT
------------------------------------------------------------------------------------------------------------------------
add [TYPE]
Internships are categorized into 3 types: general
, software
and hardware
.
They have multiple parameters that can be set, and some of them are optional.
COMPANY_NAME
, ROLE
and DEPARTMENT/TECHNOLOGIES
must be unique to the list of internships and are mandatory
parameters. They cannot be blank.DESCRIPTION
, ELIGIBILITY
, EXPECTATIONS
and STATUS
are optional parameters.Examples of usage for each type of internship can be found below.
add general
Allows users to add a new general internship to their list of internship applications.
Basic Format: add general /c COMPANY_NAME /r ROLE /dept DEPARTMENT
Extended Format (with optional parameters): add general /c COMPANY_NAME /r ROLE /ex EXPECTATIONS /eli ELIGIBILITY
/dept DEPARTMENT /desc DESCRIPTION /status STATUS
COMPANY_NAME
, ROLE
and DEPARTMENT
must be unique to the list of internships and are mandatory parameters.Examples of usage:
> add general /c Google /r Human Resource /dept HR
------------------------------------------------------------------------------------------------------------------------
New internship added
Company: Google, Role: Human Resource, Dept: HR
Now you have 1 internships in the list
------------------------------------------------------------------------------------------------------------------------
> add general /c Lazada /r Adviser /dept HR /ex Good Communication /eli Year 2 student
------------------------------------------------------------------------------------------------------------------------
New internship added
Company: Lazada, Role: Adviser, Dept: HR
Now you have 2 internships in the list
------------------------------------------------------------------------------------------------------------------------
add software
Allows users to add a new software internship to their list of internship applications.
Basic Format: add software /c COMPANY_NAME /r ROLE /tech TECHNOLOGIES
Extended Format (with optional parameters): add software /c COMPANY_NAME /r ROLE /ex EXPECTATIONS /eli ELIGIBILITY
/tech TECHNOLOGIES /desc DESCRIPTION /status STATUS
COMPANY_NAME
, ROLE
and TECHNOLOGIES
must be unique to the list of internships and are mandatory parameters.Examples of usage:
> add software /c Google /r Software Engineer /tech Java, Python
------------------------------------------------------------------------------------------------------------------------
New internship added
Company: Google, Role: Software Engineer, Tech: Java, Python
Now you have 3 internships in the list
------------------------------------------------------------------------------------------------------------------------
> add software /c IBM /r Data Analytics /tech Python, PowerBI /ex Good project showcase
------------------------------------------------------------------------------------------------------------------------
New internship added
Company: IBM, Role: Data Analytics, Tech: Python, PowerBI
Now you have 4 internships in the list
------------------------------------------------------------------------------------------------------------------------
add hardware
Allows users to add a new hardware internship to their list of internship applications.
Basic Format: add hardware /c COMPANY_NAME /r ROLE /hardtech HARDWARE_TECHNOLOGIES
Extended Format (with optional parameters): add hardware /c COMPANY_NAME /r ROLE /ex EXPECTATIONS /eli ELIGIBILITY
/hardtech HARDWARE_TECHNOLOGIES /desc DESCRIPTION /status STATUS
COMPANY_NAME
, ROLE
and HARDWARE_TECHNOLOGIES
must be unique to the list of internships and are
mandatory parameters.Examples of usage:
> add hardware /c Google /r Hardware Engineer /hardtech Arduino, Raspberry Pi
------------------------------------------------------------------------------------------------------------------------
New internship added
Company: Google, Role: Hardware Engineer, Tech: Arduino, Raspberry Pi
Now you have 5 internships in the list
------------------------------------------------------------------------------------------------------------------------
> add hardware /c AMD /r FPGA analyser /hardtech FPGA, Verilog /desc Low latency high throughput machine learning inference
------------------------------------------------------------------------------------------------------------------------
New internship added
Company: AMD, Role: FPGA analyser, Tech: FPGA, Verilog
Now you have 6 internships in the list
------------------------------------------------------------------------------------------------------------------------
edit
Allows users to add (job description, eligibility, and expectations) or modify (company name, role,tech and status) details for a specific internship application.
Basic Format: edit /index INDEX_NUMBER /c COMPANY_NAME /r ROLE
Extended Format (with optional parameters): edit /index INDEX_NUMBER /c COMPANY_NAME /r ROLE /ex EXPECTATIONS /eli ELIGIBILITY /dept DEPARTMENT
/hardtech HARDWARE_TECHNOLOGIES /desc DESCRIPTION /tech TECHNOLOGIES /status STATUS
This format shows you all the possible flags or parameters you can set for an internship, however they are optional (as-needed basis) - i.e. you do not need to utilize all flags when using this command, only those relevant to you.
INDEX_NUMBER
must be valid within the internship list else this will return an error out of range message./tech
flag and to edit the tech of a hardware internship use the
/hardtech
flag else if you try and set a software tech flag to a hardware role an error message will be displayed.Example of usage:
> edit /index 1 /c IBM /tech C, C++ /eli Y3 student /ex Fast Learner
------------------------------------------------------------------------------------------------------------------------
Internships saved successfully
You can view the list of internships at data/internships.txt
Internship edited successfully.
[Company: IBM, Role: Software Engineer, Eligibility: Y3 student, Expectations: Fast Learner, Tech Stack: C, C++]
------------------------------------------------------------------------------------------------------------------------
> edit /index 2 /desc Some extended description for our users
------------------------------------------------------------------------------------------------------------------------
Internships saved successfully
You can view the list of internships at data/internships.txt
Internship edited successfully.
[Company: IBM, Role: Data Analytics, Description: Some extended description for our users, Expectations: Good project showcase, Tech Stack: Python, PowerBI]
------------------------------------------------------------------------------------------------------------------------
delete
Allows users to delete an internship from the list of internship applications.
Format: delete /index INDEX_OF_INTERNSHIP
INDEX_OF_INTERNSHIP
should not be out of range of the internship list.Example of usage:
> delete /index 1
------------------------------------------------------------------------------------------------------------------------
Internships saved successfully
You can view the list of internships at data/internships.txt
Successfully deleted internship: Company: Mavericks, Role: Consultant, Dept: Technical Consultation
------------------------------------------------------------------------------------------------------------------------
find
Allows users to find internships based on the internship type, company name or role.
Format: find [TYPE] [/c COMPANY_NAME] [/r ROLE]
TYPE
can be general
, software
, or hardware
.TYPE
, COMPANY_NAME
and ROLE
are optional parameters.Example of usage:
> find software /c Google
------------------------------------------------------------------------------------------------------------------------
Here are the matching internships in your list:
1. Company: Google, Role: Software Engineer, Eligibility: Y3 student, Expectations: Fast Learner, Tech Stack: C, C++
------------------------------------------------------------------------------------------------------------------------
desc
Allows users to view the description of an internship from the list of internship applications.
Format: desc /index INDEX_OF_INTERNSHIP
INDEX_OF_INTERNSHIP
should not be out of range of the internship list.Example of usage:
> desc /index 1
------------------------------------------------------------------------------------------------------------------------
Here is your internship description!
Company: google
Role: intern
Interview details:
┌───────┬────────────┬──────────┬──────────┬──────────┬─────────────────────────┬──────────────────────────────┐
│Round │Interview │Start Time│End Time │Interview │Interviewer Email │Notes │
│No. │Date │ │ │Type │ │ │
├───────┼────────────┼──────────┼──────────┼──────────┼─────────────────────────┼──────────────────────────────┤
│1 │2025-01-01 │10:00 │14:00 │technical │N/A │N/A │
│ │ │ │ │round │ │ │
├───────┼────────────┼──────────┼──────────┼──────────┼─────────────────────────┼──────────────────────────────┤
│2 │2025-01-01 │15:00 │16:00 │f2f round │N/A │N/A │
└───────┴────────────┴──────────┴──────────┴──────────┴─────────────────────────┴──────────────────────────────┘
Tech Stack: c++
------------------------------------------------------------------------------------------------------------------------
interview for
Allows users to add multiple rounds of interviews for each internship added.
Basic Format: interview for /index INDEX_OF_INTERNSHIP /date DATE /start START_TIME /end END_TIME /type TYPE
Extended Format (With optional parameters): interview for /index INDEX_OF_INTERNSHIP /date DATE /start START_TIME
/end END_TIME /type TYPE /email INTERVIEWER_EMAIL /notes NOTES
INDEX_OF_INTERNSHIP
should not be out of range of the internship list.Example of usage:
> interview for /index 1 /date 2025-01-01 /start 10:00 /end 14:00 /type technical round
------------------------------------------------------------------------------------------------------------------------
Internships saved successfully
You can view the list of internships at data/internships.txt
New interview added
Interview Date: 2025-01-01, Start Time: 10:00, End Time: 14:00, Round Name: technical round
------------------------------------------------------------------------------------------------------------------------
sort interviews
Allows users to sort all rounds of interviews added across multiple internships by date.
Format: sort interviews
Example of usage:
> sort interviews
------------------------------------------------------------------------------------------------------------------------
Here are your interviews sorted by date and time.
┌────────────┬────────────┬────────────┬──────────┬──────────┬──────────┬────────────────────┬───────────────────────────────────┐
│Company Name│Role │Interview │Start Time│End Time │Interview │Interviewer Email │Notes │
│ │ │Date │ │ │Type │ │ │
├────────────┼────────────┼────────────┼──────────┼──────────┼──────────┼────────────────────┼───────────────────────────────────┤
│Google │Software │2021-10-10 │10:00 │11:00 │Coding │N/A │N/A │
│ │Engineer │ │ │ │ │ │ │
├────────────┼────────────┼────────────┼──────────┼──────────┼──────────┼────────────────────┼───────────────────────────────────┤
│facebook │intern │2021-10-11 │10:00 │11:00 │Coding │N/A │N/A │
└────────────┴────────────┴────────────┴──────────┴──────────┴──────────┴────────────────────┴───────────────────────────────────┘
------------------------------------------------------------------------------------------------------------------------
Note: sort interviews command serves the dual function to list all interviews as well. To view the list of all interviews, users can simply use the sort interviews command.
my
Allows users to update user profile information with details such as name, or preferrred industries, roles
or companies.
Basic Format: my /c COMPANIES_YOU_PREFER /r ROLES_YOU_PREFER /ygoals YEARLY_GOALS /mgoals MONTHLY_GOALS /pay MIN_PAY-MAX_PAY
/ind INDUSTRIES_YOU_PREFER /time TIME_RANGE /name YOUR_NAME
NOTE: When entering pay range /pay MIN_PAY - MAX_PAY
, ensure minimum and maximum are both numerical values with minimum less than maximum,
and separate the two with a hyphen “-“. Otherwise, you will be prompted again to re-enter these details.
Do note there is no date-time format mandatory for your preferred /time TIME_RANGE
, so that you may enter any string such as “Semester 1” or even “Next year” as per your
convenience.
This format shows you all the possible flags or parameters you can set for an internship, however they are ALL optional (as-needed basis) - i.e. you do not need to utilize all flags when using this command, only those relevant to you.
Example of usage:
> my /name John Doe /ind Software /c Google /r Developer /mgoals 100 applications /ygoals 2 internships
------------------------------------------------------------------------------------------------------------------------
Successfully updated your user profile as shown below:
Name: John Doe
Preferred Industries: [Software]
Preferred Companies: [Google]
Preferred Roles: [Developer]
Monthly Goals: 100 applications
Yearly Goals: 2 internships
------------------------------------------------------------------------------------------------------------------------
view user
Allows users to view user profile information with details such as name, or preferrred industries, roles
or companies.
Basic Format: view user
Example of usage:
> view user
------------------------------------------------------------------------------------------------------------------------
Your personalized profile information as shown below:
┌───────────────────────────────────────┬──────────────────────────────────────┐
│Name │John Doe │
├───────────────────────────────────────┼──────────────────────────────────────┤
│Preferred Industries │Software │
├───────────────────────────────────────┼──────────────────────────────────────┤
│Preferred Companies │Google │
├───────────────────────────────────────┼──────────────────────────────────────┤
│Preferred Roles │Developer │
├───────────────────────────────────────┼──────────────────────────────────────┤
│Target Stipend Range │N/A │
├───────────────────────────────────────┼──────────────────────────────────────┤
│Internship Date Range │N/A │
├───────────────────────────────────────┼──────────────────────────────────────┤
│Monthly Goals │100 applications │
├───────────────────────────────────────┼──────────────────────────────────────┤
│Yearly Goals │2 internships │
└───────────────────────────────────────┴──────────────────────────────────────┘
------------------------------------------------------------------------------------------------------------------------
project general
Allows users to add a new general project to their list of projects stored in their user profile. This is useful for CV formatted project lists, and job applications.
Basic Format: project general /n PROJECT_NAME /r ROLE /dept DEPARTMENT /obj OBJECTIVES /desc DESCRIPTION /dur DURATION
Examples of usage:
> project general /n Team Project for CS2113 /r Unit Tester /dept Software Engineering /obj To get an A+ /desc Worked at identifying feature flaws in app /dur May-August
------------------------------------------------------------------------------------------------------------------------
Project successfully added to user profile. Below are the details for the same:
Project: Team Project for CS2113, Role: Unit Tester, Dept: Software Engineering
Objectives: To get an A+, Duration: May-August, Description: Worked at identifying feature flaws in app
Now you have 3 projects in your user profile.
------------------------------------------------------------------------------------------------------------------------
project software
Allows users to add a new software project to their list of projects stored in their user profile. This
Basic Format: project software /n PROJECT_NAME /r ROLE /dept DEPARTMENT /pro PROGRAMMING_LANGUAGES /obj OBJECTIVES /desc DESCRIPTION /dur DURATION
Examples of usage:
> project software /n Team Project for CS2113 /r Unit Tester /pro Java, C++ /obj To get an A+ /desc Worked at identifying feature flaws in app /dur May-August
------------------------------------------------------------------------------------------------------------------------
Project successfully added to user profile. Below are the details for the same:
Project: Team Project for CS2113, Role: Unit Tester, Programming Languages: Java, C++
Objectives: To get an A+, Duration: May-August, Description: Worked at identifying feature flaws in app
Now you have 1 projects in your user profile.
------------------------------------------------------------------------------------------------------------------------
project hardware
Allows users to add a new hardware project to their list of projects stored in their user profile. This
Basic Format: project hardware /n PROJECT_NAME /r ROLE /dept DEPARTMENT /hcomp HARDWARE_COMPONENTS /obj OBJECTIVES /desc DESCRIPTION /dur DURATION
Examples of usage:
> project hardware /n Team Project for EE2026 /r Ui Developer /hcomp Basys Board/obj To get an A+ /desc Worked at creating pixel art for the UI /dur May-August
------------------------------------------------------------------------------------------------------------------------
Project successfully added to user profile. Below are the details for the same:
Project: Team Project for EE2026, Role: Ui Developer, Hardware Components: Basys Board
Objectives: To get an A+, Duration: May-August, Description: Worked at creating pixel art for the UI
Now you have 2 projects in your user profile.
------------------------------------------------------------------------------------------------------------------------
view general
Allows users to view list of saved general projects.
Basic Format: view general
Examples of usage:
> view general
------------------------------------------------------------------------------------------------------------------------
Your personalized projects information as shown below:
┌───────────────────────────────────────┬──────────────────────────────────────┐
│Project: │Team Project for CS2113 │
├───────────────────────────────────────┼──────────────────────────────────────┤
│Role: │Unit Tester │
├───────────────────────────────────────┼──────────────────────────────────────┤
│Objectives: │To get an A+ │
├───────────────────────────────────────┼──────────────────────────────────────┤
│Description: │Worked at identifying feature flaws in│
│ │app │
├───────────────────────────────────────┼──────────────────────────────────────┤
│Duration: │May-August │
├───────────────────────────────────────┼──────────────────────────────────────┤
│Department: │Software Engineering │
└───────────────────────────────────────┴──────────────────────────────────────┘
------------------------------------------------------------------------------------------------------------------------
view software
Allows users to view list of saved software projects.
Basic Format: view software
Examples of usage:
> view software
------------------------------------------------------------------------------------------------------------------------
Your personalized projects information as shown below:
┌───────────────────────────────────────┬──────────────────────────────────────┐
│Project: │Team Project for CS2113 │
├───────────────────────────────────────┼──────────────────────────────────────┤
│Role: │Unit Tester │
├───────────────────────────────────────┼──────────────────────────────────────┤
│Objectives: │To get an A+ │
├───────────────────────────────────────┼──────────────────────────────────────┤
│Description: │Worked at identifying feature flaws in│
│ │app │
├───────────────────────────────────────┼──────────────────────────────────────┤
│Duration: │May-August │
├───────────────────────────────────────┼──────────────────────────────────────┤
│Programming Languages: │Java, C++ │
└───────────────────────────────────────┴──────────────────────────────────────┘
------------------------------------------------------------------------------------------------------------------------
view hardware
Allows users to view list of saved hardware projects.
Basic Format: view hardware
Examples of usage:
> view hardware
------------------------------------------------------------------------------------------------------------------------
Your personalized projects information as shown below:
┌───────────────────────────────────────┬──────────────────────────────────────┐
│Project: │Team Project for EE2026 │
├───────────────────────────────────────┼──────────────────────────────────────┤
│Role: │Ui Developer │
├───────────────────────────────────────┼──────────────────────────────────────┤
│Objectives: │To get an A+ │
├───────────────────────────────────────┼──────────────────────────────────────┤
│Description: │Worked at creating pixel art for the│
│ │UI │
├───────────────────────────────────────┼──────────────────────────────────────┤
│Duration: │May-August │
├───────────────────────────────────────┼──────────────────────────────────────┤
│Hardware Components: │Basys Board │
└───────────────────────────────────────┴──────────────────────────────────────┘
------------------------------------------------------------------------------------------------------------------------
bye
Exits the program. A user can exit the program at any time by typing bye
in the command line.
If the first word of user input is bye
, the program will terminate automatically without checking the rest of the
inputs.
InternSprint’s internship, project, interview and user profile data is saved in the hard disk automatically after any command that changes the data. There is no need to save manually.
InternSprint’s internship data is saved automatically in .json
format at [JAR file location]/data/internships.txt
,
while the project data and interview data are stored in .json
format at [JAR file location]/data/projects.txt
and [JAR file location]/data/interviews.txt
respectively.
The user profile data is stored in a structured plain text format at [JAR file location]/data/user.txt
.
Advanced users are welcome to update data directly by editing the data files.
CAUTION!: The data file follows a strict .json format. Any modification that violates this format, such as altering brackets, commas, colons, or quotes, can corrupt the data and prevent the application from running correctly. If this happens, you will see an error message and must fix the file or delete it to restart the application.
NOTE:
companyname
) will also trigger an error.InternSprint uses Natty
library to parse dates and times.
Acceptable formats include but is not limited to the following:
Relative dates are also accepted:
Provide only valid dates in the command line.
Natty
cannot read years after 10000, which is not valid in this era.
Q: How do I transfer my data to another computer?
A: Simply copy the file [JAR file location]/data/internships.txt
and transfer it to the secondary device in
the same subdirectory of [JAR file location]/data
. This will ensure your data is transferred, but keep in mind there
should be only one internships.txt
in the location.
Command | Format |
---|---|
Internship Commands | |
add general |
add general /c COMPANY_NAME /r ROLE /dept DEPARTMENT |
add software |
add software /c COMPANY_NAME /r ROLE /tech TECHNOLOGIES |
add hardware |
add hardware /c COMPANY_NAME /r ROLE /hardtech HARDWARE_TECHNOLOGIES |
edit |
edit /index INDEX_OF_INTERNSHIP |
delete |
delete /index INDEX_OF_INTERNSHIP |
find |
find [TYPE] [/c COMPANY_NAME] [\r ROLE] |
desc |
desc /index INDEX_OF_INTERNSHIP |
interview for |
interview for /index INDEX_OF_INTERNSHIP /date DATE /start START_TIME /end END_TIME /type TYPE [/email INTERVIEWER_EMAIL] [/notes NOTES] |
sort interviews |
sort interviews |
User Commands | |
my |
my /c COMPANIES_YOU_PREFER /r ROLES_YOU_PREFER /ygoals YEARLY_GOALS /mgoals MONTHLY_GOALS /pay PAY_RANGE /ind INDUSTRIES_YOU_PREFER /time TIME_RANGE /name YOUR_NAME |
view user |
view user |
project general |
project general /n PROJECT_NAME /r ROLE /dept DEPARTMENT /obj OBJECTIVES /desc DESCRIPTION /dur DURATION |
project software |
project software /n PROJECT_NAME /r ROLE /dept DEPARTMENT /pro PROGRAMMING_LANGUAGES /obj OBJECTIVES /desc DESCRIPTION /dur DURATION |
project hardware |
project hardware /n PROJECT_NAME /r ROLE /dept DEPARTMENT /hcomp HARDWARE_COMPONENTS /obj OBJECTIVES /desc DESCRIPTION /dur DURATION |
view general |
view general |
view software |
view software |
view hardware |
view hardware |
bye |
bye |