Skip to content

MacKLess/unbelievable_books

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Unbelievable Books

Epicodus Project in Ruby on Rails, December 4, 2017

By Kelsey Langlois & L. Devin MacKrell

Description

This is a mock website for an online book store. It has basic user authentication, so that only logged in users may review products, and only administrators can create, edit, and delete products.

Installation and Setup

To install on your own machine, follow the instructions below:

  • Clone this repository.
  • Create a .env file and format as follows:
    PUBLISHABLE_KEY='[Your Stripe Publishable Key]'
    SECRET_KEY='[Your Stripe Secret Key]'
    
    CURRENCYLAYERKEY='[Your Currency Layer Key]'
    AVATAX_KEY='[Your Avatax API Key]'
    
  • Run the following commands in the project root directory:
    bundle update
    rake db:setup
    rails db:seed
    rails s
    
  • Open localhost:3000 in your web browser
  • To give an account admin privileges:
    • In the project root run rails c
    • Then run:
      User.find_by(email: "[account email address]").update(admin: true)
    • The account will now have admin access to the app.

Specifications

  • Products
    • All users may view products
    • Administrators may add, edit, and delete products
    • Administrators may set a product on sale until a specified date
    • Users can raincheck a product for later purchase
    • Users can sort product index by one of three methods: alphabetical, price (low to high), and price (high to low)
  • Accounts
    • Accounts and Users have a one-to-one association
    • Administrators may change an account's "Preferred" status
      • Preferred accounts receive a 10% discount on non-sale items
  • Users
    • Users may be either standard user or Admin
    • Users may log in with email and password
  • Orders
    • Orders are created and edited when a user updates or purchases their cart
    • Orders are charged using Stripe
    • At checkout, total order cost is displayed in the following currencies:
      • US Dollars
      • Canadian Dollars
      • Euros
      • Great British Pounds
      • Polish Złoty
    • At checkout, Seattle sales tax is added to the order total
    • An order's status changes from "Cart" to "Placed" when user is charged for the order at checkout
    • Orders may not be placed if there is not sufficient stock for all order items
    • User receives a confirmation email once their order has been placed
  • Order Items
    • Order items can be moved from Raincheck to Cart
    • Order items reserve the price of the product at time they are added to cart
  • Reviews
    • Reviews cannot be added unless user has purchased the product
    • Users may edit and delete their own reviews
    • Administrators may delete any user reviews
    • All users can view reviews

Known Bugs:

  • When updating a product to "Featured," if there are no other featured products AJAX will not display the "Featured" section without a page refresh.
  • Products updated to "On Sale" will not display in the "On Sale" section of the homepage without a page refresh.
  • If cart is empty, refresh is required to display change of item from Raincheck to Cart.

Support and contact details

Please contact kels.langlois@gmail.com or ldmackrell@gmail.com with questions, comments, or issues.

Technologies Used

  • Ruby
  • Rails
  • Bootstrap
  • Devise
  • Stripe
  • AJAX

License

Copyright (c) 2017 Kelsey Langlois & L. Devin MacKrell

This software is licensed under the MIT license.

About

Epicodus paired week long project Rails Week 3

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published