PROJECT: CookBuddy


Overview

CookBuddy is a personal desktop recipe manager application for students staying in university accommodation who enjoy cooking. The user can interact with it through a Command Line Interface (CLI) along with a Graphical User Interface (GUI) created with JavaFX. It is written in Java and only supports Java 11. It also has close to 10 kLoC. With that being said, there are future plans to expand the application to an online version as well as for different platforms.

Summary of contributions

  • Major enhancement:

    1. Added a count command that allows the user to count the total number of recipes stored in CookBuddy.

      • What it does: It gives the user an ability to keep track of total number of recipes stored in CookBuddy.

      • Justification: This feature improves the product significantly because a user can know the number of recipes he/ she has. When a user have highly differentiated tastes and needs, knowing how many recipes he/ she has can let him/ her satisfy his/ her own particular wants.

      • Highlights: The user is able to view the number of recipes he/ she has. This enhancement also affects existing commands and commands to be added in future. It required an in-depth analysis of design alternatives. The implementation too was challenging as it required changes to existing commands.

  • Minor enhancement:

    1. Added a calorie attribute to a recipe class with the necessary restraints.

  • Code contributed: [Functional code and Test code contributed]

  • Other contributions:

    • Project management:

      • Helped in managing the team’s repository and pull requests. Commented on other’s PR if there are any improvements or suggestions to make.

      • Helped teammates with testing errors.

      • Helped in the documentations of the overall code.

      • Explained to teammates the flow of AB3 to better help them understand the code and therefore aiding them in implementing their own features.

    • Enhancements to existing features:

      • Wrote additional tests for existing features to increase coverage (Pull requests #301, #306)

      • Major refactoring of certain commands and packaging (Pull requests #17, #74, #147, #154)

    • Documentation:

      • Did cosmetic tweaks to existing contents of the User Guide: #295

      • Updated User Guide to include Product Information, Understanding CookBuddy’s GUI, FAQs, Command Summary and the Glossary (Pull requests #171, #279, #295, #298)

      • Updated Developer Guide to include Introduction, About this Document, Overview of Features, Implementation details of Count feature, Value Proposition, Non Functional Requirements, Glossary and Product Survey (Pull requests #297, #305, #313)

    • Community:

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.

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.