Giter VIP home page Giter VIP logo

it202011's Introduction

IT202-011

Eric De La Rosa

Pull request commit

it202011's People

Contributors

eric-delarosa avatar

Watchers

 avatar

it202011's Issues

User will be able to edit their profile

  • 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)

Basic Roles implemented

  • Have a Roles table (id, name, description, active)
  • Have a User Roles table (id, user_id, role_id, created)
  • 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)

User will be able to logout

  • 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 back in)

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)
User will be asked for their Address for shipping purposes
Address form should validate correctly
Order process:
Calculate Cart Items
Verify desired product and desired quantity are available in the Products table
Show an error message and prevent order from going through if something isn’t available
Let the user update their cart and try again
Clearly show what the issue is (which product isn’t available, how much quantity is available if the cart
exceeds it)
Make entry into 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 Quantity for each item to deduct the Ordered Quantity
Clear out the user’s cart after successful order
Redirect user to Order Confirmation Page

User will be able to register a new account

  • ID (not shown on UI), Username, email, password (other fields optional)
  • Password field should be 60 characters
  • Passwords should be hashed (plain text passwords lose points)
  • Email should be unique
  • Username should be unique
  • Form should have proper validations/checks for legitimate data
    * Email validation
    * Username validation (length/required)
    * Password validation (length minimum)
    * Confirm password match
  • System should let user know if username or email is taken and allow the user to correct the error without wiping the form

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

  • User can login with email or username
  • 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.
  • Form should have proper validation
    • Make sure data has been entered in both fields
  • User will be directed to a dashboard page upon login
    • This is a protected page (non-logged in users shouldn’t have access)

User will be able to see their cart

List all the items
Show subtotal for each item based on quantity * price
Show total cart value
Will be able to click an item to see more details (Product Details Page)

User will be able to add items to Cart

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

User will be able to rate a product they purchased

  • Create table called Ratings (id, product_id, user_id, rating, comment, created)
  • 1-5 rating
  • Text Comment
  • Must be done on the Product Details Page
  • Ratings will be visible on the Product Details page
    • Show the latest 10
    • Paginate anything beyond 10

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.