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. InternSprint is a CLI application used for internship management. It is written in Java, and has about 8 kLoC.
New Feature: Added the ability to edit added internships and set up optional parameters
What it does: allows the user to edit saved internships: either the user can edit preexisting parameters, or make use of a set of additional optional parameters like status or description.
Highlights: This enhancement involved designing the implementation of optional or extended parameters requiring changes to all internship classes (software,hardware,general), and its index-based approach and updating parameters logic was emulated in other commands such as “delete” or “my”.
New Feature: Added the ability to create user profile information
What it does: allows the user to edit their profile information for use on CVs, by making use of a set of additional optional parameters. This involved implementing new command: “my”.
Highlights: This enhancement creating a model type called user, and its corresponding class, and restructuring the command execution logic for all commands to work with a new model type. It then required the implementation of a new command to edit user profile. It also involved JUnit Testing to validate the new commands.
New Feature: Added the ability to view user profile in CV-friendly table
What it does: allows the user to view their profile information for use on CVs. This involved implementing a new command: “view user”.
Highlights: To achieve the CV formatting we desired I sourced and implemented the ASCIITable library.
New Feature: Added the commands to add three project types
What it does: allows the user to add their software,hardware and general projects for use on CVs. This involved implementing three new commands: create each type of project respectively.
Highlights: This enhancement creating three new command classes for add commands respectively, and defining the parameters which would be important for a user to define for their projects. It also involved JUnit Testing to validate the new commands.
New Feature: Added the command to view three project types
What it does: allows the user to view separately their software,hardware and general projects for use on CVs. This involved implementing three more commands (separate from add projects), view for each type of project respectively.
Highlights: This enhancement creating three new command classes for view commands respectively, and the implementation of the ASCIITable library as mentioned in feature 3.
Additional Method Implementation: Added the ability to load saved data.
What it does: allows the user to load .json saved data through storage handler, and output corresponding load_success message.
Additional Enhancement: Added the Ui features, like ASCII art, welcome screen message and standardized Ui formatting.
What it does: Keeps Ui cohesive. Involved reformatting the existing error messages, dividers, and welcome messages.
Was responsible for setting up and creating the User Guide (commands were distributed according to work division), and wrote the following sections:
For the following sections, I contributed the writeup, as well as all relevant UML diagrams (you can click on the bullet points to see them in DG):
EditCommand
, UserProfile
,ProjectCommand
ViewUserCommand
and all their subclasses