Skip to content

alifengineer/online_banking

Repository files navigation

online-banking-service

Тестовое задание для кандидата

Задание: Разработка сервиса для онлайн банкинга

Функционалы сервиса:

  1. Получение баланса счета
  2. Пополнение счета
  3. Перевод на чужой счет
  4. Вывод денег
  5. Аутентификация и авторизация
  6. Хранение данных

Требования:

  1. Банкинг предназначен для работы с большим количеством клиентов, поэтому необходимо обеспечить высокую производительность и отказоустойчивость системы, чтобы она могла обрабатывать большое количество запросов и не падала при повышенной нагрузке. Архитектура системы должна быть подобрана так, чтобы эти моменты учитывались.
  2. Используйте Git для управления версиями кода.
  3. Реализуйте обработку ошибок в своем сервисе.
  4. Ваш код должен соответствовать принципам SOLID и иметь хорошую архитектуру.
  5. Ваш код должен быть написан на языке программирования Go.
  6. Кандидат должен оценить задание и установить срок выполнения.

Дополнительное задание:

  1. Гарантируется что баланс меняется только в случаях выполнения операций:

    Пополнение счета

    Перевод на чужой счет

    Вывод денег

    Используя эту информацию уменьшите нагрузку на бд при выполнении операции

    Получение баланса счета

  2. Напишите тесты для своего кода.

  3. Реализуйте документацию для вашего API с помощью Swagger.

  4. Используйте Docker для запуска вашего сервиса в контейнере.

Запуск проекта

  1. Склонировать репозиторий
git clone 
  1. Перейти в папку проекта
cd online_banking
  1. Запустить проект
docker-compose up --build -d
  1. Перейти в браузере по адресу

http://localhost:80/swagger/index.html

Запуск тестов

  1. Перейти в папку проекта
cd online_banking
  1. Запустить тесты
go test ./...

Демонстрация работы

  1. Перейти в браузере по адресу

http://localhost:80/swagger/index.html

  1. Авторизоваться

Берем access_token из ответа на запрос

POST /api/v1/auth/login
  1. Вставить токен в поле Authorize
Bearer <token>
  1. Выбрать нужный метод

  2. Нажать Try it out

  3. Вставить данные в поля

  4. Нажать Execute

  5. Посмотреть результат

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages