Giter Site home page Giter Site logo

it202-003's Introduction

Hi there 👋

I am Rahul Shah. I am a rising Senior Computer Science student at the New Jersey Institute of Technology in Newark, NJ.

  • 🧠 I’m currently learning all about Data Science, Machine Learning, and Natural Language Processing
  • 💻 I’m looking to collaborate on open source projects.
  • 👔 Looking for software engineering full-time positions.
  • 📚 Fun fact: I am currently reading The Joy Of X: A Guided Tour of Math, from One to Infinity By Steven Strogatz.

it202-003's People

Contributors

rahulnshah avatar

Watchers

 avatar

it202-003's Issues

User will be able to logout

  • What needs to be done:
    • 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)

Basic security rules implemented

  • What needs to be done:
    • Authentication:
      • Function to check if user is logged in
      • Function should be called on appropriate pages that only allow logged in users
    • Roles/Authorization:
      • Have a roles table (see below)

User will be able to edit their profile

  • What needs to be done:
    • 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

Store Owner Purchase History Changes

  • What needs to be done:
    • Filter by Date Range
    • Filter by Category
    • Sort by total, date purchased, etc
    • Add pagination
      • Any filter/sort applied must be followed during the pagination process
    • 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 rate a product they purchased

  • What needs to be done:
    • Create table called Ratings (id, product_id, user_id, rating, comment, created)
    • 1-5 rating
    • 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
      • Show the latest 10 reviews
      • Paginate anything beyond 10
    • Show the average rating on the Product Details Page

User will be able to see their Purchase History

  • What needs to be done:
    • For now limit to 10 most recent orders
    • 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)

User will be able to add items to Cart

  • What needs to be done:
    • 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

Store Owner will be able to see all products out of stock

  • What needs to be done:
    • This will be added as a filter to their product list page from Milestone 2
    • Pagination should account for this new filter
    • Recommended to have the filter applied as a given value (i.e., where quantity is <= value)

User will be able to see their cart

  • What needs to be done:
    • 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)

Do HW3

Added some, HTML, CSS , and JavaScript.

Store Owner will be able to see all Purchase History

  • What needs to be done:
    • For now limit to 10 most recent orders
    • 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)

User will be able to register a new account

  • Need to be done:
    • Form Fields
      • Username, email, password, confirm password (other fields optional)
      • Email is required and must be validated
      • Username is required
      • Confirm password’s match
    • Users Table
      • Id, username, email, password (60 characters), created, modified
    • Password must be hashed (plain text passwords will lose points)
    • 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
      • The only fields that may be cleared are the password fields

Order Confirmation Page

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

User’s Purchase History Changes

  • What needs to be done:
    • Filter by date range
    • Filter by category
    • Sort by total, date purchased, etc
    • Add pagination
      • Any filter/sort applied must be followed during the pagination process

User will be able to purchase items in their Cart

  • What needs to be done:
    • 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
      • Hint: This must be inserted first before you can insert into the OrderItems table
    • Create an OrderItems table (id, order_id, product_id, quantity, unit_price)
      • Hint: This is basically a copy of the data from the Cart table, just persisted as a purchase
    • 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
      • Address form should validate correctly
        • Use this as a rough guide (likely you’ll want to prefill some of the data you already have about the user)
    • 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.
        • You can also show the Cart.unit_price vs Product.unit_price to show a sale or an increase in price
      • Verify desired product and desired quantity are still available in the Products table
        • Users can’t purchase more than what’s in stock
        • 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 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

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

  • What needs to be done:
    • Form
      • User can login with **email **or username
        • This can be done as a single field or as two separate fields
      • Password is required
    • 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

Basic Roles implemented

  • What needs to be done:
    • 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)

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.