Project: JerylFypManager

JerylFypManager is a desktop application catered to professors to manage and track the progress for students’ final year project (FYP), as well as serving as a platform for professors to provide feedback on their students’ progress. The user interacts with it using a CLI, and it has a GUI created with JavaFX. It is written in Java, and has about 10 kLoC. This project is based on AddressBook - Level 3.

Given below are my contributions to the project.

  • Enhancements to existing features:
    • Redefine equality on Student.
      • Rationale: Checking whether a student is a duplicate of another one must be determined on their student ID instead of name since there can be multiple individuals with the exact same name. The previous implementation checks on their name instead of their student ID.
    • Support friendlier syntaxes.
      • Rationale: Adding a student and adding a deadline has an overlapping command word add, likewise for deleting. As such, the previous implementation changes the command word to accept strictly add-s and add-d. However, it would be better to accept any spaces between add and the flags, -s or -d, as well as providing a default choice if the flag is not specified.
    • Extend HelpCommand to handle various commands.
      • Rationale: With more commands being added, it would be harder to maintain the help command since another new class must be added. Instead, I modified HelpCommandParser to create different HelpCommand instances. This approach will keep HelpCommand as its own class but with extended functionalities that do not need to increase the number of classes needed.
    • Enhance deadline parser to accept multiple datetime formats.
    • Improve code quality on EditCommand.
      • Rationale: Used the Facade design pattern such that EditCommandParser does not access EditCommand.EditStudentDescriptor directly but rather use what has been provided in the Model interface.
    • Major UI changes, such as the splitting of the FYP list into uncompleted and completed list.
  • New Feature:
    • Add student command - A feature to add a student to FypManager along with the particular details.
  • Code contributed: I personally contributed around 4 KLoC to FypManager, the RepoSense link can be found here.

  • Project management:
    • Created team organization, setup team repository, CodeCov, and GitHub Actions workflow.
    • Oversaw overall integration of features, especially on lint checks.
    • Renamed all packages to match FypManager, i.e. seedu.address to jeryl.fyp.
    • Managed the release of v1.2, v1.3, v1.3.1, v1.3.2, and v1.4 on GitHub by doing JAR release test.
    • Approved PRs and merging them.
    • Set up milestones on GitHub (v1.2, v1.2b, v1.3, v1.3b, v1.4, v1.4b).
    • Set up preliminary meeting minutes, such as post PE-D pre-triaging report.
    • Initiated Zoom meetings for team meeting, hosted them, and conduct debug sessions.
    • Contributed to more than 50 PR review comments as shown on this dashboard.
  • Documentation:
  • Community:
  • Tools:
    • Used SceneBuilder extensively to refactor the UI.