Git Product home page Git Product logo

kitchenaid's Introduction

Ada Cooks!

The goal of this project is to build an online cookbook application where users can manage Recipes and Ingredients, create Cookbook collections of different Recipes, and keep track of their Ingredients.

Learning Goals

  • Explore advanced ActiveRecord relationships like has_many through: and has_and_belongs_to_many.
  • Explore controlling access to functionality based on User state and/or role.
  • Explore working with image uploads with CarrierWave.
  • Explore object factories using factory_girl as a means of simplifying object setup in tests.

Project Baseline

We are going to try something new with this project. When you've accomplished all of the baseline requirements, please issue a PR back to the project master. We will review and merge your baseline, but you don't need to wait for that to happen before helping your classmates and moving onto the project requirements.

We're doing this to make the final project easier to code review. Because the baseline includes all of the Rails setup and boilerplate, issuing (and merging) a PR at the beginning will remove those files from the Pull Request interface for the PR you'll open at the end of the project.

The baseline requirements are...

  • a ruby-gemset and ruby-version.
  • a new rails 4.2.2 application.
  • rspec setup in document format (hint: use a .rspec config file and the rspec_rails gem)
  • factory_girl included and set up to work with rspec (hint: use the factory_girl_rails gem)
  • code coverage reporting (hint: user simplecov)

User Stories

As any User, I can...

  • search by the name of an Ingredient and get related Recipes back.
  • Recipes
    • view an alphabetical list of all Recipes
    • view the details of a Recipe, inluding...
      • a link to the User profile of the person who created the Recipe
      • links to the Ingridient profile for all associated Ingredients
  • Ingredients
    • view an alphabetical list of all Ingedients
    • view the details of an individual Ingredient, including...
      • a list of links to Recipes associated with the Ingredient

As an anonymous User I can...

  • register a new User account
  • Log In to an existing User account

As a Logged In User I can...

  • Log Out
  • Cookbooks
    • See a list of Cookbooks I've already created, including...
      • The number of Recipes associated with the Cookbook
      • The number of unique Recipes associated with the Cookbook
    • See the details of a specific Cookbook, including...
      • a list of links to the Recipes associated with the Cookbook
      • a link to remove (unassociate) a Recipe from the Cookbook. This does not destroy the Recipe.
    • Create a new Cookbook, associated with my User account, with...
      • a name (required)
      • a description (optional)
    • Destroy an existing Cookbook
      • Destroying a Cookbook does not destroy the Recipes, just the associations.
    • Edit an existing Cookbook's name and description information.
  • Recipes
    • Create a new Recipe, optionally associated with one of my existing Cookbooks, with...
      • a name (required)
      • a description (optional)
      • an uploaded image of the prepared Recipe (optional)
      • a preparation (required)
      • one or more Ingredients (required)
    • Edit an existing Recipe that I created by...
      • Changing the name, description, uploaded image, and/or preparation
      • Removing or Adding Ingredients
    • Destroy an existing Recipe that I created
      • Destroying a Recipe does not destroy the Ingrdients, just the associations
    • From a Recipe's detail page, I can save the Recipe to an existing Cookbook
  • Ingredients
    • Create an Ingredient with...
      • a unique name (required)
      • an uploaded image of the Ingredient (optional)
    • Edit the name and/or the uploaded image of an existing Ingredient that I created
    • Destroy an existing Ingredient that I created (this does not destroy any associated Recipes)

Other Requirements

  • A minimum 80% test coverage for all Models and Controllers.

kitchenaid's People

Contributors

jnf avatar

Watchers

James Cloos avatar Kyna Nguyen 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.