Giter Club home page Giter Club logo

e-commerce's Introduction

E-Commerce

  • A, E-Commerce web application, that allows visitors to sign up, either as a user intending to purchase products (Buyer) or a user intending to sell products (Vendor). This is a work in progress.

Motivation

  • Details coming soon.

Screenshots

ScreenShot ScreenShot ScreenShot ScreenShot

Techs/frameworks used

Built with

  • React.js
  • Express.js
  • MongoDB
  • Node.js
  • Apollo GraphQL
  • Material UI

Features

  • Details coming soon.

Deployed application link

How to use?

  • Details coming soon.

Contributors

License

e-commerce's People

Contributors

nicanthoni avatar crockevin avatar

Stargazers

 avatar

Watchers

 avatar

e-commerce's Issues

Add to Cart - Hook

Similar to the recently implemented useWishlist hook, will do the same to add functionality to the Add to Cart button

Delete item (from cart) alert behavior

  • alert only shows when deleting an item at the top/middle of the cart, given there are more than 1 in cart.
  • Otherwise if item is the only one or the bottom one, alerts dont show

Chat Room

Live chat room for authenticated buyers

Registration Validations

  • Upon submitting empty fields (specifically name fields) for registering, it should display error alert. It is currently not

Enchance Profile Page

  • Layout change. Need to distribute components/content in a more visually pleasing way, especially for desktop view.

Reviews/Ratings on Items

Reviews/Ratings on Items query not returning - returning as 'null.' Should have Integer value for 'stars' field.

Reveiew/Rate items

  • Add functionality to be able to rate/review items a User has purchased

Tests

  • Implement testing (Cypress, Playwright, Storybook)

Vendor Dashboard

Dashboard for authenticated Vendor types.

Display at top of page, 2-3 graphs for key metric, which are chosen by Vendor.

Just below these key/highlighted metrics, you will have a list of Item categories. Each Item Category should have 1-2 by category metrics within its's own row. Expand to see specific specific categories, that get more narrow as you continue to navigate to that next item.

Ex. Naturally clicking with this sort of behavior: Apparel -> Gender (Men's or Women's) or Show All (Both) -> Category (footwear) -> Type (Trainers, Sports, Running, Formal, Slides, Boots, Trending, Heels, Sandals, Wedges, etc)

metrics + graphs for business performance/trends

SingleProduct Add to Cart button

  • Button is adding and removing items from cart, but update to button content based on state (ex. 'removed) is not persisting on refresh

Delete Item (Vendors inventory)

  • Mutation made and working

ToDO: ensure users wishlist/carts are refetched whenever logged in. Even with deleted item being successfully removed from the users cart drawer, the cart count (top alert) still shows as if the deleted item is in the cart... until manually refreshed

useMemo

  • The useMemo hook is not in use, and I believe there are areas it could be implemented to improve performance.

Resources

Checkout Page

  • This page will be where the shipping, billing, and user info is added, and the order is confirmed.
  • Clicking the "checkout" button from the checkout drawer will render this page

Shopping Cart Drawer - style & functionality

  • Whole component needs a stylistic makeover
  • Add functionality to click the 'x' button by the item to remove it from cart
  • Add functionality to increase quantity of specific item in cart

Buyer signin - alerts

  • Upon invalid buyer signin, correct alert shows. However, when successfully signing in, no alert shows.

Explore page - multiple pages

  • Especially on desktop view, the explore page should cap at 5 or 6 tows of items, and then require a 'next' or '2' at the bottom to render the next page of items

Run all queries, utility functions, useEffects, etc on Root Layout page?

With components no longer within the page folders where the are mainly/only being used, they're now in their own respective component folders.

Ass app grows in future, seems it'd be easier to locate/adjust these.

Still need to find out if/how much effect on performance/ux this would have.

Consolidate cart & wishlist Alerts

  • Consolidate alerts into single alert for Cart and single alert for Wishlist activities
  • Same approach as Auth Alerts (accounts for signin, signup, logout, etc)

Multer

Implement multer for profile picture uploads and vendor item uploads

Search feature

Add functionality to existing search bar to search through items with matching selected category (if no active cat, search all of db times) and return items that match the search

Promotional Banner

Description

Promotional Banner to be displayed on explore page, which will show current offerings, with linked CTAs. The contents of this banner should change ever 3-5 seconds

App Benefit

Adds aesthetically pleasing visual effect, and promotes user focus/interactivity.

Replace Menu Drawer with Logo

  • If there is not a large amount of nav items (more than 5), it may be better to remove the menu drawer and replace it with the logo
    -- But, what about logout button?

Location of page Headings and page's primary components

  • Ex. Filter on explore page should somehow remain in view as scrolling. Centered in top navbar? Moved to horizontal start/end?
  • /Explore route (store page) to have "Store" centered in top navbar, same with Profile pages

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.