Данный проект представляет собой серверную часть системы управления банковскими картами. Проект разработан на Java с использованием Spring Boot в качестве тестового задания на вакансию Java-junior dev.
- Docker Desktop (либо Docker и Docker Compose)
- Клонируйте репозиторий:
git clone https://github.com/TusyaSonne/BackendBankCardsManaging.git
- Перейдите в директорию проекта:
cd BackendBankCardsManaging - Запустите приложение:
docker-compose up --build
После запуска перейдите на http://localhost:8080/swagger-ui.html, чтобы увидеть описание всех доступных эндпоинтов.
Для работы с защищёнными эндпоинтами необходимо авторизоваться с помощью JWT-токена.
Для этого необходимо вставить JWT-токен, полученный в теле ответа при регистрации или аутентификации, в окно Authorize (в правом верхнем углу Swagger UI).
*Вставлять токен необходимо в формате eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...
- Аутентификация и авторизация пользователей:
- Аутентификация реализована с помощью Spring Security и JWT.
- Поддержка ролей:
- Администратор
- Пользователь
- Возможности администратора:
- Создание, чтение, удаление и изменение статуса всех карт.
- Просмотр всех совершенных транзакций.
- Установка дневного лимита на снятие средств с карты.
- Управление пользователями (чтение, изменение роли).
- Возможности пользователя:
- Просмотр своих карт.
- Блокировка своих карт.
- Просмотр истории транзакций по своим картам (как со всех своих карт, так и с определенной карты).
- Перевод денег с одной карты на другую (в случае, если у пользователя несколько карт).
- Списание средств со своей карты (до максимального установленного лимита на день).
- Просмотр значения установленного дневного лимита.
- Пагинация и фильтрация:
- При чтении карт доступна пагинация и фильрация по статусу (ACTIVE, BLOCKED, EXPIRED).
- При чтении транзакций доступна пагинация и фильтрация по типу (WITHDRAW, TRANSFER).
Подробные описания эндпоинтов смотрите в документации OpenAPI.
- Язык программирования: Java (17)
- Фреймворк: Spring Boot (3.4.4)
- Безопасность: Spring Security
- База данных: PostgreSQL (16.4)
- ORM: Hibernate
- Миграции БД: Liquibase
- Тестирование: JUnit 5, Mockito
- Контейнеризация: Docker, Docker Compose
- Документация: OpenAPI (Swagger)
- Сборщик: Maven