QKart is an E-commerce application offering a variety of products for customers to choose from.
- 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
- 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
- Node.js, Express.js, MongoDB, Mongoose ODM, JOI validation
- 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
- REST APIs, Token authentication, JWT Token, Password authentication, Hashing
- 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
- REST APIs, Filtered API Queries
- 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
- Test-driven development, Unit testing, Integration testing, Jest framework
- Created a MongoDB instance on MongoDB Atlas cloud and uploaded products data to the cloud DB.
- Deployed the QKart Node.js app to Render
- Deployed the QKart React frontend to Vercel after configuring it to use the deployed Node.js backend.
- MongoDB Atlas, Deployment, Render, Vercel