Giter Site home page Giter Site logo

it202-003's Introduction

Hey there! 👋

My Toolbelt


it202-003's People

Contributors

cjdomacena avatar

Watchers

 avatar

it202-003's Issues

User will be able to logout

Must complete:

  • Logging out will redirect to login page
  • User should see a message that they’ve successfully logged out
  • Session should be destroyed (so the back button doesn’t allow them access back in)

Form

Must Complete:

  • User can login with email or username
    • This can be done as a single field or as two separate fields
  • Password is required

Form Fields

Must Complete:

  • Username, email, password, confirm password (other fields optional)
  • Email is required and must be validated
  • Username is required
  • Confirm password’s match

User will be able to purchase items in their Cart

  • Create an Orders table (id, user_id, created, total_price, address, payment_method)

  • Payment method will simply record (Cash, Visa, MasterCard, Amex, etc) We will not be recording CC numbers or anything of that nature, this is just a sample and in real world projects you’d commonly use a third party payment processor

  • Create an OrderItems table (id, order_id, product_id, quantity, unit_price)

  • #107

  • User will be asked for their Address for shipping purposes

  • #108

Order Confirmation Page

  • Show the entire order details from the Order and OrderItems table (similar to cart)
  • Displays a Thank you message

User will be able to add items to Cart

  • Cart will be table-based (id, product_id, user_id, desired_quantity, unit_cost, created, modified)
  • Adding items to Cart will not affect the Product's quantity in the Products table

User will be able to register a new account

Must complete:

  • Form Fields
  • Users Table
  • Password must be hashed (plain text passwords will lose points)
    • Id, username, email, password (60 characters), created, modified
  • Email should be unique
  • Username should be unique
  • System should let user know if username or email is taken and allow the user to correct the error without wiping/clearing the form

User will be able to login to their account (given they enter the correct credentials)

Must complete:

  • #22
  • User should see friendly error messages when an account either doesn’t exist or if passwords don’t match
  • Logging in should fetch the user’s details (and roles) and save them into the session.
  • User will be directed to a landing page upon login
    • This is a protected page (non-logged in users shouldn’t have access)
    • This can be home, profile, a dashboard, etc.

Authentication

Must Complete:

  • Function to check if user is logged in
  • Function should be called on appropriate pages that only allow logged in users

Store Owner Purchase History Changes

  • Filter by Date Range, Category
  • Sort by total, date purchased, etc..
  • Add pagination
  • The result page should show the accurate total price of the combined search results (i.e., if just 3 records show each of $25, it should show $75 total for this view)

User will be able to see their cart

  • List all the items
  • Show subtotal for each line item based on desired_quantity * unit_cost
  • Show total cart value (sum of line item subtotals)
  • Will be able to click an item to see more details (Product Details Page)

User will be able to rate a product they purchased

  • Create table called Ratings (id, product_id, user_id, rating, comment, created)
  • Text Comment (use TEXT data type in sql)
  • Must be done on the Product Details Page
  • Ratings and Rating Comments will be visible on the Product Details page

User will be able to see their Purchase History

  • Limit to 10 most recent Purchase History
  • A list item can be clicked to view the full details in the Order Details Page (similar to Order Confirmation Page except no “Thank you” message)

Checkout Form

  • Ask for payment method (Cash, Visa, MasterCard, Amex, etc)

  • Do not ask for credit card number, this is just a sample

  • Ask for a numerical value to be entered (this will be a fake payment check to compare against the cart total to determine if the payment succeeds)

  • Ask for Address/shipping information

  • User will be asked for their Address for shipping purposes

User will be able to edit their profile

Must complete:

  • Changing username/email should properly check to see if it’s available before allowing the change
  • Any other fields should be properly validated
  • Allow password reset (only if the existing correct password is provided)
    • Hint: logic for the password check would be similar to login

Basic Roles implemented

Must complete:

  • Have a Roles table (id, name, description, is_active, modified, created)
  • Have a User Roles table (id, user_id, role_id, is_active, created, modified)
  • Include a function to check if a user has a specific role (we won’t use it for this milestone but it should be usable in the future)

Order process:

  • Calculate Cart Items
  • Verify the current product price against the Products table
    - Since our Cart is table based it can be long lived so if a user added a Product at a sale and they attempt to purchase afterwards, it should pull the true Product cost
  • Verify desired product and desired quantity are still available in the Products table
  • Make an entry into the Orders table
  • Get last Order ID from Orders table
  • Copy the cart details into the OrderItems tables with the Order ID from the previous step
  • Update the Products table Stock for each item to deduct the Ordered Quantity
  • Clear out the user’s cart after successful order
  • Redirect user to Order Confirmation Page

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.