Built with MERN stack (MongoDB, Express, React and Node).
⚡⚡⚡ Live Demo ⚡⚡⚡
An ecommerce store built with MERN stack, and utilizes third party API's. This ecommerce store enable two main different flows or implementations:
- Buyers browse the store categories, products and brands
- Sellers or Merchants manage their own brand component
- features:
- Node provides the backend environment for this application
- Express middleware is used to handle requests, routes
- Mongoose schemas to model the application data
- React for displaying UI components
- Images are stored on cloudinary
-
Register and signin system
- Anyone can register himself as a customer.
- Customers can apply to be sellers.
- Shipper only created by the Admin.
- Admins can create any other admins.
-
Product life cycle
- A seller add a product.
- A customer order some products, number in stock decreases.
- The customer tracks the order's state since it's placed.
- The product's seller get a notification about the order.
-
Other facilities
- Users can edit their account info.
- Users can track their order's state.
- Users can add, delete or edit addresses.
- Users can have a wishlist with any amount of products.
-
Customer
- Sign up & login.
- Switch the account to seller.
- Purchase order of any amount of products.
-
Seller -> all above plus.
- Add and edit his own products.
- Receive notifications of the new orders the customer make (only his products).
-
Admin -> all above plus
- Add, Edit and Delete categories.
- Add, Edit and Delete any products.
- Create other Admins.
- Restrict any user from all the permissions.
Project is created with:
- Express
- Mongoose
- Json Web Token (For authentication)
- bcryptjs (for data encryption)
- cloudinary
- React JS
- React-router (To handle routing)
- Axios (For http requests)
- React Bootstrap
- MVC (Model-View-Controller)
- CRUD operations
- Authentication system
- Encrypting passwords
- Images handling using multer
- OOP (Object Oriented Programming)
It's my first time to design a UML so maybe it sucks :D
To run this project, install it locally using npm:
- First and foremost, open your terminal and type to clone this repository.
git clone https://github.com/amit2111github/Eflyer_Backend.git
- Install the necessary dependencies to your app by running
npm install
- Launch the development build of the app, by running
npm start
- Open your favourite browser and type
- Clone the backend of this repo by visiting this Happy Coding :)
👤 Amit Kumar
- Github: @amit2111github
- Email: amit.dev.nit@gmail.com