Skip to content

lvlivingston/bamabargainbarn

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

99 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Banner Photo

An eCommerce web application by Leah Livingston


Project Description

🐴 Howdy 🤠 and welcome to the "Bama Bargain Barn" an online eCommerce web application where you can buy from our current inventory of Alabama Football merchandise cough Roll Tide cough .

Click Here to Check out the Shop Now


Tech Stack

It's a responsive eCommerce web application (soon to be hosted on Heroku) utilizing Django with Python, PostgreSQL, HTML, CSS, and the payments API from Stripe.

API Details

The Stripe payments API is connected via test mode only. Currently, I have successfully connected to the API, setup a shopping cart, checkout, and pay views. With the test credit card information, it's possible to see the successful and cancel payment paths, but there is a small issue with the webhook that needs to be debugged to update inventory and clear out the shopping cart after purchase.

API Details


ERDs

ERD


Restful Routing Chart

HTTP METHOD URL CRUD Response Notes
full index of items
GET /products Read View Products retrieves available products in database
GET /products/:product_id Read View Product Details retrieves detailed information on product
POST /cart Read View Cart retrieves items in shopping cart
POST /cart/add/:product_id Create Add to Cart adds a product to shopping cart
POST /cart/update/:order_id Update Update Quantity updates quantity of product in shopping cart
POST /cart/delete/:order_id Delete Remove Item removes item from shopping cart
GET /cart/checkout/:order_id Read Review Order retrieves order to provide shipping details
GET /stripe-webhook Read Stripe Webhook calls payment API to process payment
GET /cart/checkout/:order_id/pay Read Pay retrieves Stripe Checkout to pay
GET /cart/checkout/:order_id/success Read Order Confirmation confirms order was received
GET /cart/checkout/:order_id/cancel Read Leave Checkout retrieves "Review Order" view

Wireframes (Mobile View)

Mobile View

Mobile Wireframes

Desktop View

Desktop Wireframes


Credit

A big thank you to Weston Bailey, April Gonzalez, Tom Kolsrud, & Ben Manley for your support, as well as the University of Alabama football dynasty and the Legend, Nick Saban, for the inspiration. Roll tide baby!


Next Steps

Style
  • Clean up CSS and responsiveness for better user experience in mobile and desktop
  • Include a 'Brand Kit' for future development use
  • Improve CSS styling following said 'Brand Kit'
  • Include newsletter sign-up option in top navigation
Functionality
  • Complete backend inventory logic to ensure inventory is correct after purchases (webhook issue)
  • Include ability to create a new user profile upon purchase of a product
  • Include ability for user to view their profile
  • Include ability for user to view past purchases
  • Include ability for user to log-out
  • Includes newsletter sign-up functionality
  • Include functionality that allows each user to only see their own data
  • Include ability to log-in via oAuth in top navigation

Click Here to Check out the Shop Now


Planning Materials & Original Pitch below

Brainstorm

I utilized utilized MIRO for brainstorming, strategizing, planning, and tracking development progress.

Planning


Tech Stack

My goal for the capstone project was to add a well-rounded fourth piece to my Github portfolio. The idea was to create a responsive eCommerce web application hosted on Heroku utilizing Django with Python, React, PostgreSQL, HTML, CSS, and the payments API from Stripe.

API Details

The Stripe payments API will be connected via test mode only. Currently, I have successfully connected to the API, but haven't created the user view yet.

API Details


Description

The end result will be a responsive website with the ability to purchase one or several products for sale at the "Bama Bargain Barn". The project is designed to be simple, while showing off my new skills in:

  1. Django
  2. Python
  3. PostgreSQL, and
  4. eCommerce functionality through utilization of the Stripe payments API.

Wireframes (Mobile View)

Wireframe Pitch


ERD

ERD Pitch


Restful Routing Chart

HTTP METHOD URL CRUD Response Notes
full index of items
GET /products Read View Products retrieves available products in database
GET /products/:product_id Read View Product Details retrieves detailed information on product
POST /cart Create Add to Cart add product to shopping cart
GET /checkout Read Review Order review order, provide shipping details, and pay
GET /fetch-stripe-data Read Connect to Stripe calls payment API to process payment

Sprint Schedule

The projected schedule will be as follows:

  • Day 1 (12/14 - Thurs.): Complete file structure setup
  • Day 2 (12/15 - Fri.): Complete models, urls, views, and test data setup
  • Day 3 (12/16 - Sat.): Complete necessary html and css for basic navigation
  • Day 4 (12/17 - Sun.): Create Product, Shopping Cart, and Checkout views
  • Day 5 (12/18 - Mon.): Create "Pay Now" button and connect Stripe payments API
  • Day 6 (12/19 - Tues.): Complete eCommerce functionality (data connection and styling)
  • Day 7 (12/20 - Wed.): Polish CSS styling
  • Day 8 (12/21 - Thurs.): Presentation

MVP Goals

User Stories
  • AAU, I want to see products for sale on a landing page without having to log-in.
  • AAU, I want to see how many items are left in the inventory for each product.
  • AAU, I want the ability to add a product to the shopping cart without having to log-in.
  • AAU, I want the ability to delete a product to the shopping cart, also without having to log-in.
  • AAU, I want the ability to leave the shop url and come back within 24h to find my items still in the shopping cart.
  • AAU, I want the ability to purchase a product.
Style
  • Include basic CSS to successfully utilize the web application
  • Include top navigation, including: 'Products' and 'Shopping Cart' page links
  • Include two individual page views, including: 'Proucts' and 'Shopping Cart' screens
  • Create Pay Now button on Checkout page
  • Include visual optimization for mobile view
Functionality
  • Include shopping cart functionality
  • Include Stripe payments API for ability to purchase a product
  • Connect Pay Now button on Stripe Payments API to see what view is provided.

Stretch Goals

User Stories
  • AAU, I want the ability to create a profile once I'm ready to purchase something.
  • AAU, I want the ability to log-in and reference my past purchases.
  • AAU, I do not want other users to see my purchase history.
  • AAU, I the ability to sign-up for a newsletter to get email updates about new products.
  • AAU, I want the ability to log-out.
Style
  • Include a 'Brand Kit' for future development use
  • Include CSS styling following a 'Brand Kit'
  • Include visual optimization for desktop and tablet
  • Include newsletter sign-up option in top navigation
Functionality
  • Include ability to create a new user profile upon purchase of a product
  • Include ability for user to view their profile
  • Include ability for user to view past purchases
  • Include ability for user to log-out
  • Includes newsletter sign-up functionality
  • Include functionality that allows each user to only see their own data
  • Include ability to log-in via oAuth in top navigation

About

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published