8000 GitHub - SergeyArc/Loan-Request-Processing-Service
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

SergeyArc/Loan-Request-Processing-Service

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Loan Request Processing Service

Сервис для обработки заявок на займ, разработанный с использованием Yii2 и принципов Чистой Архитектуры (Clean Architecture).

Сервис моделирует обработку заявок на займ:

  • Пользователи могут подавать заявки посредством API.
  • Заявка попадает в очередь и обрабатывается асинхронно.
  • Обработка происходит с вероятностью одобрения 10%.
  • У каждого пользователя может быть только одна одобренная заявка.

Стек технологий

  • Framework: Yii2 (PHP 8.2)
  • Database: PostgreSQL
  • Queue: Redis
  • Web Server: Nginx
  • Containerization: Docker Compose
  • Testing: PHPUnit

Структура

  • src/domain/ — доменные сущности, value object’ы, интерфейсы и события
  • src/application/ — сервисы и use-case'ы
  • src/api/controllers/ — REST API
  • src/tests/ — unit и интеграционные тесты

Запуск проекта

  1. Скопируйте .env.example в .env и укажите актуальные значения:
cp .env.example .env
  1. Выполните команду инициализации (сборка, запуск, миграции):
make init

При инициализации выполняется миграция, которая создаёт 10 тестовых пользователей.

Доступ к API

После запуска:

  • API доступно по адресу: http://localhost
  • URL GET-запроса для получение всех пользователей с их заявками: GET /v1/users
  • URL POST-запроса для создания заявки: POST /v1/users/{id}/requests

Переменные окружения

Переменная Описание
APP_NAME Имя приложения, используется как префикс для Docker-сервисов
NGINX_PORT Порт, на котором доступно приложение через Nginx на localhost
POSTGRES_HOST Хост БД PostgreSQL
POSTGRES_PORT Порт PostgreSQL
POSTGRES_USER Имя пользователя для подключения к БД
POSTGRES_DB Название базы данных
POSTGRES_PASSWORD Пароль пользователя БД
REDIS_HOST Хост Redis
REDIS_PORT Порт Redis
YII_DEBUG Включение режима отладки (1 — включён, 0 — выключен)
YII_ENV Окружение приложения (dev, prod, test и т.д.)

Makefile команды

Перед использованием убедитесь, что файл .env существует. Если нет — создайте его:
cp .env.example .env

Основные команды

Команда Описание
make up Запустить контейнеры (docker compose up -d)
make down Остановить контейнеры (docker compose down --remove-orphans)
make restart Перезапустить контейнеры (make down && make up)
make init Полная инициализация проекта: остановка, сборка, запуск, миграции

Docker

Команда Описание
make docker-up Запустить контейнеры
make docker-down Остановить контейнеры
make docker-clear-volumes Остановить и удалить связанные volume'ы
make docker-pull Скачать свежие образы
make docker-build Собрать образы

База данных

Команда Описание
make wait-db Ожидание готовности базы данных
make migrate Применение миграций
make purge-db Очистка базы данных
make db-refresh Полная перезагрузка базы: очистка + миграции

Проверки

Команда Описание
make run-test Запуск тестов

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published
0