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: editPerson (PR #76)
    • What it does: Allows users to modify existing person records.
    • Justification: Able to update contacts, ensuring up-to-date information.
    • Credits: The editPerson command was adapted from the edit command in the AddressBook-Level3 project (AB3) created by the SE-EDU initiative.

  • New Feature: deleteAllTask (PR #90)
    • What it does: Enables users to delete all tasks and start with a new task list.
    • Justification: Provides a quick way to clear all tasks, decluttering the interface.
    • Highlights: This feature required me to have an in-depth understanding of the execution pipeline for commands when manipulating a task list based on existing UniquePersonList.
    • Credits: The deleteAllTask command was inspired by the clear command in AB3.

  • New Feature: markTask & unmarkTask (PR #86)
    • What it does: Allows users to mark tasks as completed or not completed, keeping track of task progress.
    • Justification: Ensuring users stay on top of their to-do list, aiding in prioritization.
    • Highlights: This feature involved creating a new Status field and TaskStatus enumeration. Utilizing STATUS_DONE and STATUS_NOT_DONE constants further enhanced consistency within the codebase.

  • New Feature: findDone & findNotDone (PR #99)
    • What it does: Facilitates quick search and display of all completed or pending tasks.
    • Justification: Aiding users in task prioritization and effective task analysis.
    • Highlights: This feature required to know how lists are displayed in JavaFX. New predicates were created based on existing PREDICATE_SHOW_ALL_PERSONS in AB3.

  • New Feature: deleteAllDone (PR #115)
    • What it does: Provides the option to delete all completed tasks.
    • Justification: Reduces clutter, ensuring users focus on upcoming tasks.
    • Highlights: This feature required an understanding on the dynamic nature of list. The loop iteration from the back was found to be essential for proper deletion, ensuring the accurate removal of completed tasks.

  • Code contributed: RepoSense link

  • Project management:
    • Set up assertions for gradle (PR #110)
    • Addressed javafx plugin + problem that was brought up in the forum (PR #18)
    • Opened issues for each milestones (Issue #41, #98, #114)

  • Enhancements to existing features:
    • Revise help messages to incorporate authentic event planning terminology and context, providing users with a more relevant and intuitive experience. (PR #108)

  • Documentation:
    • User Guide:
      • Add documentation for the editPerson, deleteAllTask, markTask, unmarkTask, findDone, findNotDone and deleteAllDone commands.
      • Add list of features of CoordiMate (PR #108)
      • Add Glossary (PR #160)
      • Add self drawn mockups of GUI for User Guide (Commit #0a25954)
    • Developer Guide:
      • Add user stories and use cases for editPerson, deleteAllTask, markTask, unmarkTask, findDone, findNotDone and deleteAllDone commands.
      • Add implementation details and design considerations of markTask feature with sequence diagram and activity diagram (PR #100)
      • Add Planned enhancements (PR #163)

  • Community:
    • PRs reviewed (with non-trivial review comments): PR #56, #91, #89, #88, #84
    • Contributed to forum discussions: Forum #6
    • Reported 5 bugs and suggestions during PE Dry Run. (Repo)

  • Tools:
    • Created mockup templates for teammates to use when adding mockups to the UG (link)