РАЗРАБОТКА API ДЛЯ АНАЛИТИЧЕСКОЙ СИСТЕМЫ КОНТРОЛЯ ПЕРСОНАЛЬНОГО ВРЕМЕНИ

Ужвенко Д.А. , Гаркуша О.В.1

1Канд. физ.-мат. наук, доцент; Кубанский государственный университет

РАЗРАБОТКА API ДЛЯ АНАЛИТИЧЕСКОЙ СИСТЕМЫ КОНТРОЛЯ ПЕРСОНАЛЬНОГО ВРЕМЕНИ

Аннотация

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

Ключевые слова: контроль времени, персональное время, аналитика, информационная система

Keywords: time control, time tracking, analytics, information system

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

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

Для того чтобы контролировать персональное время, необходим какой-то более современный инструмент, который был бы достаточно удобным и не создавал дополнительных трудностей для пользователя. Например, это могло бы быть мобильное приложение, так как мобильные устройства – это  неотъемлемая часть жизни человека. Также это мог быть бы веб-сайт, который был бы, возможно, менее удобным для отслеживания текущей активности, чем мобильное приложение, но зато более детализированным при отображении графиков и управлении своими целями.

Мобильные приложения и веб-сайты на техническом уровне, как и большинство любых других приложений, состоят из серверной части и клиентской части, обменивающихся сообщениями по некоторому протоколу – как правило, по HTTP/HTTPS протоколам [1]. В данной статье описывается информационная система (серверная часть аналитической системы контроля персонального времени), которая предоставляет большой набор REST (Representational state transfer) API (Application Programming Interface) для возможности интеграции с клиентскими частями систем контроля и аналитики персонального времени [2].

Разработанная информационная система используется для операций над данными, а именно:

  1. консолидации данных;
  2. хранения данных;
  3. обработки данных;
  4. управления доступом к данным.

Для управления персональным временем система оперирует следующими базовыми сущностями:

  1. Контекст. Представляет собой группу логически связанных видов деятельности;
  2. Категория. Является единицей контекста и отражает некоторый конкретный вид деятельности;
  3. Запись. Представляет собой конкретное событие, которое можно оценить по временной шкале;
  4. Комментарий. Это некоторая дополнительная информация к существующей записи с целью облегчения ее идентификации в будущем.

REST API данной системы предоставляет следующую функциональность:

  • регистрация пользователя;
  • аутентификация и авторизация пользователя по паролю;
  • аутентификация и авторизация пользователя по одноразовому коду;
  • механизм использования системы анонимным пользователем;
  • интернационализация и локализация для следующих языков: русский, немецкий и английский;
  • CRUD (create, read, update, delete) операции для контекстов [3];
  • CRUD операции для категорий;
  • CRUD операции для записей;
  • CRUD операции для комментариев к записям;
  • дополнительные административные функции для пользователей с ролью администратора;
  • сервис для сохранения изображения (например, аватара или изображение контекста или категории) в файловой системе;
  • операции по вычислению аналитических показателей расхода собственного времени за выбранный период времени;
  • возможность добавления пользователем собственных категорий;
  • хранение вероятностной модели для вычисления удобных для пользователя контекстов в данный момент;
  • операции по управлению целями пользователя.

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

При развертывании информационной системы создаются предопределенные контексты и категории для этих контекстов, которыми могут пользоваться все пользователи – в том числе и те, кто не зарегистрирован.

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

В основе возможности анализа затраченного времени лежит механизм сохранения новой записи вместе с фиксацией времени начала события и последующим обновлением этой записи с фиксацией времени, когда событие завершилось. То есть на выходе будем иметь интервал времени и информацию о произошедшем в этот интервал времени событии. Этой информации достаточно, чтобы затем провести анализ за определенный период времени, выбранный пользователем. Для этого разработаны следующие сервисы:

  1. работает с выбранным массивом контекстов и высчитывает в процентном и числовом соотношениях время, затраченное на события в рамках каждого контекста из массива, относительно суммы времени, затраченного на события в рамках всех контекстов в системе. Расчет производится за указанный период времени или за все время использования выбранных контекстов, если такой период не указан;
  2. работает с выбранным массивом категорий (как пользовательских, так и общих) и высчитывает в процентном и числовом соотношениях время, затраченное на события в рамках каждой категории внутри контекста из массива, относительно суммы времени, затраченного на события в рамках всех категорий внутри этого же контекста. Расчет производится за указанный период времени или за все время использования выбранных категорий, если такой период не указан.

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

Литература

  1. Голицына О.Л., Максимов Н.В. Информационные системы, 2004
  2. Masse Mark. REST API Design Rulebook, 2011
  3. James Martin. Managing the Database Environment, 1983