#Курсовой проект «Сервис перевода денег»
Необходимо разработать приложение — REST-сервис. Сервис должен предоставить интерфейс для перевода денег с одной карты на другую по заранее описанной спецификации.
Заранее подготовленное веб-приложение (FRONT) должно подключаться к разработанному сервису без доработок и использовать его функционал для перевода денег.
- Сервис должен предоставлять REST-интерфейс для интеграции с FRONT.
- Сервис должен реализовывать все методы перевода с одной банковской карты на другую, описанные в протоколе.
- Все изменения должны записываться в файл — лог переводов в произвольном формате с указанием:
- даты;
- времени;
- карты, с которой было списание;
- карты зачисления;
- суммы;
- комиссии;
- результата операции, если был.
- Приложение разработано с использованием Spring Boot.
- Использован сборщик пакетов gradle/maven.
- Для запуска используется Docker, Docker Compose .
- Код размещён на GitHub.
- Код покрыт юнит-тестами с использованием mockito.
- Добавлены интеграционные тесты с использованием testcontainers.
Шаги реализации:
- Изучить протокол получения и отправки сообщений.
- Нарисовать схему приложений.
- Описать архитектуру приложения, где хранятся настройки, описать формат хранения данных о картах.
- Создать репозиторий проекта на GitHub.
- Протестировать приложение с помощью curl/postman.
- Написать Dockerfile и создать контейнер.
- Написать Docker Compose скрипт для запуска FRONT и написанного REST-SERVICE.
- Протестировать запуск с помощью Docker Compose и интеграцию с FRONT.
- Написать README.md к проекту, где описать команду запуска, порт и примеры запросов.
- Отправить на проверку.
FRONT доступен по адресу. Можно скачать репозиторий и запустить Node.js приложение локально (в описании репозитория FRONT добавлена информация, как запустить) или использовать уже развёрнутое демо-приложение по адресу (тогда ваш API должен быть запущен по адресу).
Весь API FRONT был описан в соответствии YAML файла по спецификации OpenAPI (подробнее по ссылке 1 и ссылке 2).
При возникновении любых вопросов, пожалуйста, задавайте их преподавателю.
Успехов в разработке!