/E-Commerce-Web-App

An E-Commerce Website to Practice NodeJS, Express and MongoDB Technology.

Primary LanguageJavaScript

Course - Build a Full E-Commerce RESTful APIs

Overview

This repository showcases my progress throughout the "Build a Full E-Commerce RESTful APIs" course. The course covers a wide range of topics related to building a fully functional e-commerce application with RESTful APIs.

👇 Here is my progress in detail and what I learned during each section 👇

Course Objectives

1- Project Overview ✅ Done

In this section, I gained a clear understanding of the electronic store project that we would be working on throughout the course. Understanding the project's features and requirements was crucial for effective implementation.

2- How Web Works ✅ Done

I delved into the basics of networking and the functioning of the web. This knowledge provided a solid foundation for subsequent sections and helped me comprehend my role while writing code.

3- Preparing Tools And Environment ✅ Done

I set up my development environment and configured the editor to ensure a smooth workflow for the project.

4- Preparing Express Server And Mongodb ✅ Done

This section involved creating an Express server and establishing a connection with the MongoDB database. Understanding the project's file structure was also covered.

5- Categories CRUD Operations ✅ Done

I learned how to implement the core functionalities for managing categories in the e-commerce platform. This included adding, retrieving, updating, and deleting categories.

6- Advanced Error Handling & Adding Validation Layer ✅ Done

Handling errors effectively in Express was covered in detail. I also integrated a validation layer to enhance the application's reliability.

7- SubCategories CRUD & Brands CRUD Operations ✅ Done

This section focused on implementing subcategories and brands management, creating a hierarchical structure within the main sections of the electronic store.

8- Products CRUD Operations ✅ Done

I gained insights into managing products efficiently, including creating, editing, deleting, searching, and sorting based on various criteria such as price and sales. Filtering products by category and brand was also covered.

9- Upload Single And Multiple Images And Image Processing ✅ Done

In this section, I learned how to handle image uploads and optimize image processing for improved performance. Additionally, I handled potential errors that may occur during file uploads.

10- Authentication And Authorization ✅ Done

Authentication was covered in detail, including user login, account creation, password reset, and token usage. I also learned how to manage user permissions for admin, manager, and regular user roles.

11- Reviews, Wishlist And User Addresses ✅ Done

I implemented product ratings and reviews, calculating average ratings and enabling users to add products to their favorites. Additionally, users were able to manage their address book for seamless order placement.

12- Coupons And Shopping Cart ✅ Done

During this section, I enabled the admin to create coupons with expiration dates and specific discount percentages. Users could utilize these coupons to receive discounts during checkout. Moreover, I implemented a shopping cart feature allowing users to adjust quantities and apply discounts.

13- Cash And Online Orders, Online Payments And Deployments ✅ Done

I covered the order and payment processes comprehensively, offering multiple payment options, including cash, card, and electronic wallets. The payment gateway was linked, and successful payment processing was ensured. Additionally, I deployed the application on Heroku for sharing with frontend developers or adding to my portfolio.

14- Security ✅ Done

I explored various security measures to safeguard the application and its users.

15- Nest.JS ✅ Done

In this section, I've started learning new framework which is Nest.JS with crash course with the CRUD operations.

16- Appendix ✅ Done

This section contains additional JavaScript lessons for future reference while working on the course.

Contribution

Contributions are welcome! If you discover a bug or wish to add a feature, please submit a pull request.