Skip to content

ead3471/currency_monitor

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

23 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Тестовое задание: Реализовать web приложение, для сбора и отслеживания изменений курса валют.

Деплой готового проекта

Протестировать развернутый проект можно по этой ссылке

Django Админ находится по этому адресу. В Django Admin включена поддержка создания задач по расписанию и просмотра истории валют.
логин: root
пароль: 1

Flower Dashboard доступен по этому адресу

1. Клонировать проект на локальный компьютер или удаленный сервер:

git clone https://github.com/ead3471/currency_monitor.git

2. Установить Docker и docker-compose если необходимо

3. Изменить (при необходимости) файл .env в корне проекта:

cd currency_monitor/infra
nano .env

4. Запустить проект:

docker-compose up -d

5. Выполнить создание таблиц баз данных и создание суперюзера:

docker-compose exec api sh
python manage.py migrate
python manage.py createsuperuser

6. Описание API станет доступно по адресу:

http://127.0.0.1:8082/swagger

Задание

Для получения курсов используй https://coinlayer.com/, получать данные можно по апи или же в результате парсинга.

UC:

  1. Пользователь должен иметь возможность обратиться к api-нашего приложения и запустить фоновую задачу, по сбору данных о валютах (если данная задача активирована). Результат которого запишется в таблицу.
    Доступно на эндпоинте /api/v1/retrieve/force
    Реализовано форсированное внеочередное выполнение задачи по сбору данных о валютах помеченных к опросу

  2. Пользователь должен иметь возможность обратиться к api-нашего приложения и запустить фоновую задачу, по сбору данных о конкретной валюте, к примеру $. Доступно на эндпоинте /api/v1/retrieve/once/
    Реализован пост запрос, принимающий в теле запроса список валют. Запрос создает фоновую задачу на получение данных по этим валютам. Интерфейс реализован на работу только с криптовалютами.

  3. Пользователь должен иметь возможность обратиться к api-нашего приложения и ВКЛЮЧИТЬ/ВЫКЛЮЧИТЬ фоновую задачу, по сбору данных о валюте/ах. Доступно на эндпоинте /api/v1/retrieve/enable
    Реализована приостановка или запуск задачи по сбору данных о валютах помеченных к опросу.

  4. Пользователь должен иметь возможность обратиться к api-нашего приложения и получить ВСЮ историю, указанной в запросе валюты.
    Доступно на эндпоинте /api/v1/coins/<COIN_CODE>/history

  5. Пользователь должен иметь возможность обратиться к api-нашего приложения и получить разницу двух курсов для конкретной валюты (последней полученной и последней исторической).
    Доступно на эндпоинте /api/v1/coins/<COIN_CODE>/difference

1. Для реализации НЕОБХОДИМО использовать

  • Django (любой версии)
  • DRF
  • Celery
  • django-simple-history

django-simple-history – использовать для отслеживания изменения валют, где ключом будет валюта.

2. Frontend для данного задания не нужен, но опционально можно будет реализовать описание апи за счет swagger.

3. Опциональный функционал:

  • Иметь возможность создавать задачи по рассписанию и управлять этим расписанием.
    Доступно через Django admin
  • base session authentication

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published