Skip to content

Latest commit

 

History

History
121 lines (93 loc) · 5.64 KB

benntay.adoc

File metadata and controls

121 lines (93 loc) · 5.64 KB

Benn Tay Guobin - Project Portfolio

PROJECT: SousChef


Overview

Souschef is a desktop smart cooking sidekick, offering personalised guidance every step of the way. From recipe recommendations just for you, to meal planning and inventory management, SousChef has everything you need to improve life in the kitchen.

Our users interact via CLI and GUI created with JavaFX. Written in Java, experience what many are enjoying.

Summary of contributions

  • Code contributed: [Functional code]

  • Major enhancement: added the Meal Planner feature.

    • What it does: Allows users to add their desired recipes to a Meal Planner so that they can plan their days' meals.

    • Justification: This feature improves the product significantly because a user can not only browse recipes, but also keep a record of the recipes they want to try on which specific days.

    • Highlights: This enhancement was originally unsupported by the AB4 code; it is a completely new component feature.

  • Major enhancement: restructured and modularised UI component and implemented panel switching between different features.

    • Justification: This was to allow easy and efficient integration for the UI aspect across multiple features through the use of general classes, as well as to allow switching between the display panels of different features.

    • Highlights: This enables both modularised and efficient integration of features into UI and allowed easy switching between different feature panels through the use of Universal Commands.

    • #65, #243

  • Minor enhancement: Implemented cross-model deletion and clearing in order to maintain data consistency across the different models.

    • Justification: There are some scenarios to consider where modifying one model has to affect one or more other models.

      • Recipe that is already planned in the Meal Planner is deleted from the recipe model.
        In this scenario, the deleted recipe will now also be removed from the days in the Meal Planner where it was previously planned, and also from the day planned in the Health Planner.

      • 3 recipes that have been planned in a single day are deleted from the recipe model.
        In this scenario, the day in the Meal Planner which has had all its recipes removed will also be deleted from the Meal Planner. This then cascades on to the Health Planner, and the deleted day will be removed from any health plans where it was previously added to.

      • A day from the Meal Planner that has been added to a health plan in the Health Planner is deleted from the Meal Planner.
        In this scenario, the deleted day will now also be removed from the health plans in the Health Planner where it was previously added.

      • Clearing the Meal Planner while days have been added to health plans in the Health Planner.
        In this scenario, all the health plans in the Health Planner will now have all their previously added days removed.

      • A recipe that is already planned in the Meal Planner is edited.
        In this scenario, the recipe’s changes will now also be reflected in the Meal Planner and also in the Health Planner if the day has been added to a health plan.

    • Highlights: This ensures that the different types of data across the different models in SousChef all remain in synchronization and logically correct.

    • #256, #265

  • Other contributions:

    • General/Team Enhancements:

      • Clean up code by decoupling Storage and Ui components from Logic component (#243 #256).

    • Documentation (see Contributions to Developer Guide for details):

      • Update UI class diagram to reflect new generic classes.

      • Documented and explained modularisation of UI component, including creating class diagrams to show new classes

      • Documented and explained implementation of MealPlanner component.

    • Enhancements to new features:

      • Wrote additional tests for Meal Planner component to increase coverage.

    • Community:

      • PRs reviewed (mostly wth regards to the UI component): #83, #84, #56

      • Reported bugs and suggestions for other teams in the class (examples: 1, 2, 3)

Contributions to the User Guide

Given below are sections I contributed to the User Guide. They showcase my ability to write documentation targeting end-users.

Explanation of Meal Planner commands

Contributions to the Developer Guide

Given below are sections I contributed to the Developer Guide. They showcase my ability to write technical documentation and the technical depth of my contributions to the project.


Explanation of Meal Planner implementation


Meal Planner User Stories


Explanation of the modularisation of the UI component


Update UI Class Diagram

UiClassDiagram