Сервис является RESTful API приложением для проведения торгов криптовалютами. Согласно ТЗ реализованы минимальные требования и часть дополнительных заданий.
-
регистрация нового пользователя;
-
просмотр баланса своего кошелька;
-
пополнение кошелька;
-
вывод денег с биржи;
-
просмотр актуальных курсов валют;
-
обмен валют по установленному курсу;
-
изменить курс валют;
-
посмотреть общую сумму на всех пользовательских счетах для указанной валюты;
-
посмотреть количество операций, которые были проведены за указанный период;
- подключить базу данных PostgreSQL для хранения данных о балансе пользовательских кошельков и истории операций;
-
Java 17
-
Spring Boot
-
Spring Web
-
Maven
Склонировать репозиторий, выполнив команду: git clone https://github.com/lofominhili/CryptoExchangeApp.git
Перейдя в корневую папку проекта, прописать команду: mvn spring-boot:run
Post /new
на порте 8080, запрос будет выглядеть так: localhost:8080/new
"username": "example"
,"email": "[email protected]"
"secret_key": "sdmbohifuctycwirbyhdxwhpwpwxskvsbjb"
(рандомно сгенерированная хеш-строка, фиксированной длины)
Get /balance
"secret_key": "sdmbohifuctycwirbyhdxwhpwpwxskvsbjb"
Для примера я надепозитил TON = 254.87, BTC = 3.0031589, RUB = 53000.0
"TON_wallet": "254.87"
,"BTC_wallet": "3.0031589"
,"RUB_wallet": "53000.0"
Post /deposit
"secret_key": "sdmbohifuctycwirbyhdxwhpwpwxskvsbjb"
,"RUB_wallet": "12000"
В случае успешного запроса — в ответ придёт обновленный баланс кошелька:
"RUB_wallet": "65000.0"
Post /withdraw
"secret_key": "sdmbohifuctycwirbyhdxwhpwpwxskvsbjb"
,"currency": "RUB"
,"count": "1500"
,"credit_card": "1234 5678 9012 3456"
ИЛИ
"secret_key": "sdmbohifuctycwirbyhdxwhpwpwxskvsbjb"
,"currency": "TON"
,"count": "15"
,"wallet": "AsS5A2SASd2as3q5sd2asd53a1s5"
Выполняется проверка, что на счёте достаточно денег.
В случае успешного запроса — в ответ придёт обновленный баланс кошелька (из которого происходил вывод денег).
"RUB_wallet": "63500.0"
Get /current_exchange
"secret_key": "sdmbohifuctycwirbyhdxwhpwpwxskvsbjb"
,"currency": "TON"
Для валюты TON он получит в ответ, что 1 TON можно приобрести за 180 руб. или 0.00009564 BTC
"BTC": "0.00009564"
,"RUB": "180"
Post /make_exchange
"secret_key": "sdmbohifuctycwirbyhdxwhpwpwxskvsbjb"
,"currency_from": "RUB"
,"currency_to": "TON"
,"amount": "10000"
Перед проведением обмена должна выполниться проверка, что у пользователя достаточно денег на счету. В случае успеха, сообщить сколько денег списано и сколько зачислено.
"currency_from": "RUB"
,"currency_to": "TON"
,"amount_from": "10000"
,"amount_to": "55.55"
Post /change_exchange
"secret_key": "sdmbohifuctycwirbyhdxwhpwpwxskvsbjb"
,"base_currency": "TON"
,"BTC": "0.0021"
,"RUB": "5700"
В ответ возвращаются актуальные курс валют относительно базовой валюты.
"BTC": "0.0021"
,"RUB": "5700"
Get /all_value
"secret_key": "sdmbohifuctycwirbyhdxwhpwpwxskvsbjb"
,"currency": "RUB"
"RUB": "145000.0"
Get /amount_operations
"secret_key": "sdmbohifuctycwirbyhdxwhpwpwxskvsbjb"
,"date_from": "28.02.2023"
,"date_to": "01.03.2023"
"transaction_count": "32"