Skip to content
 
 

Repository files navigation

Тестовое задание: API для управления банковскими картами

Описание

Это REST API приложение, разработанное в качестве тестового задания. Приложение позволяет управлять банковскими картами и выполнять переводы средств между картами

Приложение построено на стеке Spring Boot и упаковано в Docker для лёгкого развертывания

Основные технологии

  • Java 21
  • Spring Boot 3
  • Spring Security + JWT: Аутентификация и авторизация
  • Spring Data JPA (Hibernate): Работа с базой данных
  • PostgreSQL: Реляционная база данных
  • Liquibase: Управление миграциями схемы БД
  • Docker: Контейнеризация и развёртывание
  • Maven: Сборка проекта
  • JUnit 5 & Mockito: Юнит и интеграционное тестирование
  • OpenAPI 3 (Swagger): Документация API

Функциональные возможности

Аутентификация

  • Регистрация новых пользователей (/api/v1/auth/signUp)
  • Вход в систему и получение JWT (/api/v1/auth/login)

Функционал администратора (ROLE_ADMIN)

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

Функционал пользователя (ROLE_USER)

  • Просмотр постраничного списка своих карт с возможностью фильтрации и поиска
  • Мгновенная блокировка своей карты
  • Перевод средств между своими картами

Безопасность

  • Пароли пользователей хэшируются с использованием BCrypt
  • Номера карт в базе данных хранятся в зашифрованном виде (AES)
  • Доступ к эндпоинтам разграничен по ролям

Инструкция по запуску

Требования

  • Docker

Запуск

  1. Клонируйте репозиторий:

    git clone https://github.com/swankygawk/Bank_REST_test_task.git
    cd <название папки>
  2. Создайте файл .env:

    В корне проекта создайте файл с именем .env и скопируйте в него следующее содержимое, подставив свои секретные ключи:

    JWT_SECRET=long_secret_jwt_key
    CRYPTO_SECRET=long_secret_crypto_key
    
  3. Запустите приложение с помощью Docker Compose:

    Выполните в терминале следующую команду:

    docker-compose up --build

    Команда --build необходима при первом запуске, чтобы собрать образ Java-приложения

  4. Готово! Приложение будет доступно по адресу http://localhost:8080


Доступ к API и документации

API Документация (Swagger UI)

Интерактивная документация API доступна по адресу:

В Swagger UI вы можете изучить все эндпоинты, их параметры и модели данных, а также отправлять тестовые запросы прямо из браузера

Тестовые учетные данные

При первом запуске с помощью миграций Liquibase создается пользователь-администратор:

  • Логин: admin
  • Пароль: 12345678

Вы можете использовать эти данные для получения JWT (через эндпоинт /api/v1/auth/login) и тестирования защищённых эндпоинтов

About

Test task for Effective Mobile

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages