Code Monkey home page Code Monkey logo

cryptoexchangeapp's Introduction

Приложение для проведения торгов криптовалютами

Обзор

Сервис является RESTful API приложением для проведения торгов криптовалютами. Согласно ТЗ реализованы минимальные требования и часть дополнительных заданий.

Cервис реализует (минимальные требования):

  • регистрация нового пользователя;

  • просмотр баланса своего кошелька;

  • пополнение кошелька;

  • вывод денег с биржи;

  • просмотр актуальных курсов валют;

  • обмен валют по установленному курсу;

  • изменить курс валют;

  • посмотреть общую сумму на всех пользовательских счетах для указанной валюты;

  • посмотреть количество операций, которые были проведены за указанный период;

Cервис реализует (дополнительные требования):

  • подключить базу данных PostgreSQL для хранения данных о балансе пользовательских кошельков и истории операций;

Использованные технологии

  • Java 17

  • Spring Boot

  • Spring Web

  • Maven

Запуск

Склонировать репозиторий, выполнив команду: git clone https://github.com/lofominhili/CryptoExchangeApp.git

Перейдя в корневую папку проекта, прописать команду: mvn spring-boot:run

Endpoints

Регистрация нового пользователя

Post /new на порте 8080, запрос будет выглядеть так: localhost:8080/new

Параметры:

Ответ:

"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"

cryptoexchangeapp's People

Contributors

lofominhili avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.