- git clone https://github.com/YuryIlinikh/benovate-test-task.git
- cd ./benovate-test-task/backend/
- python3 -m venv ./
- ./bin/pip install -r ./requirements.txt
- Запуск тестов ./bin/python ./manage.py test
- Запуск ./bin/python ./manage.py runserver
- http://127.0.0.1:8000/admin/login/?next=/admin/
- логин admin пароль superuser
- можно насоздавать пользователей, инн, профайлы или использовать имеющиеся. (главное не забывать создавать профайлы дя всех пользователей)
- сама форма http://127.0.0.1:8000/
- корень апи http://127.0.0.1:8000/api/
- Тестовое задание реализовано с помощью Django Rest Framework и ReactJS
- Особенность трансферов состоит в том что если сумма не делиться до копеек, то выбирается счастливчик и ему отдается эта копейка.
- Создал псевдо модель (просто класс) Transfer, если что его можно буд легко модифицировать в настоящую, вдруг захочется вести учет трансферов
- Вынес бизнес логику приложения в отдельный сервис TransferService и потестировал его
- Можно конечно было в модели разместить, но мне кажеться что модели должны заниматься загрузкой и сохранением данных и совсем мало бизнес логикой.
- Хотел еще несколько интеграционных тестов написать, но потратил много времени на изучение DRF + ReactJs + связывание этого воедино.
- Bundle от фронтенда просто вкоммитил в backend/transfers/static/js/bundle.js. чтобы не заморачиваться со сборками фронтенда
- Реалиован на ReactJs без Redux (не захотелось его использовать, потому что потратил много времени на изучение DRF + ReactJs + связывани)
- Используется компонента автопоиска пользователей, с запросом к апи бэкенда
- Код к сожалению грязноват и без тестов, опять же потому что уже торопился :(
- Для сборки:
- cd ./benovate-test-task/frontend/
- npm install
- ./node_modules/.bin/webpack --progress --optimize-minimize
- в папочке dist будет сбилденный файл