tp

Govindaraj Roshni Daksha - Project Portfolio Page

By: Govindaraj Roshni Daksha (@roshnidaksha)

Project: InternSprint

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 internship management.

Summary of Contributions

Code Contributed:

Check out my contributions to InternSprint at the TP Dashboard

Enhancements Implemented:

  1. New feature: Added the ability to add new internships to the list. (#17)

    • What it does: allows the users to add a new internship to their list of internships.
    • Highlights: The user can add internships with a variety of parameters, including the type of internship (software, hardware, general), company name, technologies required, status of internship, eligibility, role and description. Only the first 3 are mandatory parameters, and the rest are optional.
    • Contributions: I created the AddInternshipCommand class and its subclasses, AddSoftwareInternshipCommand, AddHardwareInternshipCommand and AddGeneralInternshipCommand. I also created the Internship class and its subclasses, SoftwareInternship, HardwareInternship and GeneralInternship. To manage the list of internships, I created the InternshipList class, achieving better encapsulation and separation of concerns.
  2. New feature: Added the ability to add an interview to an internship. (#92)

    • What it does: allows the users to add an interview to an internship.
    • Highlights: The user can add an interview with a variety of parameters, including the date, start time, end time, type of interview, interviewer email and notes. Only the first 4 are mandatory parameters, and the rest are optional.
    • Contributions: Created the AddInterviewCommand class.

    NOTE: For both the features above, the command takes care to not add any duplicate internships or interviews to the list. (#113) (#120)

  3. New feature: Added the function to filter internships. (#87)

    • What it does: allows the users to filter internships based on internship type, role and company name.
    • Highlights: The user can filter internships based on the type of internship (software, hardware, general), role and company name. At least one of the parameters is required to filter the internships.
    • Contributions: Created the FindCommand class.
  1. Additional Enhancement: Created a parser to handle the command line arguments. (#17)

    • What it does: The parser takes the command line arguments and parses them into a command object.
    • Highlights: The parser is able to handle different types of commands and their parameters without taking the order and case of parameters into consideration. This is more user-friendly. It also handles invalid commands and parameters, returning appropriate error messages.
    • Contributions: Created the CommandParser class to handle the command line arguments.
  2. Additional Enhancement: Created a parser to handle date and time. (#74)

    • What it does: The parser takes the date and time in different formats and parses them into a standard format.
    • Highlights: The parser makes use of external libraries like Natty and PrettyTime to handle the date and time parsing. It is capable of handling natural language inputs and parsing them to correct java date and time objects.
    • Contributions: Created the DateTimeParser class to handle the date and time.

Contributions to team-based tasks :

Testing

PRs Reviewed: (#18) (#29) (#35) (#37) (#77) (#79) (#80) (#85) (#98) (#104) (#115) (#124) (#155)

Bug Fixes: (#168) (#184) (#210) (#211) (#217) (#222)

Contributions to Documentation:

Extracts from Developer Guide:

Architecture Diagram

OverallArchitecture

Command Parser Class Diagram

CommandParserClassUML

Command Class Overview Sequence Diagram

CommandClassOverview

Sequence Diagrams showing the flow of execution for adding an internship

AddCommandSequenceDiagramOverview

AddCommandSequenceDiagramOverview AddCommandSequenceDiagramOverview