Go to file
Владислав Божко ec9529f1de ylab-java-wallet-service ver. 0.3.4 2023-11-03 17:45:03 +04:00
docker
src/main/java/com/example ylab-java-wallet-service ver. 0.3.4 2023-11-03 17:45:03 +04:00
.gitignore
README.md Initial Commit 2023-10-30 15:35:42 +04:00
ylab-java-wallet-service.iml project promotion 2023-11-03 16:38:20 +04:00

README.md

Этап №1 - Вход в разработку.

Приветствую всех, кто заглянул на данный проект. Суть проекта в создании электронного кошелька. Перед нами стоит задача: создать сервис, который управляет кредитными/дебетовыми транзакциями от имени пользователей.

1. Описание данной задачи

Денежный счет содержит текущий баланс пользователя. Баланс можно изменить, зарегистрировав транзакции на счете, либо дебетовые транзакции (удаление средств), либо кредитные транзакции (добавление средств). Создайте реализацию, которая соответствует описанным ниже требованиям и ограничениям.

2. Основные требования к её выполнению

  • данные хранятся в памяти приложений
  • приложение должно быть консольным (никаких spring-ов, взаимодействий с БД и тд, - только java-core и collections)
  • регистрация пользователя
  • авторизация пользователя
  • Текущий баланс пользователя
  • Дебет/снятие средств для каждого пользователя. Дебетовая транзакция будет успешной только в том случае, если на счету достаточно средств (баланс - сумма дебета >= 0).
  • Вызывающая сторона предоставит идентификатор транзакции, который должен быть уникальным для всех транзакций. Если идентификатор транзакции не уникален, операция будет завершена ошибкой.
  • Кредит на пользователя. Вызывающая сторона предоставит идентификатор транзакции, который должен быть уникальным для всех транзакций. Если идентификатор транзакции не уникален, операция должна завершиться ошибкой.
  • Просмотр истории пополнения/снятия средств пользователя
  • Аудит действий пользователя (авторизация, завершение работы, пополнения, снятия и тд)

3. Нефункциональные требования

  • Использование docker и docker-compose
  • Unit-тестирование

Ознакомившись с данной задачей, можно приступить к её решению, используя при этом свою любознательность, опыт, а так же источники знаний, которые находятся в интернете, например:

Используя вышеперечисленное, можно перейти к основному.

Процесс сборки и запуска данного приложения

  • Подготовка своей среды выполнения посредством установки Java Development Kit.
  • Моделирование структуры проекта.
  • Создание условий для запуска и отладки кода.
  • Установка зависимостей и расширений, если об этом попросит среда разработки.
  • Использование системы помощи, которая может быть Help Center-ом, внедрённым в среду разработки.

Приступив к сборке приложения, мы создаём директории: "docker", где будет размещаться Dockerfile, а так же "src". В папке "src" создаём путь к создаваемой нами директории example - main/java/com/. Так же создадим папку тест, что понадобится для будущих тестов определённых блоков кода приложения. В папке example создадим файлы с исходным кодом, написанном на языке java: Wallet.java, Client.java, Bank.java и EmulatePush.java. Помимо этого, понадобятся текстовые файлы для вывода результата работы определённых функций java-приложения, для этого, желательно создать отдельную директорию, где и должны находиться данные текстовые файлы . . .