Project: Calo

Calo is a desktop app that is designed for keeping track of calories burnt throughout the day. It is optimized for use via a Command Line Interface (CLI) while still having Graphical User Interface (GUI).

We built Calo upon the Address Book Level 3 (AB3) project.

Given below are my contributions to the project.

  • New Feature: Added the ability to update a Exercise record.
    • What it does: Allow the user to edit the Exercise at the specified INDEX. For more details, please refer to the User Guide.
    • Justification: This feature improves the product significantly because a user can update the Exercise record (eg. when he has made a mistake in adding an Exercise entry). The app should provide a convenient way to do so.
    • Highlights: This enhancement is a refactor of the existing edit commands in AB3. It required an in-depth analysis of the initial codebase, architecture and design alternatives. The implementation was challenging as it required changes throughout the stack: front-end to display the updated Exercise record, and back-end to evaluate the different fields in Exercise).
  • New Feature: Added a help command that displays a link to the user guide.
    • Justification: This feature allows the user to conveniently access all available commands with a simple command.
  • New Feature: Added an exit command that allows the user to exit the app.
    • Justification: This feature allows the user to exit the app using a simple command, without having to point the mouse to the close button.
  • New Feature: Added an clear command that allows the user to clear all existing Exercise entries.
    • Justification: This feature allows the user to reset his logs using a simple command.
  • Code contributed: RepoSense link

  • Project management:
    • Managed releases v1.3.1, v1.3.2, v1.4 Trial (3 releases) on GitHub
    • Cleaned up code remnants from AB3: #86
    • Documentation: #8, #96
    • UG: #168, #172
    • DG: #26
    • Helped teammates (bug-fix, enhancements): #61 , #70, #95, #98, #104
  • Enhancements to existing features:
    • Added MuscleTag and ExerciseTag fields for Exercise: #72, #79, #83
    • Made Date and Calories optional for add command: #79
    • Wrote additional test cases (for me and teammates) to increase code coverage: #38, #41 #72
  • Documentation:
    • User Guide:
      • Added documentation for the features help, exit and clear commands: #72
      • Added documentation for MuscleTag: #173
      • Did cosmetic tweaks to existing documentation of features clear, exit: #74
    • Developer Guide:
      • Refactored architecture section: #184, #187, #192, #194
      • Added implementation details of the update feature: #206, #208
  • Community: