- PVSM.RU - https://www.pvsm.ru -
[1]За последние пару лет число сотрудников нашей компании увеличилось практически в три раза и сейчас приближается к трем сотням. Это влечет за собой некоторое количество организационных проблем. В частности, из-за того что компания занимает множество различных помещений в бизнес-центре, остро встает вопрос ориентирования сотрудников (особенно это касается новичков) в офисном пространстве.
Ежедневно мы сталкиваемся с проблемой «Как найти в офисе Васю?» или, наоборот, мучаемся вопросом «Как зовут парня, который сидит в том углу?». В итоге пара энтузиастов решила положить этому конец. Так началась история разработки интерактивной карты нашего офиса. Об этом мы сегодня и расскажем.
Задумка карты родилась около года назад, а разработка ведется с перерывами, поскольку делается это, в основном, в нерабочее время, «чисто для фана». Однако уже сейчас карта делает жизнь в офисе значительно проще. На данный момент она выглядит вот так.

Разработчики изначально предполагали следующие сценарии использования карты.
На данный момент реализованы все три сценария.
Делать карту изначально решили с использованием API Яндекс.Карт. Все, что требовалось от карты, API Яндекс.Карт позволял: загрузить свое изображение, сделать базовую работу с картой («зум», перемещение) и реализовать работу с объектами на карте. В качестве средства совместной работы над проектом изначально было выбран Dropbox, поскольку изменения в коде происходили нечасто. Сперва казалось, что нужна система контроля версий, однако в дальнейшем необходимость в ней отпала. Сейчас разработку ведет один человек.
В итоге карта должна была быть размещена на корпоративном портале.
Но гладко все бывает только на бумаге, и уже на первом этапе разработки карты мы столкнулись с серьезной проблемой. Удалось достать план лишь одного этажа, поэтому в первой версии карты был только он. Схемы для остальных этажей позднее пришлось рисовать самостоятельно: они появятся в следующей версии карты.
Кроме того, уже после начала разработки стало ясно, что люди очень часто переезжают с места на место, и поддерживать карту в актуальном состоянии непросто; процесс обновления координат сотрудников облегчается в новой версии карты.
Изначально нанесение данных на карту производилось вручную. Сначала с корпоративного портала скачивался Excel-файл со списком всех сотрудников (с того этажа, для которого был план), который затем конвертировался в CSV с нужными полями: фамилия, имя, должность, электронный адрес сотрудника. После этого в CSV-файл дописывались координаты стола на карте. Этот файл играл роль базы данных, из которой по Python-скриптом формировался JavaScript-массив с данными о пользователях.
Поскольку карта была реализована в статическом варианте, просматривать ее можно было только в режиме read-only; возможность «переезда» сотрудника с места на место изначально не учитывалась.
После того как первая версия была выпущена, и мы начали собирать «хотелки» коллег, «Яндекс» существенно обновил свой картографический API. Делать новую версию мы решили уже с переездом на API версии 2.0.

Пришлось разбираться с ним и делать новую версию карты. В итоге удалось реализовать следующие обновления.
Работа над улучшением карты не останавливается, идей много. Вот самые интересные из них.
Вот так интересный сайд-проект группы энтузиастов внутри компании вырастает в сервис, полезный каждому сотруднику. Кстати, проект отлично переносится и масштабируется, что особенно актуально для нашей компании в преддверии переезда в новый офис. Чтобы запустить карту на новом месте нужно будет всего лишь загрузить новый план этажей и заново «рассадить» сотрудников.
С удовольствием ответим на ваши вопросы в комментариях. Если Хабрасообществу эту будет интересно, в следующей статье мы можем описать технические детали проекта.
Кстати, авторы и разработчики карты присутствуют на Хабре: вот [5] и вот [6].
Автор: ptsecurity
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/interfejsy/13041
Ссылки в тексте:
[1] Image: http://habrahabr.ru/company/pt/blog/149481/
[2] http://portal.yourdomain.ru/map#username: http://portal.yourdomain.ru/map#usernam
[3] portal.yourdomain.ru/map: http://portal.yourdomain.ru/map
[4] portal/map: http://portal/map
[5] вот: http://habrahabr.ru/users/MikeOzornin/
[6] вот: http://habrahabr.ru/users/evgekon/
Нажмите здесь для печати.