/Covalence-Store

Team Project #1

Primary LanguageJavaScript

Group Project 1 - Covalence Online Store

Due: Monday, July 24, 2017

Info

  • You can find a visual mockup of this site here
  • This site will have the following pages:
    • A welcome page
    • A product list page - Shows tiles of product images, along with title, short description, and price
    • Contact us page - Should have a form where people can input their name, email, and a message. You should use sendgrid to email yourselves in response to this form being filled out.
    • A single product page - A page that shows the image, name, description, and price for the single product you are viewing and also an add to cart button
    • A checkout page - A page that shows the items you are purchasing and has a payment form
      • Should have fields for email, card number, CVC, expiration, AND billing zip code
      • After checkout, you should send an email to the customer thanking them for their purchase, complete with the list of items they purchased and the amounts
    • A navbar at the top of the site
      • Logo links to the home page
      • Apparel link
      • Misc link
      • Contact Us link
      • Cart/Checkout link (popover/collapsible is extra)

Requirements

  • Must use a MySQL database hosted in AWS RDS, and use stored procedures
    • Should have tables for Categories, Products, Purchases, and PurchasesProducts
    • Categories
      • id int AI
      • name varchar(50)
    • Products
      • id int AI
      • categoryid int FK for Categories id, cascade update, set null on delete
      • title varchar(50)
      • description varchar(255)
      • price decimal(5,2)
      • imageurl varchar(500)
    • Purchases
      • id int AI
      • price decimal(5,2)
      • stripetransactionid varchar(100)
    • PurchasesProducts
      • productid int FK for Product id, cascade update, cascade on delete
      • purchaseid int FK for Purchase id, cascade update, cascade on delete
  • Must use Express and NodeJS, hosted in AWS Elastic Beanstalk
  • Must use prerender.io
  • Must use Stripe for card processing
  • Must use Sendgrid or Mailgun for email sending
  • Must be responsive (look good on mobile and desktop)
    • Bootstrap's Grid System will be very helpful
    • You can find standalone grid systems if you don't want to use Bootstrap

Images

  • You will be given product images
    • You can save these into a folder named images in your client folder
    • For a file called waterbottle.png in the images folder, the product in the database should have an imageurl value of '/images/waterbottle.png'
  • You can use mustache in the src of an image tag to bind to the imageurl of the product
    • You may want to use a background-image instead

Other Hints

  • Think about $routeProvider and front-end route parameters to see whether you need separate views/controllers for apparel and misc or not