Git Product home page Git Product logo

lauraaddams / betsy Goto Github PK

View Code? Open in Web Editor NEW

This project forked from enigmagnetic/betsy

0.0 2.0 0.0 12.86 MB

Users can shop for paranormal themed products, create orders, or create their own merchant shop. Focus on test driven development, mobile first responsive design, and high-impact puns. 4-person Team Project at Ada Developers Academy.

Home Page: https://spooksy.herokuapp.com/

Ruby 4.46% JavaScript 31.42% CSS 59.37% HTML 4.75%

betsy's Introduction

bEtsy

[b]Etsy will be an online store where a wide variety of products can be listed and sold by any user. Focus on reinforcing the major components of Rails, Model Validation, as well as introducing some more complex logic such as user authentication.

Project Learning Goals

  • Core comprehension of:
    • Routes
    • Controllers
    • Models
    • Views
  • User based application logic
  • User authentication
  • Agile practices
  • Feature branch management with Git
  • Group project ownership

General Requirements

  • Unit tests and/or specs for
    • Controllers
    • Models
  • Test code coverage (using SimpleCov - remember me!)
    • 90% for all controller and model classes

User Stories

Guest User (Unauthenticated)

As a guest to the website (not signed in) I can:

  • Browse all products
  • Browse products by category
  • Browse products by merchant (users)
  • View any individual product with additional details
  • Leave a review for a product providing:
    • A Text review
    • A rating out of 5
  • Add in-stock products to my cart
  • Remove products from my cart
  • Change the quantity of an existing product in my cart
  • Purchase the items in my cart, providing:
    • Email Address
    • Mailing Address
    • Name on credit card
    • Credit card number
    • Credit cart expiration
    • Credit Card CVV (security code)
    • Billing zip code
  • Purchasing an order makes the following changes:
    • Reduces the number of inventory for each product
    • Changes the order state from "pending" to "paid"
    • Clears the current cart
  • After purchasing an order, I can view a confirmation screen including:
    • Each item in the order with a quantity and line-item subtotal
    • A link to the item description page
    • Order total price
    • DateTime the order was placed
    • The current status of the order
  • Sign up to be a merchant using OAuth
    • Every merchant must have a username
  • Sign in to my merchant account using OAuth

As a guest I cannot:

  • Add products to the cart that are out of stock
  • View any link or page to manage any products
  • View any of the account pages

Authenticated Users

As a signed-in user, I can:

  • Do everything a guest user can do except for sign up and sign in
  • Sign out
  • Create new categories (categories are shared between all merchants)
  • Create a new product providing:
    • name
    • description
    • price
    • photo URL
    • stock
  • Assign my products to any number of categories
  • Retire a product from being sold, which hides it from browsing
  • View an account page to edit/update my existing products
  • View an account page showing my order fulfillment
  • On the order fulfillment page:
    • Total Revenue
    • Total Revenue by status
    • Total number of orders by status
    • Filter orders displayed by status
    • Link to each individual order
    • A list of orders including at least one of my products:
      • Each order item sold by me with a quantity and line-item subtotal
      • A link to the item description page
      • DateTime the order was placed
      • Link to transition the order item to marked as shipped
      • The current status of the order ("pending", "paid", "complete", "cancelled")
  • View an individual order to see the user's:
    • Name
    • Email address
    • Mailing address
    • Last four digits of their credit card
    • Credit card expiration date

As a signed-in user, I cannot:

  • Review my own products
  • View order items from a shared order that belong to another merchant
  • View another users private data (i.e. order fulfillment or product management)

Model Validations

Many of our models will have attributes that are required for our application to use and display data consistently. Each model will have attributes with requirements for a valid record. The requirements are summarized below:

Merchant

  • Username must be present
  • Username must be unique
  • Email Address must be present
  • Email Address must be unique

Product

  • Name must be present
  • Name must be unique
  • Price must be present
  • Price must be a number
  • Price must be greater than 0
  • Product must belong to a User

Order

  • An Order must have one or more Order Items

OrderItem

  • Must belong to a Product
  • Must belong to an Order
  • Quantity must be present
  • Quantity must be an integer
  • Quantity must be greater than 0

Review

  • Rating must be present
  • Rating must be an integer
  • Rating must be between 1 and 5

betsy's People

Contributors

averikitsch avatar lauraaddams avatar jocegonz avatar enigmagnetic avatar kariabancroft avatar hamled avatar cheezitman avatar jnf avatar

Watchers

James Cloos 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.