Live Project Link | GitHub 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 –
- Express
- Postgres
- Sequelize
- Bcrypt
- JWT
- React
- Redux
- Redux Thunk
- Jquery
- Bootstrap
- Recharts
- 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: