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 favourites feature.
-
What it does: allows the user to save their favourite recipes to a separate list.
-
Justification: This feature improves the product significantly because a user can have quick access to all of their favourite recipes
-
Highlights: This enhancement was originally unsupported by the AB4 code; it is a completely new component feature.
-
-
Code contributed: https://github.com/CS2103-AY1819S1-W10-4/main/pull/255
-
Minor enhancement: added a surprise command that surprises the user with a random recipe.
-
Code contributed: https://github.com/CS2103-AY1819S1-W10-4/main/pull/181
-
Other contributions:
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 Surprise command
Surprise: surprise
Displays a random recipe for the user. If you cannot make up your mind,
why not key this in for a surprise?
Format:
surprise
Explanation of Favourite command
Add recipe to favourite: favourite
Add a recipe to their favourites list.
Format:
favourite INDEX
Favourite Recipe Commands (Only applicable in favourites context)
List favourite recipes: list
Show all favourite recipes.
Format:
list
Display favourite recipe details: select
View a favourite recipe and its details from the list.
Format:
select INDEX
Find favourite recipe: find
Show favourite recipes related to the keyword(s).
Keywords include but not limited to cuisines (Indian, Japanese),
dietary types (Vegetarian, Halal),
ingredients (egg, broccoli),
preparation time (30M, 1H40M)
and difficulty (1, 2, …, 5).
Format:
find KEYWORD…
Examples:
-
find rice asian 3
-
find korean kimchi staple
Delete favourite recipe: delete
Delete favourite recipe in favourites according to its index in the last shown list.
Format:
delete INDEX
Clear all favourite recipes: clear
Clears all favourite recipes in favourites.
Format:
clear
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. |
Favourites list
This feature allows users to have a quick reference to all of their favourite recipes. Users are able to add recipes that they like a lot, or that they cook often to the favourites list. Users are also able to search, display details, and remove any entry within the favourites list.
Model
The model is simply a UniqueList of Recipes.
Logic
To access favourite context commands, context has to be switched to "Favourites" via the command -favourite
. From
there, the Favourite commands can be used and AppContentParser will redirect the different commands to their
respective CommandParsers.favourite
command for adding recipes to the Favourites list is done in recipe context.
Adding to Favourites
While browsing the recipes in the recipe context, and when a user likes a recipe at a particular INDEX
, they can
execute the favourite INDEX
command. The recipe selected would be copied from the recipe model, and added to an array
list in the favourites model.
Selecting a Favourite Recipe
While browsing the favourite recipes in the favourite context, if the user wishes to view the details of the recipe,
they can execute the select INDEX
command. From the array list in the favourites model, the 1 based index will be
accessed, and its details will be displayed in the panel.
Finding a Favourite Recipe
The user can also browse and search favourite recipes by tag. Similar implementation as 'find' command in recipe context.
Deleting a Favourites Recipe
While browsing the recipes in the recipe context, and when a user wants to remove a recipe at a particular INDEX
,
they can execute the delete INDEX
command. From the array list in the favourites model, the index will be accessed,
and the recipe will be deleted form the favourites model.
Clearing Favourites
The clear command clears the Favourites List of all Recipes.
The command replaces the existing UniqueList of favouriteModel
with a new empty UniqueList.