An open API service indexing awesome lists of open source software.

https://github.com/devstackq/binaryx-task


https://github.com/devstackq/binaryx-task

Last synced: 7 months ago
JSON representation

Awesome Lists containing this project

README

          

ТЕСТОВОЕ ЗАДАНИЕ
Стек:
● Go
● PostgreSQL
● Docker
● Ubuntu 20.04
Необходимо реализовать REST API сервер на языке Go.
API должен принимать запросы и ответы в JSON.
Предусмотреть защиту API от атаки CSRF.
Надо реализовать 2 самопридуманные монеты fBTC, fETH (f - fake).
Для создания сущностей валют можно использовать мок (пародия на реальные
монеты BTC и ETH соответственно).
Для создания адреса кошелька можно использовать рандомный hash.
Для запуска бэкенда использовать Docker и его команды.
Необходимо сделать такие API endpoints:
1 Регистрация пользователя
Доступен всем.
Пароль от 8 до 50 знаков.
Добавить DNS валидацию домена в email.
Имя и фамилия допускается только Unicode и только символы.
Для пароля использовать алгоритм bcrypt или pbkdf2.
После регистрации пользователя, создаем кошельки каждой
монеты с соответствующими адресами. По умолчанию давать
пользователю по 100 монет каждой валюты.
2 Аутентификация и авторизация пользователя
Доступен всем.
Допускать имейлы только с настоящим доменом.
Для авторизации на API использовать JWT токен.
3 Список кошельков
Доступен только авторизованным.
API должен возвращать кошельки fBTC, fETH с адресами и балансами. Эти данные
должны быть фейковыми.
4 Перевод средств
Доступен только авторизованным.
Осуществлять только внутренний перевод средств с адреса на адрес.

5 Список транзакций -
Доступен только авторизованным.
API должен отдавать список транзакций с обязательными полями: сумма, комиссия,
дата транзакции, название валюты, адрес отправителя, адрес получателя.
Постраничная пагинация списка.

how to run:
prepare image:
docker build --tag projectx .
run image as container:
docker run --detach --publish 8081:8081 projectx