This project aims to create a backend solution for a web application. It consists of several parts, each focusing on different functionalities.
- Implement a global prefix
/api
to be used throughout the API.
- Implement a login endpoint,
/api/auth/login
, which allows users to authenticate and returns a valid JWT token upon successful login. - The JWT access token should have a validity of 120 seconds only and should contain the following payload:
userId
andusername
.
- Implement two resources, namely
customers
andproducts
, along with their respective endpoints. - These endpoints should be protected, and users need to pass an authorization token in the headers to consume them.
- Use mock data provided in the
/Mocks/
directory as the data source.
- Write test cases for your controllers and services to ensure the reliability of your code.
- Login:
/api/auth/login
- Customers:
/api/auth/customers
- Products:
/api/auth/products
If you wish to make a lasting impression, consider completing the following tasks. While these tasks are optional, they will be taken into consideration and may reduce technical questions during the evaluation process:
- Organize your project structure in a well-structured and clear manner.
- Add comments to your code for better understanding and maintainability.
- Implement rate limiting to control the rate of API requests.
- Write unit tests to ensure the robustness of your code.
- Provide Docker and Docker Compose support for easier deployment.
Feel free to use your creativity and showcase your skills throughout the project! Good luck!