Skip to content

This is an Ecommerce project backend built using NodeJS and MongoDB intended to be paired with Queenbasket254's ecommerce website

License

Notifications You must be signed in to change notification settings

HorizonsMW/Ecommerce

Repository files navigation

This is an Ecommerce project backend built using NodeJS and MongoDB

NodeJS MongoDB

Users API

The first stage which involved building the necessary APIs for user creation and management is complete. All parties interested in testing are welcome to do so.

System requirements

  • NodeJs version v18.13.0 or higher
  • MongoDB
db version v6.0.4
Build Info: {
    "version": "6.0.4",
    "gitVersion": "44ff59461c1353638a71e710f385a566bcd2f547",
    "openSSLVersion": "OpenSSL 1.1.1f  31 Mar 2020",
    "modules": [],
    "allocator": "tcmalloc",
    "environment": {
        "distmod": "ubuntu2004",
        "distarch": "x86_64",
        "target_arch": "x86_64"
    }
}
  • Project was built on Ubuntu 22.04.1 LTS x86_64, Host: 81H7 Lenovo ideapad 130-15IKB, Kernel: 5.15.0-58-generic

Below is some useful testing info.

To get started, run npm run server from the root directory

To test the User API, use the path Localhost:PORT/api/user

router.post("/register" ,createUser);//new user creation

Check the user model under User Model for more info on the requirements for a user/admin

router.post("/login",loginUserCtrl);// user login
router.get("/logout",logout);// user logout
router.get("/refresh",handleRefreshToken);//handle Refresh Token

router.get("/all-users",getAllUsers);// get all users
router.get("/:id",authMiddleware,isAdmin,getAUser);// get a user - only admin can get user

router.delete("/:id",deleteAUser);// delete a user
router.put("/edit-user",authMiddleware,isAdmin,updateAUser);// update a user -  only admin can update user
router.put("/block-user/:id",authMiddleware,isAdmin,blockAUser);// block a user -  only admin can block/unblock user
router.put("/unblock-user/:id",authMiddleware,isAdmin,unblockAUser);// ubblock a user -  only admin can block/unblock user

Products API

The product API is now set for testing. To test the API, use the route /api/product

Below is some more information

router.post("/", authMiddleware, isAdmin, createProduct);//create a new product
router.get("/dev", getAllProducts);//get all products, no fields ommited: for development purposes
router.get("/products/", getAllProductsSorted);//get all products and sort accordingly
router.get("/:id", getAProduct);//get a product
router.put("/:id", authMiddleware, isAdmin, updateProduct);//update a product
router.delete("/:id", authMiddleware, isAdmin, deleteAProduct);//delete a product

JavaScript Express.js NodeJS NPM Postman

🌐 Socials:

LinkedIn Twitter Whatsapp

☕ Buy me a coffee

PayPal

0711990838 NodeJS

Kudos! Enjoy ❤️

About

This is an Ecommerce project backend built using NodeJS and MongoDB intended to be paired with Queenbasket254's ecommerce website

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages