Shoppe - E-Commerce Store

AttainU
AttainU

Live Project LinkGitHub Link  

In this project, we built an e-commerce store with production-level features like cart, wishlist, filters, search, affiliation. To achieve the goal we begin with scraping real-world product data and dumping it in our database (Postgres). Then we started modelling our database designs and schemas. We spent a week on this task because we knew the importance of good database design and we wanted it to be perfect in one go which we accomplished successfully. After that we started working on all the features which we already decided, we proceeded with the strategy of one feature at a time. The task wasn’t easy as it seems to us in the beginning. We struggled with async state management, filtering products based on categories, scheduling requests and a few others, but in the end, we managed to make it perfect. We worked as a team of professionals from start to the end with very healthy discussions and debates, this is another reason why we were able to polish it and improve our own design with necessary features which weren’t there in the beginning. We learned from our mistakes and understood the reason why it had happened so we don't repeat them. We want to thank AttainU for giving us this opportunity and the necessary skills to be able to make this kind of project.

Technologies we Used are -

  1. Express
  2. Postgres
  3. Sequelize
  4. Bcrypt
  5. JWT
  6. React
  7. Redux
  8. Redux Thunk
  9. Jquery
  10. Bootstrap
  11. Recharts
  12. Hosted on Heroku

API Endpoints - 

Endpoint

Type

Description

/api/auth/login

POST

Validate Login & responds with JWT Token

/api/auth/signup

POST

Registers a User 

/api/product

GET

Serves Entire Product Collection

/api/product/single/:id

GET

Serves Single Product

/api/product/:id

GET

Serves All Products of provided category_id

/api/categories

GET

Serves All Categories

/api/cart

POST

Creates Cart for a user

/api/cart/:id

GET

Serves Cart of a user

/api/affiliations

POST

Creates Affiliation Link

/api/affiliations/:id

GET

Get Affiliation Details of specific user_id

/api/affiliations/search/:name

GET

Verifies Affiliate Name

/api/orders

POST

Creates Order

/api/orders/:id

GET

Serves all orders of a specific user_id

/api/wishlist

POST

Creates Wishlist

/api/wishlist/get

GET

Serves Wishlist of a specific user_id

/api/profile

GET

Serves Profile details of users.

/api/profile

PUT

Updates Profile Details of User.

Frontend Routes : 

Route

Purpose

Component

/

Homepage

Home

/men

Men Categories

Men

/women

Women Categories

Women

/login

Login Page

Login

/signup

Signup Page

Signup

/affiliate/:user_id

Affiliation Details

Affiliate

/checkout

Cart Checkout Page

Checkout

/orders

Order Display Page

Orders

/orders/summary/:order_id

Displays order Summary

OrderDetails

/profile

Profile view and update

ProfileUpdate

/updatePassword

Password Update

ChangePassword

/wishlist

Displays Wishlist Items

Wishlist

/product/single/:id

Displays Single product details

ProductDetails

/shop/:gender/:category_id

Displays products via category id

Products

/cart

Displays Cart Items

Cart

 DEMO: