Backend Assignment
Backend Assignment
Assignment
Assignment
Feel free to push the code to your GitHub and submit the link to
[email protected] even if it is incomplete. We just want to evaluate your
problem-solving approach. Also, you can add your creative touch wherever you wish to
Table of contents
GOAL-
Requirements:
Your backend assignment should be callable from any rest client eg. Postman
Build an API set to support e-commerce operations, such as product and category
listing, product details, cart management, and order processing. Use any SQL
database to manage product/category data, user cart information, and order details.
The API should also handle token management in the system
Requirements:
API Endpoints:
● Category Listing: Create an API endpoint that retrieves a list of categories.
● Product Listing: Create an API endpoint that retrieves a list of products with
essential details such as title, price, description, and availability, based on
category Id
● Product Details: Implement an endpoint that fetches the detailed information of
a specific product by its ID.
● Cart Management: Develop API endpoints to allow users to add products to
their cart, view the cart, update quantities, and remove items from the cart.
● Order Placement: Create an endpoint to handle order placement, allowing users
to place an order with products from their cart.
● Order History: Implement an endpoint to fetch the order history for
authenticated users.
● Order Details: Create an endpoint that retrieves the detailed information of a
specific order by its ID.
● A set of APIs to register and login the users
NOTE: Ignore any payment-related APIs for simplicity. We will assume that payment
is not needed for orders
Database Integration:
Use any SQL database preferably Postgres. The API should interact with DB to
perform CRUD operations on products, cart items, and orders.
User Authentication:
● Implement user authentication using JSON Web Tokens (JWT). Users should be
able to register, log in, and obtain a token to authenticate API requests.
● Implement authentication middleware to secure sensitive API endpoints, such as
cart management and order placement. Only authenticated users should be
allowed to access these endpoints.
Error Handling:
Ensure appropriate error handling is in place, and the API returns meaningful error
messages and status codes when necessary.
Documentation:
Create documentation for the API endpoints, including details about their functionality,
expected input, and output. A swagger doc is preferred
Rate limiting (optional): Add API rate limiting to prevent abuse and maintain server
stability.
Please push the code on your GitHub broken down into commits along with a readMe
file showing a brief on how to set up the project, API doc, and any important design
decisions you made during development.