{"id":26702118,"url":"https://github.com/leoantony72/e-commerce-api","last_synced_at":"2025-06-14T19:33:07.447Z","repository":{"id":161679524,"uuid":"408101808","full_name":"leoantony72/E-commerce-Api","owner":"leoantony72","description":"E-Commerce API Made With NodeJs,Typescript,PostgreSQL,Redis And Kafka","archived":false,"fork":false,"pushed_at":"2022-01-17T16:54:35.000Z","size":546,"stargazers_count":71,"open_issues_count":0,"forks_count":19,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-03-27T02:39:14.950Z","etag":null,"topics":["database","docker","docker-compose","e-commerce","expressjs","javascript","kafka","nodejs","postgresql","redis","typescript"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/leoantony72.png","metadata":{"files":{"readme":"readme.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-09-19T10:56:09.000Z","updated_at":"2025-03-27T00:38:35.000Z","dependencies_parsed_at":null,"dependency_job_id":"053b3b56-13b4-4675-8dc6-49bf7ba22974","html_url":"https://github.com/leoantony72/E-commerce-Api","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/leoantony72%2FE-commerce-Api","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/leoantony72%2FE-commerce-Api/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/leoantony72%2FE-commerce-Api/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/leoantony72%2FE-commerce-Api/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/leoantony72","download_url":"https://codeload.github.com/leoantony72/E-commerce-Api/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248705041,"owners_count":21148475,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["database","docker","docker-compose","e-commerce","expressjs","javascript","kafka","nodejs","postgresql","redis","typescript"],"created_at":"2025-03-27T02:33:49.913Z","updated_at":"2025-04-13T11:27:48.528Z","avatar_url":"https://github.com/leoantony72.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"## Introduction\r\n\r\n\u003cp\u003eE-commerce API made with typescript, express ,PostgreSQL,Redis \u0026 Kafka with all the basic features and more !!\u003c/p\u003e\r\n\r\n### Technologies\r\n\r\n- Nodejs\r\n- Expressjs\r\n- Typescript\r\n- PostgreSQL\r\n- Redis\r\n- Kafka\r\n\r\n\u0026nbsp;\r\n\r\n## File Structure\r\n\r\n![GitHub Logo](readme_img/file-structure.PNG)\r\n\r\n## Basic commands\r\n\r\n```bash\r\ngit clone https://github.com/leoantony72/E-commerce-Api\r\n```\r\n\r\n\u0026nbsp;\r\n\r\n# Environment Variables\r\n\r\n\u0026nbsp;\r\n\r\n```ENV\r\nPORT = 4000\r\nDB_USER = PGUSER\r\nDB_PASSWORD = PGPASSWORD\r\nDB_HOST = postgresdb\r\nDB_PORT = 5432\r\nDB_DATABASE = e_commerce\r\nSESSION_SECRET = Session Secret\r\nSESSION_MAXAGE = 3600000 * 60 * 10\r\nGMAIL_USER = email // eg(test123)\r\nGMAIL_PASS = Gmail password\r\nSTRIPE_PUBLIC_KEY = Stripe public Key\r\nSTRIPE_SECRET_KEY = Stripe Private Key\r\n```\r\n\r\n\u0026nbsp;\r\n\r\n# Docker build\r\n\r\n```bash\r\ndocker-compose up // in the root dir\r\n```\r\n\r\n\u0026nbsp;\r\n\r\n![GitHub Logo](readme_img/dockercompose.png)\r\n\r\n\u0026nbsp;\r\n\r\n## Setup Postgres,Redis \u0026 Kafka\r\n\r\n\u0026nbsp;\r\n\r\n```pg\r\ndocker exec -it postgresdb psql -U username -W e_commerce\r\n```\r\n\r\n⭕Copy and Paste DB Model\r\n\r\n```db\r\nCREATE TABLE users(\r\n    userid VARCHAR(11) NOT NULL PRIMARY KEY,\r\n    username VARCHAR(255) NOT NULL UNIQUE,\r\n    email VARCHAR(255) NOT NULL UNIQUE,\r\n    user_role VARCHAR(25) DEFAULT 'USER' NOT NULL,\r\n    passwordhash TEXT NOT NULL,\r\n    registered_at TIMESTAMP NOT NULL,\r\n    user_ip VARCHAR(50),\r\n    active BOOLEAN DEFAULT FALSE NOT NULL,\r\n    token TEXT UNIQUE,\r\n    expiry TEXT\r\n);\r\n\r\nCREATE INDEX idx_userid ON users(userid);\r\n\r\nCREATE TABLE user_address(\r\n    id VARCHAR(11) NOT NULL PRIMARY KEY,\r\n    userid VARCHAR(11) NOT NULL  REFERENCES users(userid) ON DELETE CASCADE ON UPDATE CASCADE,\r\n    address_line1 VARCHAR(255),\r\n    address_line2 VARCHAR(255),\r\n    city VARCHAR(255),\r\n    postal_code VARCHAR(45),\r\n    country VARCHAR(100),\r\n    telephone VARCHAR(50),\r\n    mobile VARCHAR(50)\r\n);\r\n\r\nCREATE INDEX idx_user_add_id ON user_address(userid);\r\n\r\nCREATE TABLE user_payment(\r\n    id VARCHAR(11) NOT NULL PRIMARY KEY,\r\n    userid VARCHAR(11) NOT NULL REFERENCES users(userid)\r\n    ON DELETE CASCADE\r\n    ON UPDATE CASCADE,\r\n    payment_type VARCHAR(50) NOT NULL\r\n);\r\nCREATE INDEX idx_user_pay_id ON user_payment(userid);\r\n\r\n/*product DB Design*/\r\n\r\nCREATE TABLE products(\r\n    pid VARCHAR(11) NOT NULL PRIMARY KEY,\r\n    title VARCHAR(280) NOT NULL,\r\n    image VARCHAR NOT NULL,\r\n    created_at TIMESTAMP NOT NULL,\r\n    summary VARCHAR(325) NOT NULL,\r\n    price DECIMAL(12,2) NOT NULL\r\n);\r\nCREATE INDEX idx_pid ON products(pid);\r\n\r\nCREATE TABLE inventory(\r\n    id VARCHAR(11) NOT NULL PRIMARY KEY REFERENCES products(pid) ON DELETE CASCADE ON UPDATE CASCADE,\r\n    quantity INT\r\n);\r\nCREATE INDEX idx_inv_id ON inventory(id);\r\n\r\nCREATE TABLE product_category(\r\n    id VARCHAR(11) NOT NULL PRIMARY KEY REFERENCES products(pid) ON DELETE CASCADE ON UPDATE CASCADE,\r\n    name VARCHAR(40) NOT NULL\r\n);\r\nCREATE INDEX idx_cat_id ON product_category(id);\r\n\r\nCREATE TABLE discount(\r\n    id VARCHAR(11) NOT NULL PRIMARY KEY REFERENCES products(pid) ON DELETE CASCADE ON UPDATE CASCADE,\r\n    coupon VARCHAR(100) NOT NULL,\r\n    description VARCHAR(300),\r\n    discount_percent DECIMAL(12,2),\r\n    active BOOLEAN DEFAULT FALSE NOT NULL,\r\n    created_at TIMESTAMP NOT NULL\r\n);\r\nCREATE INDEX idx_dis_id ON discount(id);\r\n\r\nCREATE TABLE product_rating(\r\n    pratingid VARCHAR(11) NOT NULL PRIMARY KEY,\r\n    userid VARCHAR(11) NOT NULL REFERENCES users(userid)\r\n    ON DELETE CASCADE\r\n    ON UPDATE CASCADE,\r\n    pid VARCHAR(11) NOT NULL REFERENCES products(pid)\r\n    ON DELETE CASCADE\r\n    ON UPDATE CASCADE,\r\n    rating INT NOT NULL,\r\n    date_created TIMESTAMP NOT NULL\r\n);\r\nCREATE INDEX idx_pr_id ON product_rating(pid);\r\n\r\n\r\nCREATE TABLE ratings(\r\n    rid VARCHAR(12) NOT NULL PRIMARY KEY,\r\n    pid VARCHAR(11) REFERENCES products(pid),\r\n    userid VARCHAR(11) REFERENCES users(userid),\r\n    rating_number INT NOT NULL,\r\n    comment VARCHAR(300) NOT NULL,\r\n    submitted TIMESTAMP NOT NULL\r\n);\r\n\r\nCREATE TABLE tokens(\r\n    userid VARCHAR(11) NOT NULL REFERENCES users(userid)\r\n    ON DELETE CASCADE\r\n    ON UPDATE CASCADE,\r\n    token TEXT NOT NULL UNIQUE,\r\n    expiry TEXT\r\n);\r\n\r\nCREATE TABLE cart(\r\n    cart_id VARCHAR(13) NOT NULL PRIMARY KEY,\r\n    userid VARCHAR(11) NOT NULL REFERENCES users(userid)\r\n    ON DELETE CASCADE\r\n    ON UPDATE CASCADE,\r\n    pid VARCHAR(11) NOT NULL REFERENCES products(pid)\r\n    ON DELETE CASCADE\r\n    ON UPDATE CASCADE,\r\n    quantity SMALLINT NOT NULL DEFAULT 1,\r\n    date_created TIMESTAMP NOT NULL\r\n);\r\n\r\nCREATE INDEX cart_user_id ON cart(userid);\r\n\r\nCREATE TABLE orders(\r\n    order_id TEXT PRIMARY KEY NOT NULL,\r\n    customer_id VARCHAR(11) NOT NULL REFERENCES users(userid),\r\n    total DECIMAL(12,2) NOT NULL,\r\n    billing_address_id VARCHAR(11) NOT NULL,\r\n    order_status VARCHAR(100),\r\n    payment_type VARCHAR(40) NOT NULL,\r\n    date_created TIMESTAMP NOT NULL\r\n);\r\n\r\nCREATE INDEX orderidx_id ON orders(order_id);\r\nCREATE INDEX order_cust_id ON orders(customer_id);\r\n\r\nCREATE TABLE order_items(\r\n    order_item_id VARCHAR(12) PRIMARY KEY,\r\n    order_id TEXT NOT NULL REFERENCES orders(order_id)\r\n    ON DELETE CASCADE\r\n    ON UPDATE CASCADE,\r\n    item_id VARCHAR(11) NOT NULL REFERENCES products(pid)\r\n    ON DELETE CASCADE\r\n    ON UPDATE CASCADE,\r\n    item_quantity numeric NOT NULL\r\n);\r\n\r\nCREATE INDEX orderidx_item_id ON order_items(order_item_id);\r\nCREATE INDEX ordItemidx_id ON order_items(item_id);\r\n\r\n```\r\n\r\n⭕Exit the PG cli\r\n\r\n\u0026nbsp;\r\n\r\n⭕Redis Setup\r\n\r\n```Redis\r\ndocker exec -it redis-e-commerce bash -c redis-cli\r\n```\r\n\r\n⭕Redis Bloom Filter\r\n\r\n```Bloom Filter\r\nBF.RESERVE usernames 0.00001 10000\r\n```\r\n\r\n⭕Exit Redis Cli\r\n\r\n\u0026nbsp;\r\n\r\n⭕Kafka Setup\r\n\r\n```kafka\r\ndocker exec -it broker bash\r\n```\r\n\r\n```create topic\r\nkafka-topics --create --bootstrap-server localhost:9092 --replication-factor 1  --partitions 1  --topic orders\r\n```\r\n\r\n# API-ROUTES\r\n\r\n\u0026nbsp;\r\n\r\n⭕ YOU CAN ACCESS THE SERVER IN localhost:4000 or localhost:80 (NGINX PROXY)\r\n\r\n```Base URL\r\nhttp://localhost\r\n```\r\n\r\n\u0026nbsp;\r\n\r\n|            Routes             | Method |          Description          |\r\n| :---------------------------: | :----: | :---------------------------: |\r\n|          /api/store           |  GET   |       Access the Store        |\r\n|      /api/auth/register       |  POST  |        Register a User        |\r\n|        /api/auth/login        |  POST  |         Login A user          |\r\n|       /api/auth/logout        |  POST  |         Logout A User         |\r\n|   /api/auth/forgotpassword    |  POST  |    Req For Password Reset     |\r\n|   /api/auth/reset-password/   |  POST  |      Resets The Password      |\r\n|          /api/verify          |  GET   |       Verify The Email        |\r\n|      /api/admin/product       |  POST  |       Insert A Product        |\r\n|    /api/admin/product/:id     |  PUT   |        Update Product         |\r\n|    /api/admin/product/:id     | DELETE |       Delete A Product        |\r\n|     /api/admin/stock/:id      |  PUT   |         Update Stock          |\r\n|   /api/admin/discount/:pid    |  GET   |   Get Discount of a Product   |\r\n|  /api/admin/add_discount/:id  |  POST  |   Add Discount to a product   |\r\n|    /api/admin/activate/:id    |  GET   |       Activate Discount       |\r\n|      /api/manager/orders      |  GET   |          Gets Order           |\r\n|  /api/manager/order/:orderid  |  GET   | Get Individual Order Detailes |\r\n| /api/shipper/updateorder/:oid |  POST  |  Sents Confirm Order Request  |\r\n|  /api/order/confirmdelivery   |  POST  |    User Confirms Delivery     |\r\n|         /api/products         |  GET   |         Get Products          |\r\n|      /api/products/:pid       |  GET   |    Get Individual product     |\r\n|      /api/checkusername       |  POST  |  Checks If Username is Taken  |\r\n|       /api/ratings/:pid       |  GET   |          Get Rating           |\r\n|       /api/ratings/:pid       |  POST  |     Add Rating To Product     |\r\n|       /api/ratings/:pid       |  PUT   |         Update Rating         |\r\n|       /api/ratings/:pid       | DELETE |         Delete Rating         |\r\n|           /api/cart           |  GET   |        Get Cart Items         |\r\n|       /api/addItem/:pid       |  POST  |       Add Item To Cart        |\r\n|     /api/removeItem/:pid      | DELETE |       DEL Item In Cart        |\r\n|         /api/purchase         |  POST  |         Purachse Item         |\r\n|       /api/userAddress        |  POST  |       Add User Address        |\r\n|       /api/userAddress        | DELETE |       DEL User Address        |\r\n|       /api/userAddress        |  PUT   |      Update User Address      |\r\n\r\n\u0026nbsp;\r\n\r\n```\r\nLot Of The Endpoints are GET or POST Where They Just Have To Provided With /:id or /:oid etc.. ,So If You Provide It With The Required Params It Wil Work ...\r\n```\r\n\r\n# Request Payload\r\n\r\n\u0026nbsp;\r\n\r\n### ⭕ \u003cB\u003e/api/auth/register\u003c/B\u003e\r\n\r\n```JSON\r\n{\r\n    \"username\": \"USERNAME\",\r\n    \"email\":\"EMAIL\",\r\n    \"password\":\"PASS\",\r\n    \"confirmPassword\":\"PASS\"\r\n}\r\n```\r\n\r\n\u0026nbsp;\r\n\r\n### ⭕ \u003cB\u003e/api/auth/login\u003c/B\u003e\r\n\r\n```JSON\r\n{\r\n    \"username\": \"USERNAME\",\r\n    \"password\":\"PASS\",\r\n}\r\n```\r\n\r\n\u0026nbsp;\r\n\r\n### ⭕ \u003cB\u003e/api/auth/logout\u003c/B\u003e\r\n\r\n```JSON\r\nLogin In\r\n```\r\n\r\n\u0026nbsp;\r\n\r\n### ⭕ \u003cB\u003e/api/auth/forgotpassword\u003c/B\u003e\r\n\r\n```JSON\r\n{\r\n    \"email\":\"EMAIL\"\r\n}\r\n```\r\n\r\n\u0026nbsp;\r\n\r\n### ⭕ \u003cB\u003e/api/auth/reset-password/?rec=\u003c/B\u003e\r\n\r\n```JSON\r\n{\r\n    \"password\": \"PASS\",\r\n    \"confirmPassword\": \"PASS\"\r\n}\r\n```\r\n\r\n\u0026nbsp;\r\n\r\n### ⭕ \u003cB\u003e/api/verify/?vif=\u003c/B\u003e\r\n\r\n```JSON\r\nProvide the verification token\r\n```\r\n\r\n\u0026nbsp;\r\n\r\n### ⭕ \u003cB\u003e/api/admin/product\u003c/B\u003e\r\n\r\n\u0026nbsp;\r\n\r\n❗ \u003cB\u003eMETHOD: POST\u003c/B\u003e\r\n\r\n\u0026nbsp;\r\n\r\n❗ FORM DATA\r\n\r\n![GitHub Logo](readme_img/addproduct.png)\r\n\r\n\u003cb\u003e👉The tool used here is Postman, Used to test API endpoints...\u003cb\u003e\u003cbr\u003e\r\n\u0026nbsp;\r\n\r\n\u003cb\u003e❗The keys in the Image are the data we should provide to make a POST req, Missing any of the keys will result in an error\u003cb\u003e\r\n\r\n\u0026nbsp;\r\n\r\n### ⭕ \u003cB\u003e/api/admin/product/:id\u003c/B\u003e\r\n\r\n\u0026nbsp;\r\n\r\n❗ \u003cB\u003eMETHOD: PUT\u003c/B\u003e\r\n\r\n\u0026nbsp;\r\n\r\n❗ FORM DATA\r\n\r\n![GitHub Logo](readme_img/updateproduct.png)\r\n\u003cb\u003e👉 The tool used here is Postman, Used to test API endpoints...\u003cb\u003e\u003cbr\u003e\r\n\u0026nbsp;\r\n\r\n\u003cb\u003e❗ The keys in the image are same as that of POST req but make sure to change POST to PUT req.\u003cb\u003e \u003cbr\u003e\r\n\r\n\u003cb\u003e❗ The keys in the Image are the data we should provide to make a POST req, Missing any of the keys will result in an error\u003cb\u003e\r\n\r\n\u0026nbsp;\r\n\r\n### ⭕ \u003cB\u003e/api/admin/product/:id\u003c/B\u003e\r\n\r\n\u0026nbsp;\r\n\r\n❗ \u003cB\u003eMETHOD: DELETE\u003c/B\u003e\r\n\r\n```\r\nAdministrative Privileges\r\n```\r\n\r\n\u0026nbsp;\r\n\r\n### ⭕ \u003cB\u003e/api/admin/stock/:id\u003c/B\u003e\r\n\r\n\u0026nbsp;\r\n\r\n❗ \u003cB\u003eMETHOD: PUT\u003c/B\u003e\r\n\r\n```\r\n{\r\n    \"stock\":\"140\"\r\n}\r\n```\r\n\r\n\u0026nbsp;\r\n\r\n### ⭕ \u003cB\u003e/api/admin/add_discount/:id\u003c/B\u003e\r\n\r\n\u0026nbsp;\r\n\r\n❗ \u003cB\u003eMETHOD: POST\u003c/B\u003e\r\n\r\n```\r\n{\r\n    \"discount\": \"20.00\",\r\n    \"description\": \"bruh\"\r\n}\r\n```\r\n\r\n\u0026nbsp;\r\n\r\n### ⭕ \u003cB\u003e/api/admin/activate/:id\u003c/B\u003e\r\n\r\n\u0026nbsp;\r\n\r\n❗ \u003cB\u003eMETHOD: PUT\u003c/B\u003e\r\n\r\n```\r\nActivates Discount if you have Admin role\r\n```\r\n\r\n\u0026nbsp;\r\n\r\n### ⭕ \u003cB\u003e/api/manager/orders?\u003c/B\u003e\r\n\r\n\u0026nbsp;\r\n\r\n❗ \u003cB\u003eMETHOD: GET\u003c/B\u003e\r\n\r\n```\r\nhttp://localhost:80/api/manager/orders?status=succeeded\r\n\r\nhttp://localhost:80/api/manager/orders?status=fulfilled\r\n\r\n```\r\n\r\n\u0026nbsp;\r\n\r\n### ⭕ \u003cB\u003e/api/shipper/updateorder/:oid\u003c/B\u003e\r\n\r\n\u0026nbsp;\r\n\r\n❗ \u003cB\u003eMETHOD: GET\u003c/B\u003e\r\n\r\n```\r\nProvide Order ID\r\n\r\n```\r\n\r\n\u0026nbsp;\r\n\r\n### ⭕ \u003cB\u003e/api/order/confirmdelivery?uid=\u0026token=\u0026oid=\u003c/B\u003e\r\n\r\n\u0026nbsp;\r\n\r\n❗ \u003cB\u003eMETHOD: GET\u003c/B\u003e\r\n\r\n```\r\nProvide userid,token\u0026orderid\r\n\r\n```\r\n\r\n\u0026nbsp;\r\n\r\n### ⭕ \u003cB\u003e/api/checkusername\u003c/B\u003e\r\n\r\n\u0026nbsp;\r\n\r\n❗ \u003cB\u003eMETHOD: POST\u003c/B\u003e\r\n\r\n```\r\n{\r\n    \"username\": \"USERNAME\"\r\n}\r\n```\r\n\r\n\u0026nbsp;\r\n\r\n### ⭕ \u003cB\u003e/api/ratings/:pid\u003c/B\u003e\r\n\r\n\u0026nbsp;\r\n\r\n❗ \u003cB\u003eMETHOD: POST\u003c/B\u003e\r\n\r\n```\r\n{\r\n    \"rating\": 4,\r\n    \"comment\": \"Awesome Product\"\r\n}\r\n```\r\n\r\n\u0026nbsp;\r\n\r\n### ⭕ \u003cB\u003e/api/ratings/:pid\u003c/B\u003e\r\n\r\n\u0026nbsp;\r\n\r\n❗ \u003cB\u003eMETHOD: PUT \u003c/B\u003e\r\n\r\n```\r\n{\r\n    \"rating\": 4,\r\n    \"comment\": \"Awesome Product\"\r\n}\r\n```\r\n\r\n\u0026nbsp;\r\n\r\n### ⭕ \u003cB\u003e/api/purchase\u003c/B\u003e\r\n\r\n\u0026nbsp;\r\n\r\n❗ \u003cB\u003eMETHOD: POST \u003c/B\u003e\r\n\r\n```\r\n{\r\n    stripeTokenId: token.id,\r\n    items: [items],\r\n}\r\n```\r\n\r\n\u0026nbsp;\r\n\r\n### ⭕ \u003cB\u003e/api/userAddress\u003c/B\u003e\r\n\r\n\u0026nbsp;\r\n\r\n❗ \u003cB\u003eMETHOD: POST \u003c/B\u003e\r\n\r\n```\r\n{\r\n    \"address_line1\": \"ADDR\",\r\n    \"address_line2\":\"ADDR2\",\r\n    \"city\":\"test\",\r\n    \"postalCode\":\"1245678\",\r\n    \"country\":\"test\",\r\n    \"mobile\":\"test\"\r\n}\r\n```\r\n\r\n\u0026nbsp;\r\n\r\n### ⭕ \u003cB\u003e/api/userAddress\u003c/B\u003e\r\n\r\n\u0026nbsp;\r\n\r\n❗ \u003cB\u003eMETHOD: PUT \u003c/B\u003e\r\n\r\n```\r\n{\r\n    \"address_line1\": \"ADDR\",\r\n    \"address_line2\":\"ADDR2\",\r\n    \"city\":\"test\",\r\n    \"postalCode\":\"1245678\",\r\n    \"country\":\"test\",\r\n    \"mobile\":\"test\"\r\n}\r\n```\r\n\r\n\u0026nbsp;\r\n\r\n### ⭕ \u003cB\u003e/api/userAddress\u003c/B\u003e\r\n\r\n\u0026nbsp;\r\n\r\n❗ \u003cB\u003eMETHOD: DELETE \u003c/B\u003e\r\n\r\n```\r\nDeletes Automatically when requested\r\n```\r\n\r\n\u0026nbsp;\r\n\r\n⭕ NOTE\r\n\r\n```\r\nYou should also setup Order-service (Documentation provided 🔥)\r\nhttps://github.com/leoantony72/order-service\r\n```\r\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fleoantony72%2Fe-commerce-api","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fleoantony72%2Fe-commerce-api","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fleoantony72%2Fe-commerce-api/lists"}