An awesome E-Shop API built on top of NodeJS.
-
Authentication and Authorization
- Sign up, Log in, Update,forget Password and reset password.
-
User profile
- Update username, photo, email, password, and other information
- A user can be either a regular user or an admin or a manager
-
Products
- Product can be created , updated and deleted by an admin or manager.
- Product can be seen by every user.
-
Categories
- Category can be created , updated and deleted by an admin or manager.
- Category can be seen by every user.
-
Subcategories
- subcategory can be created ,updated and deleted by an admin or manager.
- subcategory can be seen by every user.
-
Brands
- brand can be created ,updated and deleted by an admin or manager.
- subcategory can be seen by every user.
-
Reviews
- review can be created ,updated by user.
- review can be deleted by user , admin and manager.
-
Orders
- Only regular users can make Order
- User can pay cash or card with stripe
- Regular users can see all the orders they have pay for .
- An admin and manager have the ability to Update order info like isPaid , paidAt ,isDeliverd , deliverdAt
-
Cart
- Only regular users have cart
- User can update and delete specific product in cart like quantity
- User can applay a coupon on specific product
- User can clear all product from cart
-
Coupon
- Only admin or manager can create ,get ,update ,delete Coupons
- User just use the coupon
-
Adresses
- A regular user can have multiple adresses
- A regular user can create ,update and delete adress
-
Wishlist
- A regular user can have a wishlit to save his favorites
- A regular user can add any product to favorites
- A regular user can remove a product from their list of favorite product.
- Login to the site
- Search for product that you want to buy
- buy a tour
- Proceed to the payment checkout page
- Enter the card details (Test Mood):
- Card No. : 4242 4242 4242 4242 - Expiry date: any futer date - CVV: any 3 numbers
- Finished!
- You can update your own username, profile photo, email, and password.
- NodeJS - JS runtime environment
- Express - The web framework used
- Mongoose - Object Data Modelling (ODM) library
- MongoDB Atlas - Cloud database service
- JSON Web Token - Security token
- Stripe - Online payment API and Making payments on the app.
- Postman - API testing
- Mailtrap & Gmail - Email delivery platform
You can fork the app or you can git-clone the app into your local machine. Once done, please install all the dependencies by running
$ npm i
Set your env variables
$ npm run start:dev (for development)
$ npm run start:prod (for production)