Spring 2015

Lab08
Biag's Online Store

Due: Friday May 08, 2015 11:59 PM

Lab08 - Biag's Online Store

Requirements

Products and Users are stored in a database10 pts
Products are listed and have an add to cart button or link10 pts
Products have a details (show) page with an add to cart button or link10 pts
New products can be added (includes validation)10 pts
Products can be edited (includes validation)10 pts
Products can be destroyed10 pts
Users CRUD is present and fully functioning10 pts
All user pages and products new, edit, and destroy require authentication to access10 pts
Add to cart buttons or links function10 pts
Cart management page functions10 pts
Total100 pts

Resources

Objective

Create an online store with a shopping cart and a database data store

Instructions

Biag, your least favorite client, has a new project for you and the price he's offering is too good to turn down (100pts!). He also decided that databases aren't witchcraft and thinks one should be used this time.

For this project Biag has decided that he wants to be able to sell products online. The products he wants to sell will be varied but all will have a name, a description, and a price (see attached SQL statements).

Basics

Biag would like to have full control over what products are in the database but still isn't very good with computers so a full, friendly CRUD will need to be created for the products that Biag can use to manage his store.

The CRUD for products will need to support authentication so that anyone can access the products list and details pages but only authenticated users can access the new, edit, and destroy pages. That, of course, means that you'll also need an authenticated users CRUD for Biag to use to manage who can login.

Store

Everywhere that a product is shown to a regular user there should be an add to cart button that the user can use to add a product to their shopping cart (sessions make good shopping carts).

The application should also include a page that allows the user to view their cart and the current total for all of the products that are in the cart. Users should also be able to remove items from their cart. It's not necessary to provide the user with a quantity for items in their cart but they should be able to add the same product to the cart more than once.

Checkout

Biag isn't sure yet how he will be handling credit card charges so he doesn't want to talk about the checkout functionality yet. For the time being, if he can manage products and users, and users can build and work with a shopping cart, Biag will be happy.