Project: Plannit

Plannit is an all-in-one application that streamlines the execution of module deliverables by empowering NUS students with the ability to manage tasks, links and module-mates (i.e., students in the same module) to increase their productivity.

Given below are my contributions to the project.

  • New Feature: Added the ability to display persons associated to a module upon navigating to it, ie a module-person association (#79)
    • What it does:
      Allows users to view all the persons associated to a module.
    • Justification:
      This feature allows forgetful users to know which of their friends take a certain module so that they know who to approach when they need help with the module’s work (user story).
    • Highlights:
      This enhancement was not easy because it involved interactions between two different kinds of Model objects, namely Person and Module, which required intensive considerations on the design to ensure there were as little dependencies as there could be. Due to that and the bug-prone nature of the feature, it required an in-depth analysis of design alternatives. The implementation was also challenging because existing commands had to be modified. This was previously not in the design of AB3. (see #98).
  • New Feature: Added delete-person-from-module command (#100)
    • What it does:
      Allows users to remove the association between a person and a module (if it exists).
    • Justification:
      This feature allows users to maintain their person-module associations to be updated with real world events. For example, users can delete a person from a module if the person dropped out halfway, or when a new semester arrives (user story).
    • Highlights:
      Same as the new feature before.
  • Enhancements/modifications to existing features:
    • Modified AB3’s add command to better suit project needs
      • Removed address and tags field as they were deemed irrelevant to our target audience and value proposition (#62).
    • Enhanced AB3’s edit command to work with newly implemented features
      • Added the ability for editing of person to work seamlessly with the module-person association, ie editing a person also edits all instances of the person in each module (if it exists) (#98).
    • Modified AB3’s delete command to use new parameters
      • Modified the parameter used for deletion of a contact to be from index to name so that it is consistent with other commands and also to make it more intuitive to the user (#92).
  • Highlights and minor features:
    • Spearheaded discussions and laid foundation down for the module-person association and all of its related commands (some discussions found here).
    • Led discussions related to UI display issues after execution of commands and implemented the final behaviour (#157).
    • Added the ability to display the modules and persons list in sorted order (#106).
  • Code contributed: RepoSense link

  • Documentation:
    • User Guide:
      • Added documentation for the following features:
        • add-person and delete-person (#49)
        • edit-person (#62)
        • delete-person-from-module (#111)
    • Developer Guide:
      • Added documentation for the contacts-related section and the delete-person command (#88).
      • Added documentation for the person-module association and the add-person-to-module command (#190).
      • Added user stories and use cases related to contacts.
  • Review contributions:
    • PRs reviewed (with non-trivial review comments): #90, #101, #151, #63
    • Full list of PRs reviewed here
  • Team based tasks:
    • Necessary general code enhancements:
      • Refactored contact commands to person after feedback from teammates (#86)
    • Maintaining the issue tracker:
      • Created and assigned the majority of labels and milestones.
      • Resolved issues after a relevant PR has been merged.
  • Community:
    • Contributed to forum discussions: (examples: 1, 2)