DEV Community

Cover image for E-Commerce API Made With Node-Js,Typescript,PostgreSQL,Redis And Kafka
Leo Antony
Leo Antony

Posted on

E-Commerce API Made With Node-Js,Typescript,PostgreSQL,Redis And Kafka

Introduction

E-commerce API made with typescript, express ,PostgreSQL,Redis & Kafka with all the basic features and more !!

Source Code - https://github.com/leoantony72/E-commerce-Api

Environment variables

PORT = 4000
DB_USER = PGUSER
DB_PASSWORD = PGPASSWORD
DB_HOST = postgresdb
DB_PORT = 5432
DB_DATABASE = e_commerce
SESSION_SECRET = Session Secret
SESSION_MAXAGE = 3600000 * 60 * 10
GMAIL_USER = email // eg:(test123)
GMAIL_PASS = Gmail password
STRIPE_PUBLIC_KEY = Stripe public Key
STRIPE_SECRET_KEY = Stripe Private Key
Enter fullscreen mode Exit fullscreen mode

Docker build

docker-compose up // in the root dir
Enter fullscreen mode Exit fullscreen mode

Setup Postgres,Redis & Kafka

⭕*Postgres *

docker exec -it postgresdb psql -U username -W e_commerce
Enter fullscreen mode Exit fullscreen mode

Copy and paste db.sql file from db_model

⭕*Redis *

docker exec -it redis-e-commerce bash -c redis-cli
Enter fullscreen mode Exit fullscreen mode

paste this command

BF.RESERVE usernames 0.00001 10000
Enter fullscreen mode Exit fullscreen mode

Kafka

docker exec -it broker bash
Enter fullscreen mode Exit fullscreen mode
kafka-topics --create --bootstrap-server localhost:9092 --replication-factor 1  --partitions 1  --topic orders
Enter fullscreen mode Exit fullscreen mode

With this our setup is finished , all the Api routes is


1. /api/store                       GET     Access the Store
2. /api/auth/register               POST    Register a User
3. /api/auth/login                  POST    Login A user
4. /api/auth/logout                 POST    Logout A User
5. /api/auth/forgotpassword         POST    Req For Password Reset
6. /api/auth/reset-password/        POST    Resets The Password
7. /api/verify                      GET     Verify The Email
8. /api/admin/product               POST    Insert A Product
9. /api/admin/product/:id           PUT     Update Product
10. /api/admin/product/:id          DELETE  Delete A Product
11. /api/admin/stock/:id            PUT     Update Stock
12. /api/admin/discount/:pid        GET     Get Discount of a Product
13. /api/admin/add_discount/:id     POST    Add Discount to a product
14. /api/admin/activate/:id         GET     Activate Discount
15. /api/manager/orders             GET     Gets Order
16. /api/manager/order/:orderid     GET     Get Individual Order Detailes
17. /api/shipper/updateorder/:oid   POST    Sents Confirm Order Request
18. /api/order/confirmdelivery      POST    User Confirms Delivery
19. /api/products                   GET     Get Products
20. /api/products/:pid              GET     Get Individual product
21. /api/checkusername              POST    Checks If Username is Taken
22. /api/ratings/:pid               GET     Get Rating
23. /api/ratings/:pid               POST    Add Rating To Product
24. /api/ratings/:pid               PUT     Update Rating
25. /api/ratings/:pid               DELETE  Delete Rating
26. /api/cart                       GET     Get Cart Items
27. /api/addItem/:pid               POST    Add Item To Cart
28. /api/removeItem/:pid            DELETE  DEL Item In Cart
29. /api/purchase                   POST    Purachse Item
30. /api/userAddress                POST    Add User Address
31. /api/userAddress                DELETE  DEL User Address
32. /api/userAddress                PUT     Update User Address
Enter fullscreen mode Exit fullscreen mode

More details on the routes are provided in the documentation 👉

Source Code: https://github.com/leoantony72/E-commerce-Api

Thank you for your time ...😁

Top comments (2)

Collapse
 
risyandi profile image
Risyandi

thank you for sharing about the ecomerce API.

Collapse
 
taepunphu profile image
Kiattisak Phanphu

Thanks