Система автоматизации деятельности микрофинансовой организации

Система обеспечивает покрытие большей части бизнес-процессов организации, занимающейся микрофинансовой деятельностью. Успешно эксплуатируется с 2011 года, внедрена в трех МФО в России и в одной на Украине. Был обеспечен быстрый запуск системы - с момента принятия решения о её разработке до старта реальной работы с её помощью в МФО прошло всего полтора месяца.

Краткое описание функционала

  1. Администрирование
    1. Управление пользователями, настройка прав доступа
    2. Управление организациями
    3. Управление офисами
    4. Управление агентами и агентскими договорами
    5. Управление продуктами
    6. Настройка СМС, отправляемых из системы
    7. Настройка автоотклонения. Позволяет задать правила, в соответствии с которыми будет происходить автоматическое отклонение заявок.
    8. Массовое создание пользователей (импорт из файла)
    9. Импорт клиентов (применяется, прежде всего, для миграции с других систем).
  2. Работа с заявками
    1. API для регистрации он-лайн заявок (с сайта, от лидогенераторов). Позволяет создавать онлайн-заявку от внешнего ресурса.
    2. Интерфейс работы телефонного оператора - обеспечивает прием заявок на микрозайм по телефону, а также возможность проконсультировать клиентов по поводу состояния имеющихся займов.
    3. Интерфейс оператора: создание заявки либо на основе преварительно одобренной онлайн или телефонной заявки или со слов клиента, пришедшего в офис. Вводятся все необходимые для рассмотрения заявки данные, включая сканы документов; клиент фотографируется с помощью веб-камеры. После одобрения заявки оператор может распечатать договор и дополнительную информацию к нему.
    4. Интерфейс риск-менеджера для принятия окончательного решения по заявке. Возможные варианты: одобрить, ограничить, отклонить, отправить на доработку оператору (в случае наличия вопросов по предоставленным данным). Риск-менеджер при рассмотрении заявки вносит информацию о факторах риска по данной заявке. Предоставляется возможность внести клиента в черный список, а также, при необходимости, исключить из него.
  3. Работа с займом
    1. Выдача займа наличными через кассу
    2. Прием платежей по займу с автоматическим распределением поступивших средств на погашение основного долга, процентов, штрафов за просрочку и неустойку за досрочное погашение (если таковое настроено на продукте) как наличными через кассу, так и через платежных агентов: РАПИДА, Золотая Корона, КИВИ.
    3. Досрочное погашение займа в соответствии с настройками продукта
    4. Пролонгация займа, может выполняться как автоматически, так и вручную, при соблюдении заданных на продукте условий.
    5. Обеспечивается возможность изменения условий займа в случае необходимости.
  4. Работа службы взыска
    1. Интеграция с коллекторской системой Luxbase
    2. Формирование отчета по полученной просроченной задоженности
  5. Управление офисом (роль Управляющий)
    1. Открытие/закрытие смены
    2. Просмотр отчетов управляемого офиса
  6. Кассовая работа
    1. Ведение кассовой книги
    2. Отчетные формы КО-3, КО-4, КО-5
    3. Управление подотчетными лицами, просмотр их текущих остатков
    4. Просмотр остатков офисов
    5. Формирование дополнительных отчетов по кассе
  7. Работа маркетолога
    1. Настройка справочника “Откуда вы узнали о нас”
    2. Отчет для анализа клиентской базы
    3. Выгрузка телефонных номеров для рассылок по заданным критериям
  8. Работа бухгалтерии
    1. Внесение данных о поступлениях на расчетный счет в разрезе займов, в том числе задним числом
    2. Передача средств между офисами, контроль кассовых остатков
    3. Формирование отчета агента
    4. Просмотр и коррекция кассовых ордеров
    5. Работа с инкассаторами
    6. Работа с актами инвентаризации
    7. Интеграция с 1С
  9. Аналитические отчеты
    1. Отчет о движении средств
    2. Отчет о доходности
    3. Отчет о заявках
    4. Отчет о договорах
    5. Отчет о текущем портфеле
    6. Отчет о продлениях
    7. Отчет о платежах по просрочке
    8. Отчет о статистике времени обработки заявок
    9. Отчет по отклоненным заявкам
    10. Отчет по процентам, начисленным за период
    11. Отчет о риск-менеджерах
    12. Отчет о движении по кассе

Техническое описание

Система представляет собой веб-приложение, разработанный с применением свободного ПО.

Серверная сторона:

  1. Операционная система Linux
  2. Объектно-ориентированный язык программирования Java
  3. Динамический объектно-ориентированный язык программирования Groovy
  4. Объектно-реляционная СУБД PostgreSQL

Клиентская сторона:

  1. HTML
  2. CSS
  3. JavaScript (с применением библиотеки jQuery)
  4. AJAX

Серверное приложение разработано с применение Java stateless MVC фреймоворка Play! Framework. Система имеет REST совместимую архитектуру. В основе Play лежит асинхронный веб-сервер Netty. Netty позволяет эффективно использовать системные ресурсы и достигать высокой производительности. В качестве фронтенда используется Nginx. Запросы к статическим ресурсам также обрабатываются с помощью Nginx.

Основные архитектурные решения серверного приложения

  1. Реализует шаблон проектирования Model-View-Controller.
  2. Слой Model. Для доступа к данным используется реализация JPA - библиотека Hibernate. Данная библиотека для языка программирования Java, предназначена для решения задач объектно-реляционного отображения (object-relational mapping — ORM).
  3. Слой View. Представления реализованы как шаблоны HTML с вставками на Groovу, обработка которых на серверной стороне позволяет генерировать динамическое наполнение для конечных HTML страниц.
  4. Слой Controller. В паре с реализацией слоя Model представляет собой Java приложение, что позволяет использовать технологии: объектно-ориентированное программирование, строгая типизация, многопоточность, динамическая кодогенерация, аннотации, generics, обработка исключений. В приложении применяются свободно распространяемые библиотеки программного кода.

Система написана с применением практики TDD. Используются библиотеки тестирования JUnit, Mockito. Написано порядка 1800 юнит-тестов. Также разработаны функциональные тесты с применением инструмента тестирования Selenium. Использование юнит и функциональных тестов обеспечивает высокое тестовое покрытие кода.

Интеграция с внешними сервисами производится с применением стандартных механизмов: REST, XML.

Ведется журналирование работы приложения в отдельный файл с использованием библиотеки логирования Log4J. Реализован удаленный доступ к файлу логов посредством FTP.

Серверное приложение интегрируется с сайтом, позволяя фиксировать обращения клиентов, заявки на получение микрозаймов, сохраняет маркетинговую информацию. Используемые технологии REST, JSON.

Репликация и резервное копирование данных выполняется ежедневно и реализовано с применением механизмов, предоставляемых СУБД PostrgreSQL, и утилиты rsnapshot.