A scalable Node.js backend for an E-commerce application
Back
A scalable Node.js backend for an E-commerce application
QKart is an E-commerce application offering a variety of products for customers to choose from.
During the course of this Micro-Experience, the developer:
Built the complete set of REST APIs for an E-commerce application following the best practices
Followed a layered approach for easy maintenance
Used MongoDB NoSQL database for data storage
Implemented multiple authentication schemes
Wrote unit and integration tests to test the implementation
QKart Layered Architecture
Scope of work:
Implemented GET /v1/users
API endpoint to send user data to clients
Followed a layered approach to implement the request-response cycle for ease of maintenance
Used Mongoose (Node.js-MongoDB ODM) to fetch user data from MongoDB
Defined JOI schema to easily validate client requests
Utilized middlewares to reduce code duplication
Skills used:
Node.js, Express.js, MongoDB, Mongoose ODM, JOI validation
Image(s):
Scope of work:
Implemented logic to generate short-lived JWT tokens
Set token authentication strategy by using the Passport library
Secured GET /v1/users
endpoint using token authentication
Created POST APIs for user registration and login
Implemented password authentication to facilitate register / login flow
Skills used:
REST APIs, Token authentication, JWT Token, Password authentication, Hashing
Image(s):
Scope of work:
Implemented the GET/POST/PUT API endpoints for a user’s shopping cart
Improved the GET /v1/users
endpoint by supporting filtering for user address via query parameters
Skills used:
REST APIs, Filtered API Queries
Scope of work:
Added Jest-based assertions to unit tests for checkout requirements provided
Implemented the checkout logic in a Test-driven development style
Utilized integration tests to find and resolve bugs on integrating checkout logic to the application
Skills used:
Test-driven development, Unit testing, Integration testing, Jest framework
Scope of work:
Created a MongoDB instance on MongoDB Atlas cloud and uploaded products data to the cloud DB.
Deployed the QKart Node.js app to Heroku
Deployed the QKart React frontend to Netlify after configuring it to use the deployed Node.js backend.
Skills used:
MongoDB Atlas, Deployment, Heroku, Netlify