Привет, Habrahabr!
Наша компания известна прежде всего своими решениями в области информационной безопасности. Мы выпускаем такие продукты, как электронные идентификаторы Рутокен и электронные ключи для защиты софта Guardant.
Обычно наши статьи носят сугубо технический характер, но на этот раз речь пойдет о нашей внутренней системе учета социальных выплат для сотрудников.

Несколько слов о предыстории вопроса. Мы — современная российская ИТ-компания, и, как наверное любая ИТ-компания, мы очень любим все автоматизировать. Помимо прочих, в нашей компании существует компенсация выплат на проезд, походы в театр и фитнес. Долгое время сотрудники были вынуждены собирать и хранить билеты, в нужный день предоставлять их в бухгалтерию, а затем получать свои деньги. В конце концов это процедура нам надоела и мы решили написать максимально простое решение для автоматизации этого процесса. Получившуюся систему мы успешно применяем у себя в компании и сегодня передаем ее в Open source.

Система и ее исходные тексты доступна всем по ссылке. Ее можно просто установить и начать использовать у себя в компании.
Для удобства, мы подготовили документацию и выпустили готовый к установке релиз проекта.

Что из себя представляет система:
Система имеет интерфейсы сотрудника, секретаря, бухгалтера и администратора.
Интерфейс сотрудника максимально прост и понятен. Билет или чек необходимо сфотографировать и просто перенести в окно браузера.
image

Есть также и мобильная версия, которой в основном и пользуются сотрудники.



Пользоваться ей действительно просто: сфотографировал билет, заполнил поля и нажал кнопку.



После загрузки бухгалтер утверждает заявку и в конце месяца, с помощью обработки 1с (также доступной для загрузки), загружает данные для выплаты сотруднику вместе с его заработной платой.

Система из коробки имеет интеграцию с Active Directory, системой почтовых уведомлений, позволяет создавать пользователей и задавать лимиты для них. По умолчанию созданы 3 категории: проездные, соц-мероприятия и фитнес, но ничто не мешает добавлять свои.
Система разработана с использованием следующих технологий:
  • Платформа .Net Framework 4.5 и ASP.NET MVC5
  • Entity Framework v.6 + MS SQL Server
  • HTML5 + Bootstrap 3
  • JQuery, AngularJS.


Для корректной работы необходимо членство целевого сервера развертывания в домене Windows, так как система использует Active Directory для авторизации и аутентификации пользователей
При первоначальной установке системы с помощью пакета развертывания осуществляется создание базы данных и заполнение ее необходимыми данными.

Это один из первых, но, мы уверенны, что далеко не последний продукт, который мы передаем в Open source. Будем рады любым коммитам, бранчам и форкам.

Комментарии (2)


  1. The_Kf
    11.07.2015 16:05

    >Наличие в системе поддержки русского языка (при наличии установленной английской версии сервера — необходимо добавить русский языковой пакет)
    Разверните, пожалуйста, что именно вы имеете ввиду?

    >Включить проверку подлинности Windows и Анонимную проверку подлинности
    Зачем анонимная проверка подлинности?

    >Домен (полное доменное имя или IP адрес контроллера домена)
    Зачем плохое советуете? Нельзя ни в коему случае привязываться к конкретному контроллеру.


    1. shriek Автор
      16.07.2015 10:26

      1.Для корректной работы системы необходимо, чтобы языком интерфейса Windows на целевом сервере развертывания являлся русский язык.
      2. Для аутентификации пользователей используется проверка подлинности Windows. При этом в системе заложен функционал для интеграции с платформой 1С: Предприятие посредством внешней обработки. Взаимодействие системы и обработки реализовано через Web API, для подключения к которому необходима Анонимная проверка подлинности.
      3. “Привязка к конкретному контроллеру” необходима только в контексте добавления новых пользователей в систему. Если контроллер, указанный в настройках, становится по какой-либо причине недоступен, на функционал системы это никак не влияет, за исключением возможности добавить нового сотрудника. В этом случае необходимо указать в настройках системы адрес или доменное имя другого контроллера.