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 a 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: Generate command (PR #118)
    • What it does: Generates workout suggestions for users based on their personal records, based on difficulty level specified.
    • Justification: This feature makes use of the information provided by users to generate a personalised workout session. It makes sensible use of users’ personal records.
    • Highlights:
      • Applied Command pattern in designing how the suggested workout is generated.
      • Supports both indexes and exercise names as input.
      • Added tests and increased project coverage by +5.73% (PR #227)
  • Code contributed: RepoSense Link

  • Enhancements to existing features:
    • Added Weight as field for Exercise (PR #51)
    • Added unit tests for Weight (PR #63)
  • Documentation:
    • User Guide:
      • Added documentation for :gen command (PR #129)
      • Updated UML diagrams to reflect current implementation (PR #213)
    • Developer Guide:
      • Added implementation and design details to support :gen command (PR #104)
  • Contribution to team-based tasks:
    • Reviewed Team Member’s PRs
      • Suggested alternative implementation to abide by Open-Closed Principle (PR #100)
    • Provided ideas and contributed in discussions during weekly team meeting.
      • Suggested alternative phrasing for clarification in UG (Issue #150)
  • Tools:
    • PlantUML: Creating UML diagrams.