Skip to content

YuryIlinikh/benovate-test-task

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 

Repository files navigation

benovate-test-task

Установка и запуск (ubuntu 16.04, sqllite файл в репозитории)

  1. git clone https://github.com/YuryIlinikh/benovate-test-task.git
  2. cd ./benovate-test-task/backend/
  3. python3 -m venv ./
  4. ./bin/pip install -r ./requirements.txt
  5. Запуск тестов ./bin/python ./manage.py test
  6. Запуск ./bin/python ./manage.py runserver
  7. http://127.0.0.1:8000/admin/login/?next=/admin/
  8. логин admin пароль superuser
  9. можно насоздавать пользователей, инн, профайлы или использовать имеющиеся. (главное не забывать создавать профайлы дя всех пользователей)
  10. сама форма http://127.0.0.1:8000/
  11. корень апи http://127.0.0.1:8000/api/

Описание и особенности

  • Тестовое задание реализовано с помощью Django Rest Framework и ReactJS
  • Особенность трансферов состоит в том что если сумма не делиться до копеек, то выбирается счастливчик и ему отдается эта копейка.

backend:

  • Создал псевдо модель (просто класс) Transfer, если что его можно буд легко модифицировать в настоящую, вдруг захочется вести учет трансферов
  • Вынес бизнес логику приложения в отдельный сервис TransferService и потестировал его
  • Можно конечно было в модели разместить, но мне кажеться что модели должны заниматься загрузкой и сохранением данных и совсем мало бизнес логикой.
  • Хотел еще несколько интеграционных тестов написать, но потратил много времени на изучение DRF + ReactJs + связывание этого воедино.
  • Bundle от фронтенда просто вкоммитил в backend/transfers/static/js/bundle.js. чтобы не заморачиваться со сборками фронтенда

frontend

  • Реалиован на ReactJs без Redux (не захотелось его использовать, потому что потратил много времени на изучение DRF + ReactJs + связывани)
  • Используется компонента автопоиска пользователей, с запросом к апи бэкенда
  • Код к сожалению грязноват и без тестов, опять же потому что уже торопился :(
  • Для сборки:
    1. cd ./benovate-test-task/frontend/
    2. npm install
    3. ./node_modules/.bin/webpack --progress --optimize-minimize
    4. в папочке dist будет сбилденный файл

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published