Project: McGymmy

McGymmy is a desktop diet tracker application for health-conscious software engineers. 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.

Given below are my contributions to the project.

  • New Feature: Added the ability to find food items based on criteria. #105
    • What it does: allows the user to specify certain optional criteria (name, tag, date) in order to filter the displayed food list.
    • Justification: This feature allows for greater navigability within the app as users can filter the food list. It also allows for more efficient execution of commands, by allowing the user to execute commands on a localised filtered list instead of the entire food list.
    • Highlights: This enhancement required changing the structure of FindCommand, amending the PrimitiveCommandParser to work with optional flag-less parameters as well as creating the DatePredicate class to filter by dates. A lot of thought went through to devise how to make the FindCommand optimally functional and useful.
  • Enhancement: Major refactoring of codebase from AB3 to McGymmy. (Pull requests #56, #55)
    • What it does: sets up the core of the codebase for McGymmy and allows additional enhancements to be incorporated easily.
    • Highlights: Refactored entirety of AB3 to fit food items instead of contacts which involved changing thousands of lines of code. Partook in pair programming with Junhua, as a live code reviewer for the refactoring of core commands and overall structure. Personally, I refactored all existing AB3 test classes to fit McGymmy which required extensive and exhaustive debugging in order to ensure the “updated” tests passed while ensuring the logic remained correct and relevant.
  • Enhancement to existing features:
    • Wrote additional tests for existing features to increase test coverage. (Pull requests #105, #135)
  • Code contributed: RepoSense link

  • Project management:
    • Set up and managed milestones v1.1 and v1.2 (2 Milestones).
    • Update shared docs with updated UI images.
  • Documentation:
    • User Guide:
      • Updated find command description and examples. #135
      • Added in more user-friendly language and formatting. (Pull requests #236, #209)
      • Updated and added UI images. #149
    • Developer Guide:
      • Added find command with associated details and UML diagrams. #106
      • Updated model class diagram to fit McGymmy. #114
  • Community:
    • PRs reviewed (with non-trivial review comments): #216, #101, #246, #143, #49, #219, #229. Full list of PR’s reviewed: PRs.
    • Reported bugs and suggestions for other teams in the class (examples: 1, 2, 3, 4)