Project: Wishful Shrinking

Wishful Shrinking is a desktop application for managing your diet, keeping track of your on-hand ingredients, recipes, as well as the food you’ve eaten (along with their calories). While it has a GUI, most of the user interactions happen using a CLI (Command Line Interface).

Given below are my contributions to the project.

  • New Feature: Added the ability to add recipes to the recipe list.
    • What it does: allows the user to add recipes to his/her collection.
    • Justification: This feature helps the user accumulate healthy recipes for future reference in preparing meals.
  • New Feature: Added the custom text area class for command box.
    • What it does: handles enter key press from user and filter out other key presses.
    • Justification: This feature improves the efficiency of the previous implementation of the command box as a text field. With a text area, users can see the whole command in full view.
    • Highlights: This enhancement requires extensive research on JavaFx components and event listeners.
  • New Feature: Added responsive image layout.
    • What it does: changes the image sizes according to window sizes.
    • Justification: This feature significantly improves the look of the app.
    • Highlights: This enhancement requires extensive research on JavaFx components and event listeners.
  • New Feature: Added UI components: Recipe, Ingredient, Consumption Card and List Panel.
    • What it does: displays information to users.
  • New Feature: Added UI components: Recipe Side Drawer.
    • What it does: displays a single recipe in full view to users.
    • Justification: Side panel contain the mini version of recipes and may not display all information.
    • Highlights: This component is attached to several event listener to make it responsive to size changes.
  • New Feature: Added UI components: TextArea CommandBox.
    • What it does: allows users to see more of their commands.
    • Justification: Commands tend to be long and the previously implemented TextField only showed one line which takes a lot of time to scroll.
    • Highlights: This enhancement requires the implementation of a custom component called CustomTextArea which disregard all key press events except for enter key which will submit the command.
  • Code contributed: RepoSense link

  • Project management:
    • Managed release v1.3 on GitHub
  • Enhancements to existing features:
    • Updated image file path handling for recipes
    • Changed CommandBox’s TextField to TextArea for better UX (Pull requests #180)
  • Documentation:
    • User Guide:
      • Updated documentation for selectR and close: #177
    • Developer Guide:
      • Updated UI diagram and implementation details for selectR and close: #177
      • Added implementation details for addR, deleteR and deleteF: #123
  • Community:
    • PRs reviewed (with non-trivial review comments): #179
    • Contributed to forum discussions (examples: 1, 2)
    • Reported bugs and suggestions for other teams in the class (examples: 1, 2, 3)
  • Tools:
    • Created the team organization and repo on Github
    • Integrated JFoenix to the project (#90)