Project: FitBook

FitBook is a desktop tracking book application used for tracking the progress and information for the clients. The user interacts with it using a CLI, and it has a GUI created with JavaFX. It is written in Java. Given below are my contributions to the project.

  • Code contributed: RepoSense link

  • New Class: Added Weight, Gender, Goal class to client and enhanced Add and Edit Command.
    • What it does: allows the user to add and edit his/her weight/gender/goal.
    • Justification: This feature improves the product significantly because a user may want to keep track of the details like weight/gender/goal of his/her clients which makes it easier the trainer to track.
    • Highlights: This enhancement affects existing commands and commands to be added in the future. It required an in-depth analysis of design alternatives. The implementation too was challenging as it required changes to existing commands.
  • New Feature: Added export and exportRoutine functionality.
    • What it does: allows the user to export the compulsory data fields of a client which are Name, Phone Number,Email, Address, Weight and Gender. Also allows the user to export Routine details into a csv file.
    • Justification: This feature improves the product significantly because user gets to save their data into a csv format locally on his computer. Which he/she is then able to open the csv file using applications like Microsoft Excel to do further analysis.
    • Highlights: It required an in-depth analysis of design alternatives.
  • New Feature: Added deleteRoutine and deleteExercise functionality for Routine Class.
    • What it does: allows the user to delete Routines and exercises in the Routine Storage, and it will be updated in the current model for Routine.
    • Justification: This feature improves the product significantly because user gets to delete a specific Routine in the Routine Storage.
    • Highlights: It required an in-depth analysis of design alternatives. The implementation too was challenging as it modifies the current Routine’s storage.
  • New Feature: Added addExercise and listRoutines functionality for Routine Class.
    • What it does: allows the user to list all routines as well as add exercises to the specific Routine in the Routine Storage, and it will be updated in the current model for Routine.
    • Justification: This feature improves the product significantly because it allows user to add new Exercises to the specific Routine in the Routine Storage as well as see the full Routine list stored in FitBook.
    • Highlights: It required an in-depth analysis of design alternatives. The implementation too was challenging as it modifies the current Routine’s storage.
  • New Feature: Added findRoutines and clearRoutines functionality for Routine Class.
    • What it does: allows the user to find specific Routines in FitBook by keywords as well as clear all Routines in FitBook.
    • Justification: This feature improves the product significantly because it allows user to filter and search Routines that have been stored in the Routine’s Storage. Additionally, allows users to clear all Routines in the storage.
    • Highlights: It required an in-depth analysis of design alternatives.
  • Project management:
    • Created organisation and set up project repository.
    • Managed and created labels to organise issues and pull requests.
    • Authored 38 issues, including User Stories.
    • Refactored entire code-base to suit naming conventions for FitBook.
    • Handled miscellaneous administrative tasks including:
      • Setting up project website.
      • Set up CodeCov to keep track of testing coverage
      • Enabling assertions in build.gradle.
      • v1.3(final)(1 releases) on GitHub
  • Documentation:
    • User Guide:
      • Added documentation for the features export, exportRoutine, findRoutine, clearRoutine, deleteRoutine, addExercise, deleteExercise, listRoutines #146
      • Did cosmetic tweaks to existing documentation of features: #155
    • Developer Guide:
      • Added user stories #64
      • Added use case for edit, listRoutines, export, exportRoutines,clearRoutines, deleteRoutine, deleteExercise,findRoutine. #79 & #115
      • Added Implementation for export, addExercie, deleteRoutine. #136
      • Added manual testing for delete, addRoutine,findRoutine,deleteExercise, view, graph #202 & #208
  • Community: