American Journal of Intelligent Systems

p-ISSN: 2165-8978    e-ISSN: 2165-8994

2017;  7(3): 86-89

doi:10.5923/j.ajis.20170703.10

 

Sous Chef - A Smart Way to Search for Recipes

Adithya Shetty, Chinmaya S. Pai, Hash Hash Abdulla, Larwin D'Cunha, Ms Smitha V. George

Department of Computer Science and Engineering, St. Joseph Engineering College, Vamanjoor, India

Correspondence to: Adithya Shetty, Department of Computer Science and Engineering, St. Joseph Engineering College, Vamanjoor, India.

Email:

Copyright © 2017 Scientific & Academic Publishing. All Rights Reserved.

This work is licensed under the Creative Commons Attribution International License (CC BY).
http://creativecommons.org/licenses/by/4.0/

Abstract

Sous Chef is an android application which follows a different approach to searching for recipes. It is a uniquereverse recipe search engine which searches for recipes based on the ingredients. In addition to its unique recipe searching feature, the mobile application also has various other features like ratings and reviews for recipes, a favorite list of recipes for faster access and also the regular way of directly searching for recipes. The application displays a list of recipes by prioritizing the recipes that make efficient use of the ingredients.

Keywords: Android application, Unique reverse recipe search engine, Searches for recipes based on ingredients

Cite this paper: Adithya Shetty, Chinmaya S. Pai, Hash Hash Abdulla, Larwin D'Cunha, Ms Smitha V. George, Sous Chef - A Smart Way to Search for Recipes, American Journal of Intelligent Systems, Vol. 7 No. 3, 2017, pp. 86-89. doi: 10.5923/j.ajis.20170703.10.

1. Introduction

A Sous-Chef is a chef who is "the second in command in a kitchen; the person ranking next after the head chef. Hence, this application acts as your assistant helping you to choose the best recipe.
The android application Sous Chef is used to make it easier for the users to search for recipes. The application will allow the users to enter a list of ingredients and a list of recipes that can be cooked with those ingredients will be displayed. This application will be of great help to amateur chefs. The main advantage of our android application is that it saves the user from going to a shop and buying a lot of ingredients for just a single recipe. Instead, he or she could just check for the recipes that can be cooked with ingredients that are currently available at home.
When people search for recipes, they choose a recipe, then look at it’s ingredients and go grocery shopping for those ingredients. This takes up a lot of time and also a lot of money is spent. There are so many dishes you could cook with the ingredients you have at home. What this application does is, it searches for the recipes based on the ingredients that people currently have in their homes.

2. Related Work

A number of applications or websites provide a classical way of searching for recipes [1] where the user enters the name or the keyword of the recipe he/she wants to cook and the application or the website will display details of that recipe. The problem here is that, the user may not have all the ingredients for that recipe. And he or she may have to go grocery shopping to buy all those ingredients. This is both a waste of time and money. Sous Chef, however, asks the users to select the ingredients they have in their kitchen and it will display all the recipes that can be cooked with those ingredients eliminating the need to go grocery shopping and wasting money.

3. System Architecture

The system architecture comprises of 3 main components: The mobile application, the web server and the database.
The mobile application is an application running on an android device with which the user directly interacts. The touch screen interface of the device makes the interaction with the mobile device much easier and user friendly. The mobile application consists of mainly the user interface design, some application logic. It does not however store any data about recipes or ingredients.
The Web Server maintains all the details about recipes and ingredients. It is also used to add new recipes and ingredients and also to update existing recipes and ingredients. The adding and updating of recipes is done by the system admin.

4. Modules

The application consists of various modules. Three of the modules are: Login module, Search module and Result module.
Login module is used for logging into the application. Users login username and corresponding password is checked. If they do not match, then login is not authorized. The user may then register by entering the necessary details about the user. The username is unique for each user.
The search module is used to search for recipes and then match with the best possible recipes based on the ingredients selected. Recipes that are missing 1 or 2 ingredients are also matched to provide a more wider range of output.
Finally, the result module is used for prioritizing the result and also to display the result. The list of recipes are prioritized by giving high priority to those recipes that make the most efficient use of the ingredients, i.e, recipes that do not use all of the ingredients selected are listed first followed by the recipes that use all the ingredients selected and finally followed by the recipes that are missing either 1 or 2 ingredients.
Figure 1. Architectural Design of the System
Figure 2. Modular Design Diagram representing different modules

