Giter Site home page Giter Site logo

flatiron-store-project-staff's Introduction

Flatiron Store on Rails

Overview

We're going to build an e-commerce site! We're going to make an online store where users can browse items, put items in their carts, and buy items, which changes our inventory.

Instructions

Users

  1. Have just an email and password
  2. Should be able to log in and log out
  3. Also sign up
  4. Note: You must use the Devise gem to set up user for tests to pass.
  5. You may find that you're missing some seed data. Look at the error messages you get carefully and don't be surprised if you have to add some seed data

Items

  1. List of available items whether you are logged in or not
  2. If logged in, each item should have an "Add to Cart" button
  3. When the user adds an item to the cart it should show them their current cart

Cart/Checkout

  1. Users should be able to checkout from their cart
  2. This shows them their cart afterwards, and deducts inventory from each item
  3. Prices should be in the $XX.XX format
  4. The Checkout process should set that current cart to a status of "submitted"

Headers/Nav

  1. Users should know who they are logged in as
  2. Users should be able to sign in/out from the navigation bar
  3. Users should always be able to go "home"
  4. If the user has a current cart, there should be a "Cart" link to their current cart

Specifying custom class names and foreign keys

Imagine a simple dating app that tracks relationships between its users. In order to retrieve a user's current relationship from the database, it would make sense to call something like user.current_relationship. However, Active Record doesn't intuitively understand that it should map the belongs_to :current_relationship association to the Relationship model (or the corresponding relationship_id column in the database). To explicitly point it at the correct model, we can use the :class_name and :foreign_key attributes like so:

class User < ActiveRecord::Base
  belongs_to :current_relationship, class_name: 'Relationship', foreign_key: 'relationship_id'
end

For more information, check out :class_name and :foreign_key in the RailsGuides entry on Active Record Associations, this StackOverflow post, and the models/post.rb section in this SitePoint refresher.

Resources

View Flatiron Store Project on Learn.co and start learning to code for free.

flatiron-store-project-staff's People

Contributors

ahimmelstoss avatar maxwellbenton avatar peterbell avatar annjohn avatar gj avatar irmiller22 avatar danielseehausen avatar aturkewi avatar fs-lms-test-bot avatar pletcher avatar deniznida avatar kthffmn avatar sarogers avatar fislabstest avatar

Watchers

James Cloos avatar Kevin McAlear avatar  avatar Mohawk Greene avatar Victoria Thevenot avatar Belinda Black avatar Bernard Mordan avatar raza jafri avatar  avatar Joe Cardarelli avatar  avatar Sophie DeBenedetto avatar  avatar Antoin avatar Alex Griffith avatar  avatar Amanda D'Avria avatar  avatar Nicole Kroese  avatar Kaeland Chatman avatar Lisa Jiang avatar Vicki Aubin avatar  avatar  avatar  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.