Project: CoordiMate

CoordiMate is a desktop application designed specifically for SoC Computing Club event planners to help manage their contacts and tasks for their events, so that they can focus on the event itself.

Given below are my contributions to the project.

  • New Feature: Implemented the findPerson command. (PR #74)
    • What it does: It allows users to quickly filter their contact list to show only contacts whose names match a given keyword.
    • Justification: This feature allows users to quickly find the contact they are looking for without having to scroll through the entire contact list, which can be cumbersome if the user has a large number of contacts.
    • Credits: The findPerson command was adapted from the find command in the AddressBook-Level3 project (AB3) created by the SE-EDU initiative.

  • New Feature: Implemented the Task objects and loading/saving of tasks. (PR #81, #83)
    • What it does: It specifies the attributes that a Task should have.
    • Justification: This feature allows CoordiMate to handle tasks and execute commands related to tasks.
    • Highlights: This feature required me to create new classes to represent the various attributes of a Task, and to update the existing code to make it compatible with the new classes.

  • New Feature: Implemented the findTask command. (PR #85)
    • What it does: It allows users to quickly filter their task list to show only tasks whose titles or note match a given keyword.
    • Justification: This feature allows users to quickly find the task they are looking for, without having to scroll through the entire task list. Without this feature, finding a specific task would be cumbersome if the user has a large number of tasks.
    • Highlights: While implementing this feature, I had to implement the relevant Predicate<Task> classes for the findTask command to filter the task list.
    • Credits: The findTask command was inspired by the find command in AB3.

  • New Feature: Implemented the listTag command. (PR #102)
    • What it does: It allows users to view all the tags that have been used in the contact and task list.
    • Justification: When the contact and task lists get long, it can be difficult for the users to remember the various tags that they have used.

  • Code contributed: RepoSense link

  • Project management:
    • Set up GitHub Actions and Codecov to track code coverage.
    • Added icons to CoordiMate application and Product Website.

  • Enhancements to existing features:
    • Added status icons to UI to denote whether a task is done. (PR #94)
    • Updated Storage to save and load Persons and Tasks. (PR #83, #92)

  • Documentation:
    • User Guide:
      • Added Admonitions to User Guide. (PR #2)
      • Added documentation for findPerson, findTask and listTag commands. (PR #70, #108)
    • Developer Guide:
      • Added Admonitions to Developer Guide. (PR #54)
      • Added user stories and use cases for findPerson, findTask and listTag commands. (PR #54, #121)
      • Added implementation details of findTask feature. (PR #100)
      • Updated existing Storage and Model class diagrams to include Task class. (PR #121)
      • Converted existing PNG diagrams to SVG format for better readability. (PR #121)

  • Community:
    • PRs reviewed (with non-trivial review comments): #86, #117, #118
    • Contributed to forum discussions: Forum #25, Forum #34
    • Reported 6 bugs and suggestions during PE Dry Run. (Repo)

  • Tools:
    • Integrated Cloudflare Pages to test product website deployments.
    • Set up GitHub Actions to automate releases. (PR #5)