GithubHelp home page GithubHelp logo

nerdkitty1988 / ingestibles Goto Github PK

View Code? Open in Web Editor NEW
4.0 1.0 0.0 67.21 MB

This app is modeled from http://www.instructables.com. The name of this app is Ingestibles. The purpose of this app is to allow users to share recipes and save their favorites for later.

Shell 0.09% Dockerfile 0.16% Python 86.34% Mako 0.14% HTML 0.32% CSS 12.96%
food culinary recipes recipe-website

ingestibles's Introduction

Welcome to Ingestibles

Ingestibles, an Instructables clone, for people to explore, share, and create recipes. We make it easy to learn how to cook anything, one step at a time.

Live Link: Ingestibles

Ingestibles at a Glance

Home Page & All Recipes Page

On home page, users can peruse through different recipes, which are grouped by tags/categories.

Users can view all recipes by either clicking on the "Recipes" button in the nav bar or clicking on the user profile dropdown and clicking "All Recipes." Once on this page, user can see all the recipes ordered by date of post starting with the most recent.

Recipes at a glance

Profile & My-plate

Once logged in, user can click on the profile pic to access the dropdown links and navigate to one's own profile page, all recipes page, my-plate page including recipes created by logged-in user and user's favorite recipes, and the form to create a new recipe.

profileAndMyPlate at a glance

Single Recipe Page, Comments & Likes

Users can explore single recipe page and logged-in users can like and comment on all recipes.

singleRecipe at a glance

Search

Users can search recipes by their titles, ingredients, tags on any page through nav bar.

search at a glance

Recipes

Logged-in users can create recipes, edit and delete their own recipes. As each recipe would have customized number and content of ingredients, steps and tags, a dynamic recipe creation form and a pre-filled recipe edit form will capture the difference and allow customization.

Edit Recipe:

Edit Recipes at a glance

Technologies used

  • Python
  • Flask
  • PostgreSQL
  • SQLAlchemy
  • HTML
  • Vanilla CSS
  • JavaScript
  • React
  • Redux
  • AWS S3

The Virtual DOM in React allows dynamic and interactive components. The following code is used to dynamically display tags and manage their states per change of input, in the pre-filled recipe edit form.

Dynamically displaying tags at Recipe Edit Form
{[...Array(tagCounter)].map((el, i) => (<div className='createRecipeEl' key={`tag${i + 1}`}>
                        <label className='editRecipeLabel'>Tag #{i + 1} </label>
                        <input
                            className='listingInput'
                            type="text"
                            defaultValue={tags[`tag${i+1}`]}
                            onChange={(e) => {
                                setTags(tags=>{
                                tags[`tag${i+1}`] = e.target.value
                                return tags
                                })
                            }}
                            placeholder='At least 1 Tag'
                        />
                    </div>))}

Future Implementations

  • View other users' Ingestibles pages including their profiles and recipes
  • Follow other users

ingestibles's People

Contributors

aivnerrad avatar gobugi avatar mayuwish avatar nerdkitty1988 avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar

ingestibles's Issues

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.