Skip to content

Pavel1114/creditor

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

13 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Задача

Задание: Нужно сделать api для создания кредитных заявок.

Стэк технологий - бэк(django + rest_framework) сделать API, для создания заявок. Сделать админ панель (django admin) для всех моделей.

Модели: 1. программма - мин. и макс. сумма кредита, мин. и макс. возраст заемщика 2. заемщик - иин, дата рождения 3. заявки - программа, заемщик, сумма, статус (одобрено, отказ), причина отказа 4. черный список - иин

Запрос на создание заявки: парсим иин, первые 6 цифр - это дата рождения в формате ггммдд. При создании заявки, нужно запустить цепочку из проверок. Проверки должны состоять из отдельных классов, при "отказе" должны вернуть описание отказа. Если заявка прошла все проверки указываем статус "одобрено".

Программа и черный список редактируются через админ панель.

Проверки:

  1. Проверка по сумме кредита если не походит по сумме, тогда отказ "Заявка не подходит по сумме" если не возрасту, тогда отказ "Заемщик не подходит по возрасту"

  2. Если иин есть в списке Индивидуальных предпринимателей (ИП), тогда отказ "иин является ИП" ссылка на запрос https://stat.gov.kz/api/juridical/gov/?bin={иин}&lang=ru

  3. Проверка по черному списку если найден в черном списке, тогда отказ "Заемщик в черном списке"

О проекте

Задача выполнена на стеке django/postgres/celery/redis. Сервисы упакованы в docker и объеденены с помощью docker-compose. При поступлении, заявка сохраняется и отправляется в очередь celery для проверки на соответствие условиям. Клиенту api возвращаются данные по заявке, по которым можно проверять статус. Демо проекта можно посмотреть по адресу creditor.karpets.pro логин/пароль - demo/demo

Развёртывание

git clone https://github.com/Pavel1114/creditor.git

cp env.example .env

редактируем переменные окружения, необходимые для запуска, в .env

docker-compose -f dev.yml up

запуск тестов docker-compose -f dev.yml python manage.py test

Допущения и пояснения

  • проект не подготовлен к деплою. Демо работает на django dev server, перед которым стоит проксирующий nginx
  • для аутентификации используются сессии. Для рабочего проекта скорее всего нужно будет настраивать токены
  • нет обработки ошибок при работы со внешними сервисами (проверка ИИН)
  • проверка заявки прерывается при нахождении первого несоответствия. И храниться только 1 причина. Возможно на рабочем проекте стоило бы в любом случае проверять все критерии и хранить все ошибки по аналогии с django forms.
  • тест написан только 1 - для примера
  • + ещё много чего не учтено

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published