PROJECT: CookBuddy


Overview

CookBuddy is a desktop recipe manager for students living in on-campus accommodation, and who enjoy cooking, and are also familiar with the command line.

Users may interact with CookBuddy through a Command Line Interface (CLI), and it has a Graphical User Interface (GUI) created with JavaFX.

CookBuddy is written in Java, and has about 10 kLoC.

Summary of contributions

  • Major enhancement: added Image reading, processing and writing

    • What it does: allows users to add images to their recipes. Images are saved in a data folder local to CookBuddy, and are named with a UID (unique identifier).

    • Justification: Users should be able to see what the final dish looks like, and an image goes

    • Highlights: This enhancement 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.

    • Credits: {mention here if you reused any code/ideas from elsewhere or if a third-party library is heavily used in the feature so that a reader can make a more accurate judgement of how much effort went into the feature}

  • Minor enhancement: added a history command that allows the user to navigate to previous commands using up/down keys.

  • Code contributed: [Code Contributed]

  • Other contributions:

    • Project management:

      • Managed releases v1.3 - v1.5rc (3 releases) on GitHub

    • Enhancements to existing features:

      • Updated the GUI color scheme (Pull requests #33, #34)

      • Wrote additional tests for existing features to increase coverage from 88% to 92% (Pull requests #36, #38)

    • Documentation:

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

    • Community:

      • PRs reviewed (with non-trivial review comments): #12, #32, #19, #42

      • Contributed to forum discussions (examples: 1, 2, 3, 4)

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

      • Some parts of the history feature I added was adopted by several other class mates (1, 2)

    • Tools:

      • Integrated a third party library (Natty) to the project (#42)

      • Integrated a new Github plugin (CircleCI) to the team repo

{you can add/remove categories in the list above}