5. Implementation and Results

For the development of this mobile application, we made use of Android Studio IDE. Android Studio is the official integrated development environment (IDE) for developing for the Android platform. It is freely available and is designed specifically for Android development. To manage the database on the server, phpmyadmin is used. phpMyAdmin is a free and open source tool written in PHP intended to handle the administration of MySQL or MariaDB with the use of a web browser. It can perform various tasks such as creating, modifying or deleting databases, tables, fields or rows; executing SQL statements; or managing users and permissions.
There are 2 main hardware components of the system. One is the mobile device which runs the android application. And the other is a Personal Computer, which is used to manage the server, make modifications to the application and keep updating the database.
The android device should be running on a minimum OS version of 4.0 (Ice Cream Sandwich) with a minimum free space of 5MB. For smooth running of Android Studio on the PC, a minimum of 8GB RAM is recommended.

5.1. Pseudo Code for Selecting Ingredients

5.2. Pseudo Code for Searching and Viewing Recipes

Figure 3 shows two snapshots of the application depicting how selecting a list of ingredients gives a list of recipes that can be cooked with those ingredients as output. Here, the user first selects multiple ingredients by adding them to the list one by one. After selecting all the ingredients, the user taps on the search button. The application will then search for the recipes that can be cooked with those ingredients and displays them in a prioritized manner. The recipe list displayed is in the order showing the recipe that makes efficient use of the ingredients first. For the convenience of the user, the list will also contain those recipes that are missing 1 or 2 ingredients. The recipes are categorized into veg and non veg which helps the users to filter out the results.
Figure 3. Results obtained from the application

6. Programming Languages

6.1. PHP

PHP is a server side scripting language designed for web development but also used as a general purpose programming language. Originally created by Rasmus Lerdorf in 1994, the PHP reference implementation is now produced by The PHP Group. PHP originally stood for Personal Home Page, but it now stands for the recursive backronym PHP: Hypertext Preprocessor.
PHP in our project is used to fetch data from the database, convert the result obtained to JSON format and return them to the mobile application where the JSON data is parsed and used to compute and display appropriate results.

6.2. Java

Java is a general-purpose computer programming language that is concurrent, class-based, object-oriented, and specifically designed to have as few implementation dependencies as possible. It is intended to let application developers "write once, run anywhere" (WORA), meaning that compiled Java code can run on all platforms that support Java without the need for recompilation. Java applications are typically compiled to bytecode that can run on any Java virtual machine (JVM) regardless of computer architecture.
The platform for app development in Android is Java. Hence, Java is used to code the logic of the android application, what happens on a button click, fetching data from the server and so on.

7. Conclusions

Sous Chef is like your personal assistant in kitchen. It eliminates the problem where a user might not have an ingredient for a particular recipe. There’s no need to go buy lots of ingredients just for one recipe when you can find the perfect recipe using what you already have at home. The user can maintain a favorite list of recipes for fast access to recipes. The user can select multiple ingredients in a convenient way. The application then displays the list of recipes in an order which makes efficient use of ingredients.
Sous Chef is also a practical way to save money. Take full advantage of ingredients you already have, and naturally buy less groceries.

References

[1]  Dave Smith and Jeff Friesen's (2011) "Android Recipes A Problem Solution Approach" – Apress Publications.
[2]  Reto Meier (2009) "Professional Android Application Development" - Wiley Publishing Inc.
[3]  Online Available: http://undergraduateresearch.ucdavis.edu/urcConf/write.html
[4]  Online Available: http://ieeexplore.ieee.org
[5]  Online Available: https://www.tutorialspoint.com/android/
[6]  Online Available: www.stackoverflow.com