33 lines
1.7 KiB
Markdown
33 lines
1.7 KiB
Markdown
|
|
# Backend dev technical test
|
||
|
|
We want to offer a new feature to our customers showing similar products to the one they are browsing. To do this we agreed with out front end applications to create a new REST API that will provide them the product detail of the similar products to a given one. [Here](./similarProducts.yaml) is the contract we agreed.
|
||
|
|
|
||
|
|
We already have an endpoint that provides the product Ids similar to a given one. We also have another endpoint that returns the product detail by productId. [Here](./existingApis.yaml) is the documentation of the existing APIs.
|
||
|
|
|
||
|
|
**Create a Spring boot application that exposes the agreed REST API on port 5000.**
|
||
|
|
|
||
|
|

|
||
|
|
|
||
|
|
Note that _Test_ and _Mocks_ components are given, you must only implement _yourApp_.
|
||
|
|
|
||
|
|
## 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
|
||
|
|
- Resilence
|