- Сделать git clone этого репозитория.
- Перейти в корневую папку проекта
em-interview/docker/
. - Выполнить команду
docker compose up
. - Выполнить
mvn clean package
внутри проекта, чтобы сгенерировать классы MapStruct и скомпоновать проект.
Для отправки и проверки запросов я использовал приложение Insomnia (аналог Postman), в корне репозитория я оставил файл em-config.yaml
, который можно будет загрузить в Insomnia и вы сможете получить все тестовые сценарии со всеми эндпоинтами.
- Используйте ручку
Sign up
и отправьте тестовый запрос на сервер. - Далее, тыкаем в эндпоинт
Sign In
и отправляем данные нового пользователя. - В Response придут Access и Refresh токены (JWT), копируем Access Token и находим в приложении
Base Environment
, куда вставляем Access токен (см. рис). - Готово. Любыми другими эндпоинтами можно пользоваться.
P.S Access token внутри системы действует 30 минут, по истечению этого времени клиенту придется войти в систему заново.
Доступна по адресу: http://localhost:8080/api/swagger-ui/index.html#
Мне удалось реализовать все функциональные и нефункциональные требования, также, исходя из своего видения я решил добавить Redis, для изящной работы с JWT-токенами. Благодаря этому, я смог имитировать клиентскую сессию, и приблизится к хорошему результату банковского приложения. Во время разработки старался следовать правилам нормализации БД и проектировал схемы так, чтобы это соответствовало всем нормальным формам.
Разработал приложение используя принцип Clean Architecture
для уменьшения связанностей. Моей целью было добиться разделения ответственностей у каждой модели.
Благодаря этому подходу, я мог оснащать приложение новым функционалом без вмешательства в уже написанный код, этим самым я обеспечил гибкость и упростил поддержку и расширение приложения.