GithubHelp home page GithubHelp logo

simeonhhristov / recipe-recommender Goto Github PK

View Code? Open in Web Editor NEW
2.0 1.0 0.0 3.25 MB

Rule based system capable of recommending recipes based on ingredient input.

License: MIT License

JavaScript 83.18% HTML 16.82%
html5 javascript knowledge-graph nodejs nosql owl owl-ontology rule-based-classifier rule-based-system

recipe-recommender's Introduction

CookBuddy

CookBuddy is a rule based system which suggests it's user recipes they can cook depending on a available ingredients list.

  • Ingredients data includes: name, quantity and measuring units
  • Recipe data includes: name, required ingredients and directions

System structure

  • GraphDB - local NoSQL database representing our data in the form of a graph
  • SPARQL - Query language used to retrieve required data from GraphDB
  • Node.js server - local server used to receive post requests from the system's front-end, consume the sent data, compose SPARQL queries and use them on our GraphDB database.
  • Public folder - Contains a simple html page with javascript used to send requests to our node.js server

Ontology structure

Our ontology is comprised of 4 classes: Ingredient, Container, IngredientBasket, Recipe

  • Ingredient - A simple class that only determines the name of an ingredient
  • Container - Class that holds certain quantity of a measuringUnit for an Ingredient
  • IngredientBasket - Class that contains multiple Containers with Ingredients
  • Recipe - Class representing a recipe that requires multiple Containers with Ingredients

Requirements to use the system

node.js GraphDB

Use the system

To use the system you must first start the GraphDB server. (See online documentation)

You must create a new user for your GraphDB server and change the connection credentials in script.js

After that you can use sample_recipes.owl ontology to add some demo data.

Start the node.js server:

$ node script.js

This starts our node.js server on port 3000. It automatically connects to our GraphDB server which by default runs on port 7200.

Open a web browser and type in http://localhost:3000/public/. You can now use the system. ๐Ÿ‘จโ€๐Ÿ’ป๐Ÿš€

recipe-recommender's People

Stargazers

 avatar  avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.