# Test exercise for O.Dev internship
###### tags: `O.dev`, `Django`, `Python`, `REST API`, `Docker`, `Internship`
[ToC]
#### Stack
* Python 3.7.6
* Django 2.2
* PostgreSQL 11
* Redis/Memcached
* Swagger/ReDoc
#### Task description
* Familiar yourself with service for foreign exchange rates: https://exchangeratesapi.io/
* Create REST API with Django to get different metrics on the window (range) of data
* Metrics:
* Standard deviation
* Average value
* Correlation between two currency pairs in the same period
* You are welcome to suggest your own metrics
* Example:
* Request: **GET `.../api/start_at=2018-01-01&end_at=2018-09-01&base=USD HTTP/1.1`**
* Response:
```jsonld=
{
'RUS': {
'std_dev': ...,
'avg': ...,
},
'EUR': {...},
...
}
```
#### Requirements
* You are fully free on how to design your REST interface (endpoints, GET parameters, response etc.)
* You should use suggested stack
* You should pack all your infrastructure in docker-compose with purpose I can easily deploy it on any UNIX-system just types `docker-compose up --build`
* You should use cache (with Redis or Memcached) to decrease the number of request to external service
* You should provide the specification of your REST API using OpenAPI 3.0 standard. You can use ReDoc or Swagger
* Upload your solution on GitHub/GitLab (including `.env` file)
* Keep calm if are not able to perform one of the points it is ok, but try to do as more as possible
#### Deadline
23:59, Saturday, 25 April 2020