Pull to refresh

Как мы организовали автоматическую отправку обращений в государственные органы

Reading time3 min
Views20K


Всем привет! Я работаю в команде проекта «Сердитый гражданин». Хотел бы рассказать, как у нас организована коммуникация с государственными организациями.

Существуют 3 вида сотрудничества:

  • Согласно статье второй Федерального закона от 02.05.2006 г. N 59-ФЗ «О порядке рассмотрения обращений граждан Российской Федерации»;
  • Согласно подписанному соглашению;
  • На основе системы «Довольный гражданин».


Весь процесс от создания заявления и до ответа от организации можно разделить на 3 этапа:

  • Заполнение формы и создание заявления;
  • Отправка сообщения государственным организациям;
  • Получение ответа от организации.


Заполнение формы и создание заявления



В рубрикаторе портала «Сердитый гражданин» около 500 разных категорий проблем и каждая категория имеет свою специфическую форму для создания обращений. Это небольшой механизм под названием AngryForm. Кстати, пишем мы его на PHP. Он содержит метаданные форм и умеет их обрабатывать. AngryForm знает как из заполненной формы нужно сформировать обращение и кому нужно направить его. Возможно, об AngryForm я подробно напишу в отдельной статье. Итак, пользователь ищет свою категорию проблем и заполняет форму по ней. Генерируется заявления по полученным от пользователя данным.

Отправка обращения

После того, как обращение сгенерировано, нужно его кому-то отправить. У нас есть база организаций и всяческие методы коммуникации с ними. Организации привязаны к определенным проблемам и в зависимости от выбранной категории и региона обращение направляется в конкретное представительство этой организации.

Как только организация получила обращение, у нее есть определенный срок, в течении которого она должна дать ответ заявителю, и если она в этот срок не укладывается, то пользователь может направить жалобу в прокуратуру — также через наш сервис.

Существует несколько каналов коммуникации с организациями:

  • Электронная почта;
  • Факс;
  • API порталов.


В зависимости от канала связи, который доступен в нужном нам представительстве, отправка происходит по-разному. Кратко расскажу про факс и API порталов.

Доставка обращений по факсу



Здесь все просто, обращение отправляется через API на факс ответственной организации. К обращениям, которые отправились факсом, создается уникальный адрес электронной почты на AngryMail (о нем ниже), где он ожидает ответ от организации. Ответ от организации приходит по каналу AngryMail.

Доставка обращений через API государственных порталов



Сейчас у нас имеется интеграция с несколькими порталами такими, как gorod.mos.ru и openregion71.ru. Если эти порталы попадают под условия, которые выбрал пользователь, то обращения поступают, помимо нашего сервиса, еще и на эти порталы. Получив ответ на эти обращения, они также появляются и на нашем портале. В течении всего времени мы опрашиваем сервера этих порталов на наличие ответов по нашим заявлениям. И если ответ найден, то он попадает в таймлайн нашего портала.

Доставка обращений при помощи электронной почты



Здесь уже по интереснее. Вместе с созданием обращения создается и цепочка переписки между пользователем и представительством организации. После создания обращения и цепочки оно попадает в очередь отправки обращений. В качестве очередей мы используем RabbitMQ. Из очереди обращение направляется в AngryMail.

AngryMail — это приложение написанное на Java, которое занимается обработкой входящих и исходящих сообщений по электронной почте. AngryMail присваивает цепочке идентификатор и генерируется обратный email в формате {id}@angrymail.ru, на который будет ждать ответ.

Организация отвечает на сгенерированный адрес электронной почты({id}@angrymail.ru), как правило, с прикрепленными документами со всеми печатями и подписями. Как только AngryMail получает подобное письмо, оно отдает его в сервис AngryCitizen. Ответ прикрепляется в таймлайн обращения на портале и высылается уведомление пользователю.

Если очень кратко, то так. На этом работа нашего сервиса не заканчивается, но это уже другая история.

Спасибо, что дочитали статью до этого места.

Если интересно, буду дальше рассказывать о жизни в нашем проекте вместе с техническими тонкостями.
Tags:
Hubs:
Total votes 70: ↑51 and ↓19+32
Comments37

Articles