Реализовать веб-сервис на базе django, предоставляющий REST-api
Принимать из POST-запроса .csv файлы для дальнейшей обработки;
Обрабатывать типовые deals.csv файлы, содержащие истории сделок;
Сохранять извлеченные из файла данные в БД проекта;
Возвращать обработанные данные в ответе на GET-запрос.
Требования Данные хранятся в реляционной БД, взаимодействие с ней осуществляется посредством django ORM.
Ранее загруженные версии файла deals.csv не должны влиять на результат обработки новых.
Эндпоинты соответствуют спецификации:
Выдача обработанных данных Метод: GET
В ответе содержится поле “response” со списком из 5 клиентов, потративших наибольшую сумму за весь период.
Каждый клиент описывается следующими полями: username - логин клиента; spent_money - сумма потраченных средств за весь период; gems - список из названий камней, которые купили как минимум двое из списка "5 клиентов, потративших наибольшую сумму за весь период", и данный клиент является одним из этих покупателей.
Загрузка файла для обработки Метод: POST
Аргументы: deals: файл, содержащий историю сделок.
Ответ: Status: OK - файл был обработан без ошибок; Status: Error, Desc: <Описание ошибки> - в процессе обработки файла произошла ошибка.
Приложение должно быть контейнирезировано при помощи docker;
Проект не использует глобальных зависимостей за исключением: python, docker, docker-compose;
Readme проекта описывает весь процесс установки, запуска и работы с сервисом;
Требования к фронтенду не предъявляются, интерфейс взаимодействия — RestFull API;
Проект запускается одной командой.