Donovan Lee's Project Portfolio Page
Project: Gim
Gim is a desktop app for managing gym exercises, optimized for use via a Command Line Interface (CLI) while still having the benefits of a Graphical User Interface (GUI). If you can type fast, Gim allows you to keep track your exercises and Personal Records in an efficient way.
Example usages:
- as a tracking tool to keep track of completed exercises
- as a tracking tool to keep track of your personal records
- as a workout generator to generate exercises based on your personal records
Given below are my contributions to the project.
- New Feature: Sort command (PR #100)
- What it does: Allows users to sort any displayed list of exercises by date of completion.
- Justification: This feature is essential as sorting the exercises by date of completion allows users to better track their workout progression.
- Highlights:
- Tracing of the code base was necessary to ensure that the sort command is executed on the displayed list of exercises without altering the default ordering of exercises stored in the system.
- A defensive copy of the default ordering of exercises based off entry date has to be maintained to allow users to toggle between a sorted ordering and the default ordering.
- Utilise Open-Closed Principle to accommodate other sorting orders should sorting criteria change in the future.
-
Code contributed: RepoSense Link
- Enhancements to existing features:
- Documentation:
- User Guide:
- Developer Guide:
- Contribution to team-based tasks:
- Reviewed Team Members’ PRs.
- Participated and contributed to weekly team meetings.
- Tools:
- PlantUML: Creating UML diagrams.