Kamil Gimik's Project Portfolio Page
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 thePrimitiveCommandParser
to work with optional flag-less parameters as well as creating theDatePredicate
class to filter by dates. A lot of thought went through to devise how to make theFindCommand
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:
-
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:
- Developer Guide:
- Community: