Project: CoLAB

CoLAB (Collaboration Lab) is a desktop app for university students to manage their school projects. The user interacts with it using a CLI, and it has a GUI created with JavaFX.

Given below are my contributions to the project.

  • Undo/Redo Feature:
    • Added the ability to undo/redo previous commands(Pull request #209).
    • Justification: This feature improves the product significantly because a user can make mistakes in commands and the app should provide a convenient way to rectify them.
    • Highlights: Although a similar implementations exist in other similar projects, I decided to go with my own implementation after considering the pros and cons of each solution. My solution took into account the user experience, and has the ability undo not only the data but also the GUI to the previous state.
  • Command History Feature:
    • Added a history command that allows the user to navigate to previous commands using up/down keys (Pull request #204).
    • Justification: This feature improves the user experience and makes it easy to execute multiple commands in a row.
  • Redesigned GUI:
    • Redesigned GUI with new colour scheme and design (Pull requests #153, #121, #51).
    • Many hours spent considering the user experience.
    • Required designing a modular UICommand class to encapsulate data and instructions needed to display different UI panels at the correct time (Pull requests #153, #83).
  • GUI Testing:
    • Integrated a third party library (TestFX) to the project (Pull request #61) to facilitate automated GUI testing.
    • Many hours spent integrating TestFX with github actions as well as writing tests.
    • Credits: Address Book 4’s codebase was referenced.
  • Other features and enhancements to existing features:
    • Implemented add project command (Pull request #70).
    • Implemented help panel with summary of commands (Pull request #207).
    • Designed projects model (Pull request #64).
    • Modified existing AddressBook class to store Projects as well (Pull request #175).
    • Added various commands to navigate the UI (Pull requests #89, #90).
    • Implemented sorted ordering for Events, Deadlines, Todos and Groupmates (Pull request #239).
    • Wrote a test utility to facilitate generation of sample projects (Pull request #93).
    • Added the ability for commands to parse date in multiple formats (Pull request #186).
    • Consistently added automated tests for features. Of note, pull request #353 increased coverage by 13.71%.
  • Code contributed: RepoSense link.

  • Project management:
    • Managed releases v1.1 - v1.4 (6 releases) on GitHub.
    • Managed deadlines and deliverables for the group, including updating the issue tracker and milestones.
  • Documentation:
    • User Guide:
      • Added documentation for the features undo/redo and add project.
      • Added section on command parameters.
    • Developer Guide:
      • Updated section on design to fit CoLAB’s new features.
      • Added implementation details of the view project feature.
  • Community:
    • PRs reviewed with non-trivial review comments (some examples: #66, #133, #134).
    • Contributed to forum discussions (some examples: 1, 2, 3, 4).
    • Helped solve classmates issues in forum (some examples: 1, 2, 3, 4).