Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/kobir1989/elite-fashion
Elite Fashion Ecommerce MARN Project
https://github.com/kobir1989/elite-fashion
Last synced: 5 days ago
JSON representation
Elite Fashion Ecommerce MARN Project
- Host: GitHub
- URL: https://github.com/kobir1989/elite-fashion
- Owner: kobir1989
- Created: 2022-12-30T12:23:26.000Z (almost 2 years ago)
- Default Branch: master
- Last Pushed: 2023-12-21T11:21:43.000Z (11 months ago)
- Last Synced: 2023-12-21T13:55:25.217Z (11 months ago)
- Language: JavaScript
- Homepage: https://elite-fashion.vercel.app
- Size: 18.9 MB
- Stars: 0
- Watchers: 1
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Elite-Fashion Client
This project is a web-based eCommerce platform built using MARN Stack. The purpose of this project is to showcase my skills as a full-stack developer and demonstrate my ability to build complex web applications.
## Overview
### This eCommerce platform offers users the convenience of browsing and purchasing fashion products online. Its key features include:
- Product listings: users can view a list of available products and filter them by category, price, or other attributes.
- Shopping cart: users can add products to their cart, view their cart, and adjust the quantity of items in their cart.
- Checkout process: users can complete the checkout process by providing their billing and shipping information, selecting a payment method, and confirming their order.
- User authentication: users can create an account, log in, and view their order history.
- User-Admin Chat: Users can interact with the Admin through a chat feature.
- Product reviews and ratings: Users can write product reviews and give ratings for items they've purchased.
- Wishlist: Users can add products to their wishlist for future reference.
- User profile page: A dedicated user profile page where users can see their wishlist and order history, and even upload a profile picture.
- Email confirmation: After completing a purchase, users receive an email confirmation for their records.
- An admin [Dashboard](https://elite-fashion-admin.vercel.app/) application is already running on the same server.## Installation
### To install and run this project locally, follow these steps:
1. Clone the project repository to your local machine.
2. Open a terminal and navigate to the project directory.
3. Run `npm install` to install the project dependencies.
4. Run `npm start` to start the development server and view the project in your browser.## Technologies and External Libraries Used
### The eCommerce platform was developed using the following technologies and external libraries:
- React: a JavaScript library for building user interfaces.
- Redux Toolkit: A predictable state container for JavaScript applications.
- React Router: a library for handling client-side routing in React applications.
- Axios: a library for making HTTP requests from the browser.
- Material-UI (MUI): A front-end framework for building responsive web applications.
- SCSS: A CSS preprocessor that enhances the capabilities of CSS.
- jwt-decode: A library for decoding JSON Web Tokens (JWTs).
- react-dropzone: A simple and flexible React component for file uploads.
- framer-motion: A library for creating fluid animations in React applications.
- react-slick: A carousel component for React applications.
- react-hot-toast: A lightweight toast notification library for React.
- stripe: a payment processing platform used for handling payments.## Contributing
### Contributions to this project are welcome. To contribute, follow the steps below:
- Fork the project repository to your own GitHub account.
- Clone the forked repository to your local machine.
- Create a new branch for your changes.
- Make your changes to the project code.
- Commit your changes and push them to your forked repository.
- Open a pull request on the original project repository.# Elite-Fashion Server
## Overview
### The server for this eCommerce platform is built using Node.js and Express. It provides a RESTful API that is consumed by the client-side application to handle various server-side functionalities such as user authentication, product listings, and order management.## API Endpoints Auth
- POST /api/v1/auth/signup - This endpoint is used to register a new user account.
- POST /api/v1/auth/signup - This endpoint is used to register a new user account.
- GET /api/v1/auth/logout - This endpoint is used to log out the authenticated user.
- POST /api/v1/auth/reset/password/:resetToken - This endpoint is used to reset a user's password with a reset token.
- GET /api/v1/auth/forget/password - This endpoint is used to initiate the forget password process.
- POST /admin/login: login admin - This endpoint is used for admin login.## API Endpoints User
- PUT /api/v1/user/update/profile/:userId - This endpoint is used to update a user's profile with a user ID.
- PUT /api/v1/admin/update/profile/:adminId - This endpoint is used to update an admin's profile with an admin ID.
- GET /api/v1//user/profile/:userId - This endpoint is used to get a user's profile with a user ID.
- GET /api/v1/user/all/profile - This endpoint is used to get all the user profiles.## API Endpoints Products
- GET /api/v1/:subCategoryId/products - This endpoint is used to get all products within a subcategory with a subcategory ID.
- GET /api/v1/product/single/:productId - This endpoint is used to get a single product with a product ID.
- GET /api/v1/product/best-selling - This endpoint is used to get the best selling products.
- GET /api/v1/products/all - This endpoint is used to get all the products.
- POST /api/v1/create/product - This endpoint is used to create a new product.
- PUT /api/v1/product/edit/:productId - This endpoint is used to edit a product with a product ID.
- DELETE /api/v1/product/delete/:productId - This endpoint is used to delete a product with a product ID.## API Endppoints Categories
- GET /api/v1/categories/all - This endpoint is used to get all the categories.
- GET /api/v1/category/single/:categoryId - This endpoint is used to get a single category with a category ID.
- POST /api/v1/category/create - This endpoint is used to create a new category.
- PUT /api/v1/category/edit/:categoryId - This endpoint is used to edit a category with a category ID.
- DELETE /api/v1/category/remove/:categoryId - This endpoint is used to remove a category with a category ID.## API Endpoints Sub-Categories
- GET /api/v1/sub-category/:categoryId - This endpoint is used to get all the subcategories within a category with a category ID.
- GET /api/v1/sub-category/list/all - This endpoint is used to get all the subcategories.
- POST /api/v1/sub-category/create/new - This endpoint is used to create a new subcategory.
- PUT /api/v1/sub-category/edit/:subCategoryId - This endpoint is used to edit a subcategory with a subcategory ID.
- DELETE /api/v1/sub-category/remove/:subCategoryId - This endpoint is used to remove a subcategory with a subcategory ID.## API Endpoints Payment STRIPE
- POST /api/v1/create-payment-intent - - This endpoint is used to create a payment intent for the stripe payment gateway.## API Endpoints Search
- GET /api/v1/search/:key - This endpoint is used to search for products based on a keyword.## API Endpoints Reviews
- GET /api/v1/reviews/product/:productId - This endpoint is used to get all the reviews for a product with a product ID.
- GET /api/v1/reviews/all - Gets all reviews for all products.
- GET /api/v1/review/details/:reviewId - Gets the details of a single review.
- POST /api/v1/review/create - Creates a new review.
- DELETE /api/v1/review/delete/:reviewId - Deletes a review.## API Endpoints Admin Analytics Data
- GET /api/v1/admin/analytics - Gets analytics data for the admin dashboard.## Authentication
This server uses JSON Web Tokens (JWT) for user authentication. When a user logs in, the server returns a JWT token that the client-side application stores in local storage. This token is then included in the header of subsequent requests to authenticated endpoints.
## External Libraries Used
### This server relies on the following external libraries:- Express: a web framework for Node.js.
- Mongoose: an object modeling tool for MongoDB.
- bcrypt: a library for password hashing.
- jsonwebtoken: a library for generating and verifying JSON Web Tokens.
- nodemailer: a library for sending emails.
- dotenv: a library for managing environment variables.
- cloudinary: a cloud-based image management platform.
- express-fileupload: a middleware for handling file uploads in Express.
- googleapis: a library for interacting with various Google APIs, used for sending emails.
- stripe: a payment processing platform used for handling payments.## Future Development
### In the future, i have plan to add the following features to the server:- OAuth2 authentication: adding support for authentication using third-party providers such as Google and Facebook.
- WebSockets: adding support for real-time updates and notifications.
- Improved error handling: implementing better error handling and logging capabilities to improve server-side troubleshooting.