Skip to content

ssergomol/Balance-Manager

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

77 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation


Balance Manager

Содержание
  1. Описание проекта
  2. Возможности сервиса
  3. Установка и запуск сервера
  4. Контакты

Описание проекта

Сервис для управления балансом и счетами пользователей, который позволяет осуществлять основные денежные операции

Технологии

  • GoLang-logo
  • PostgreSQL-logo
  • Docker-logo

(back to top)

Возможности сервиса

  • Сервис предоставляет HTTP API в формате JSON
  • Зачисление средств на баланс
  • Резервирование средств с основного баланса на отдельном счете
  • Cписание денег из резерва
  • Получение баланса пользователя
  • Перевод средств от пользователя к пользователю
  • Получение отчёта по выручке среди всех пользователей для каждой операции за заданный месяц

(back to top)

Установка и запуск сервера

  1. Установите Docker и docker-compose для своей ОС https://docs.docker.com/compose/install/
  2. Склонируйте репозиторий и перейдите в корень проекта
git clone https://github.com/ssergomol/Balance-Manager.git && cd ./Balance-Manager
  1. Выполните
docker-compose up

(back to top)

Примеры запросов и возможные ответы

  1. Метод зачисление средств на баланс Принимает ID пользователя и сумму зачисления

Запрос:

curl --header "Content-Type: application/json" \
  --request POST \
  --data \
  '{ "id": 0, "sum":"1000.00" }' \
  http://localhost:8080/balance

Тело ответа (совпадает с телом ответа в случае успеха):

{
    "id": 0,
    "sum": 1000.00
}
  1. Метод резервирования средств с основного баланса на отдельном счете Принимает ID пользователя, ID услуги, ID счёта и сумму резервирования, причём ID услуги равен 1

Запрос:

curl --header "Content-Type: application/json" \
  --request POST \
  --data \
  '{ "id": 0, "user_id": 0, "service_id": 1, "sum":"1000.00"}' \
  http://localhost:8080/accounts

Тело ответа (совпадает с телом ответа в случае успеха):

{
    "id": 0,
    "user_id": 0,
    "service_id": 1,
    "sum":"1000.00"
}
  1. Метод списания денег из резерва Принимает ID пользователя, ID услуги, ID счёта и сумму резервирования, причём ID услуги равен 2

Запрос:

curl --header "Content-Type: application/json" \
  --request POST \
  --data \
  '{ "id": 0, "user_id": 0, "service_id": 2, "sum":"100.00"}' \
  http://localhost:8080/accounts

Тело ответа (совпадает с телом ответа в случае успеха):

{
    "id": 0,
    "user_id": 0,
    "service_id": 2,
    "sum":"100.00"
}
  1. Метод получения баланса пользователя Принимает id пользователя Запрос:
curl --header "Content-Type: application/json" \
  --request GET \
  --data \
  '{ "id": 0 }' \
  http://localhost:8080/balance

Тело ответа (в случае успеха возвращает id пользователя и его баланс):

{ 
    "id": 0,
    "sum": "1000.00"
}
  1. Метод перевода средств от одного пользователя к другому Принимает ID каждого из пользовтелей, ID счетов каждого из пользователей и сумму перевода
curl --header "Content-Type: application/json" \
  --request POST \
  --data \
  '{ "from_id": 0, "from_user_id": 0, "to_id": 1, "to_user_id": 1, "sum": "50.00" }' \
  http://localhost:8080/accounts/transfer

Тело ответа (в случае успеха возвращает ID счетов, ID пользовтелей и их остатки на счетах после перевода)

{
    "id": 0,
    "user_id": 0,
    "service_id": 0,
    "sum":"850.00"
}
{
    "id": 1,
    "user_id": 1,
    "service_id": 0,
    "sum":"50.00"
}
  1. Метод получения отчёта по выручке среди всех пользователей для каждой операции за заданный месяц Принимает период в формате "год-месяц", за который необходимо получить отчёт
curl --header "Content-Type: application/json" \
  --request GET \
  --data \
  '{ "date": "2022-11" }' \
  http://localhost:8080/report

Тело ответа (в случае успеха возвращает путь, где был создан отчёт в формате csv файла)
Все отчёты сохраняются в папке reports/

"report reports/report_2022_11 created"

Контакты

Сергей Молчанов - @ssergomol - ssergomoll@gmail.com

Ссылка на проект: https://github.com/ssergomol/Balance-Manager

(back to top)

About

Service for managing users' balance which provides some of the most common money operations

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published