Project: sprINT

sprINT is an internship-tracking application that was created to assist students in their internship hunt.

Students often face a great administrative burden in keeping track of the high volume of job or internship applications. With sprINT, students can easily manage details of their internship applications, and enjoy functionalities like sorting their application entries by deadlines, or finding a specific application with a keyword.

sprINT is written in Java, with the GUI built using JavaFX.

Given below are my contributions to the project.

  • Code contributed: RepoSense link

  • New Features:
    • Implemented undo and redo feature
    • Please refer to issue #91 or PR #143
    • About: This features allow for easy reversal of commands that may have been inputted incorrectly and also the ability to reverse these reversals.
    • Benefits: As our commands are inherently long due to the tasks and app distinction and the many possible fields that needs to be filled up, it makes sense to provide a feature for users to quickly revert to their previous state. However, because this command might be used too loosely as it is very short, we provided a redo function too to supplement the user in case they input the undo as a mistake.
    • Challenges: This feature required the creation of a CommandHistory class, which required some changes to be made to all the existing command’s code. Additionally, it required the creation of a VersionedInternshipBook which extends from the InternshipBooks, which can keep track of all the history. This requires that commands where undo needs to be supported be committed into the VersionedInternshipBook. Thus, I need to know clearly what the old code does and integrate into the new classes.
  • Project management:
  • Enhancements to existing features:

    Implemented edit-app feature

  • Documentation:
    • User Guide:
      • See PR #57, #59 , #148, #169 and #239
      • Helped include instructions for redo/undo and edit-app
      • Added my commands into the summary section.
      • Wrote tips on how to achieve equivalent results as undo for commands without undo support.
    • Developer Guide:
      • See PR #66, #121 and #148
      • Repurposed UML diagrams for undo/redo and edited the DG section on undo/redo in our software’s context.
      • Created UML diagrams and wrote the DG section for edit-app command.
      • Wrote proposed enhancements for error handling for edit-app.
  • Team-based tasks:
    • Refactor existing code for commands that made sense to have an undo feature.