tp

Yukihide Takahashi - Project Portfolio Page

Overview

Recipe.io is a command line application that helps people who love to cook, be it professional culinary practitioners, or even students, to manage their recipes.

Summary of Contributions

  1. Code contributed: RepoSense link

  2. Enhancements:

    • Code Structure: Add a CommandValidator class that handles command validation.
      • PR
      • This allows for validation before actual execution of command.
      • Follows the Separation of Concern principle.
    • Functionality: Add the ability to show details of a recipe.
      • PR
      • Shows all the details of a recipe at a given index.
      • Added error handling when index not found in user input, index out of range of recipelist, and index not an integer error.
      • Justification: each recipe has several attributes, which will clutter the console if everything was printed in the general list command.
    • Functionality: Add error handling for delete method.
      • PR
      • Added error handling when index not found in user input, index out of range of recipelist, and index not an integer error.
      • Guides the user on the correct way to input.
    • Functionality: Debug save and load methods.
      • PR
      • Saving and loading was not functioning as expected when the data file did not exist.
      • saveFile method has partial contribution from @chenxk619.
    • JavaDoc: Added JavaDoc to several methods.
  3. Documentation - UG:
    • Created Layout of UG with general sections: PR
    • Gave description of commands like help, delete, and list.
    • Gave a summary of commands.
    • Did cosmetic tweaks to existing documentation of add: PR
  4. Documentation - DG:
    • Created layout of DG with general sections: PR
    • Created Sequence diagram for delete command: UML
    • Created Class diagrams. e.g. RecipeList class: UML
    • Created Architecture diagram for app: UML
  5. Project management:
    • Managed release v2.0.1 on GitHub.
    • Created and managed milestones v1.0, v2.0, and v2.1.
  6. Contributions to team-based tasks:
    • Setting up the GitHub team org/repo.
    • Code enhancements
      • Functional code.
      • Test code.
      • Documentation.
    • Maintaining the issue tracker
      • Creating issues, assigning issues.
    • Reviewing PRs.
    • Documenting the target user profile in the UG.
  7. Mentoring contributions:
    • Made myself a required approver of PRs in v2.0 phase: CODEOWNERS file
      • This was to ensure code base integrity and code quality.
      • Turned off this rule in v2.1 phase since teammates should already understand the protocol when merging PRs. For example:
        • ensuring code is bug free
        • complies with coding standard
        • follows coding principles (SLAP, separation of concern, etc)
    • Some PRs reviewed: #103, #101, #120
  8. Contributions beyond the project team:
    • Made 17 bug reports during PE-D.
    • E.g. 1, 2, 3