Задача. Разработать приложение для контроля работы сотрудников используя Telegram API.
Исходя из постановки задачи проект был реализован на базе Yii2 framework. Для работы с Telegram использовалось Telegram API.
В результате разработки проекта были выполнены следующие задачи:
- Управление пользователями сайта, разделение проекта на frontend и backend части, разграничение прав пользователей через систему ролей
- Сделана система генерации и проверки случайных арифметических задач
- Подключено и настроено Telegram API, создан Telegram Bot для автоматизации механизма регистрации пользователей Telegram в системе проверки
- Сделано консольное приложение для автоматизации рассылки задач для пользователей через заданные промежутки времени и учета ответов от пользователей, настроен cron для автономной работы консольного приложения, в самом приложении учтены вопросы "гонок" при запуске задачи
- При авторизации на сайте реализована возможность просмотра четырех типов отчетов, которые отражают наличие пользователя в онлайне. Для большинства отчетов разработана система фильтров, позволяющая ограничить показатели отчета по времени и/или выделить отдельных операторов для отображения их статистики.
- Добавлено разделение прав пользователей на администраторов и наблюдателей по средствам ролей. Наблюдатели могут только входить на сайт и просматривать отчеты по отдельным операторам.
- Реализована возможность управления группами операторов, позволяющая администраторам сайта создавать группы и добавлять к ним отдельных операторов. Кроме этого администраторы могут привязывать группы к аккаунтам наблюдателей, тем самым предоставляя им доступ к просмотру статистики операторов этой группы.
- Разработана система подсчета штрафных баллов операторов исходя из статистики ответов за указанный период. Кроме этого есть возможность подсчета процента эффективности оператора за указанный период, который отражает соотношение различных запросов в рабочее время.
Отчеты В процессе разработки было создано 4 вида отчетов. Ниже приведено их описание и скриншоты.
Отчет за месяц В данном отчете выводится подробная информация по каждому из операторов за все дни текущего месяца. Данные показываются в разрезе каждого дня месяца. За каждый день подсчитывается статистика операторов и в пределах конкретного дня они сортируются по убыванию суммарного штрафного балла за этот день.
Отчет за день Этот отчет отражает статистику по всем операторам в приделах любого дня. Операторы в отчете отсортированы по убыванию штрафного балла. Для изменения даты предусмотрен фильтр в верхней части отчета.
Отчет за период Этот отчет показывает статистическую информацию по выбранным операторам за указанный промежуток времени без подробностей.
Отчет по оператору Отчет показывает подробную информацию по выбранному оператору за весь период времени.