Files
product-affinity/readme.md
T
2026-07-17 08:49:47 +02:00

44 lines
1.8 KiB
Markdown

# Backend dev technical test
We want to offer a new feature to our customers showing similar products to the one they are currently seeing. To do this we agreed with our front-end applications to create a new REST API operation that will provide them the product detail of the similar products for a given one. [Here](./similarProducts.yaml) is the contract we agreed.
We already have an endpoint that provides the product Ids similar for a given one. We also have another endpoint that returns the product detail by product Id. [Here](./existingApis.yaml) is the documentation of the existing APIs.
**Create a Spring boot application that exposes the agreed REST API on port 5000.**
![Diagram](./assets/diagram.jpg "Diagram")
Note that _Test_ and _Mocks_ components are given, you must only implement _yourApp_.
## Running the application
```
mvn clean install
```
```
mvn spring-boot:run
```
## Testing and Self-evaluation
You can run the same test we will put through your application. You just need to have docker installed.
First of all, you may need to enable file sharing for the `shared` folder on your docker dashboard -> settings -> resources -> file sharing.
Then you can start the mocks and other needed infrastructure with the following command.
```
docker-compose up -d simulado influxdb grafana
```
Check that mocks are working with a sample request to [http://localhost:3001/product/1/similarids](http://localhost:3001/product/1/similarids).
To execute the test run:
```
docker-compose run --rm k6 run scripts/test.js
```
Browse [http://localhost:3000/d/Le2Ku9NMk/k6-performance-test](http://localhost:3000/d/Le2Ku9NMk/k6-performance-test) to view the results.
## Evaluation
The following topics will be considered:
- Code clarity and maintainability
- Performance
- Resilience