DEV Community

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

Posted on

6 3 1 1 1

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 ...😁

Sentry image

See why 4M developers consider Sentry, β€œnot bad.”

Fixing code doesn’t have to be the worst part of your day. Learn how Sentry can help.

Learn more

Top comments (2)

Collapse
 
risyandi profile image
Risyandi β€’

thank you for sharing about the ecomerce API.

Collapse
 
taepunphu profile image
Kiattisak Phanphu β€’

Thanks

nextjs tutorial video

Youtube Tutorial Series πŸ“Ί

So you built a Next.js app, but you need a clear view of the entire operation flow to be able to identify performance bottlenecks before you launch. But how do you get started? Get the essentials on tracing for Next.js from @nikolovlazar in this video series πŸ‘€

Watch the Youtube series