Lam Yue Wei - Project Portfolio Page

Content

  1. Overview
  2. Summary of Contributions
    1. Code Contributed
    2. Enhancements implemented
    3. Contributions to documentation
    4. Contributions to the DG
    5. Contributions to team based tasks
    6. Review/mentoring contributions
    7. Contributions beyond the project team

Overview

Diet Manager is an personalized chat-bot application used for managing an individual’s diet.

Diet Manager is capable of tracking daily food intake and providing recommendations based on a user’s specified health data and weight goal.

Summary of Contributions

Code Contributed

__Diet Manager__:
Link to code on tP Code Dashboard __here__.

Enhancements implemented

  1. Created the FoodNutritionInfo class which serves as a food bank allowing user to record food into their daily meal record from the food that is stored in the food bank.

  2. Enabled users to view all the food stored in the food bank via user input command.

  3. Created the Food class which allowed users to create food to store into their daily meal record with or without the Nutrition value.
    • This enhancement is tougher to implement as I needed to break down the user input into several cases in order to record the meal.
      • If the user keyed in food name and nutrition value, the meal will store the food according to the user input.
      • Else if the user keyed in food name without nutrition value and the food exists in the food bank, the meal will store the food taken from the food bank.
      • Else the meal will store the food name without any nutrition value.
    • There were some difficulties faced during the implementation of the enhancement as I needed to deal with cases where the Nutrition value of a food may or may not exist.
      To overcome this challenge, I had to use the Optional class and Streams Methods provided by the java api. I also had to be mindful constantly to ensure I lay out proper checks of the Optional values before obtaining the values in order to prevent any crashes in our program.
  4. Incorporate the nutrition values into the DailyFoodRecord class to enabled user to view their daily meals with the associated food name and nutrition value if it exists.

  5. Enabled users to check the calories requirement based on their activity level and their food consumption for the day.
    • The challenge in this enhancement implementation comes with the need to carefully break down the scenario constantly.
      • Firstly, there is a need to calculate the person’s BMI using different formula depending on whether the profile belongs to a male or female.
      • Secondly, there is a need to calculate the person’s required calories using different formula depending on the profile’s activity level for the day (i.e. low, moderate, high).
      • Thirdly, there is a need to compare the required calories to the calories intake of the person, and the result shown to the user then depends on whether the user is trying to gain weight or lose weight.

Contributions to documentation

I contributed to the User Guide under the section of check required calories.

I contributed to the User Guide under the section of set user profile.

I contributed to the User Guide under the section of Features.

Contributions to the DG

I contributed to the Developer Guide under the section of profile component and food component.

Contributions to team based tasks

I have contributed to several of my team based tasks.

Review/mentoring contributions

Contributions beyond the project team

I have helped a number of other peers in cs2113 along the way in my cs2113 journey.