Корпоративный телефонный справочник с картой

Всем привет! Хочу поделиться корпоративным телефонным справочником с картой офиса. Удобен для ориентирования в большой организации. Особенно будет полезен новым сотрудникам, которые еще не запомнили кто из коллег где сидит.


screenshot


Источником контактов для справочника служит Active Directory, контакты из которой импортируются в базу MySQL, в дальнейшем справочик оперирует с базой MySQL.


Внутри справочника контакты делятся на два типа:


  • Импортированные из AD
  • Локальные

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


Функциональные возможности:


  • Импорт контактов и фото из AD
  • Показать/скрыть любой контакт
  • Добавлять, редактировать и удалять локальные контакты
  • Указать расположение сотрудника на схеме офиса

Карты хранятся в файлах templ/map[1-5].png


Ссылка на проект


screenshot


Поиск сотрудника на карте:


screenshot


Демо (на бесплатном хостинге может отвалиться в любой момент): http://pfzim.rf.gd/pb/
Логин: admin
Пароль: admin

Похожие проекты:


https://github.com/tdvsdv/eight
https://habrahabr.ru/post/251955/
https://habrahabr.ru/company/pt/blog/149481/


P.S. Интересно услышать замечания и подсказки по улучшению дизайна и кода

Средняя зарплата в IT

110 450 ₽/мес.
Средняя зарплата по всем IT-специализациям на основании 6 901 анкеты, за 2-ое пол. 2020 года Узнать свою зарплату
AdBlock похитил этот баннер, но баннеры не зубы — отрастут

Подробнее
Реклама

Комментарии 31

    0
    На каждой фирме, даже маленькой есть бумажка со списком телефонов, которую все время перепечатывают, привязать еще дни рождения, отпуска и получиться отличный сервис для офис менеджера. С турникета данные по приходу и уходу, зарплата, камера, мониторинг экрана сотрудника-мечта руководителя: «Я вижу что ты не работаешь!». И главное, чтобы людям в масках не попала эта информация.
    Я бы еще подвязал печать корпоративных визитных карточек: из данных генерить заказ в типографию.
      0
      С турникетов я в другой компании брал данные о нахождении сотрудников — в офисе/вне офиса и это был другой телефонный справочник. На текущем месте у меня нет доступа к турникетам, они в ведении безопасников.
      Дни рождения планирую добавить. А реализацию с отпусками видел в одном из проектов, на которые приведены ссылки.
        0
        И, все- таки, видеть статус человека «на территории» он или нет было бы полезно.
          0
          Слишком много разновидностей СКУД, я не смогу для каждой из них добавить поддержку. Считаю, что кому требуется знать, где находится сотрудник, могут реализовать данный функционал сами. Я могу лишь подсказать по системам Parsec и Бастион.
            0
            Можно брать данные из АД о том залогинился сотрудник или нет. К примеру у нас все ПК автоматически выключаются в 22:00 и если утром сотрудник не залогинился в АД, то почти 100% значит, что его нет на работе.
              0
              Как раз Parsec и подойдет :)
                0
                А где показывать информацию о нахождении сотрудника?
                В общую таблицу не хочу вставлять, чтобы не дергать СКУД по всем сотрудникам сразу.
                  0
                  Цветом: красный не прошел турникет, зеленый — прошел
                    0
                    Добавил пробное подключение к Парсеку в dev ветке.
                    Нужно отредактировать настройки подключения в inc.acs.php и составить SQL запрос. Сейчас там выборка по внутреннему id пользователя Парсека. Надо переделать на поиск по имени и фамилии.
                    У меня сейчас нет под рукой Парсека, чтобы протестировать данный функционал.

                    По клику на номере телефона появится всплывающее сообщение с информацией о присутствии.
        0
        У нас в компании такой есть, только он не обновлялся года 3-4.
          0
          У нас тоже.В этом-то и проблема таких справочников — ими никто не хочет заниматься и обновлять.У меня это просто xls, который я сам обновляю раз в декаду. Т.к. номера телефонов офисные и корпоративные не меняются, а переходят от специалиста к специалисту в случае увольнения/приёма — этого обычно хватает, да и актуальность не слишком страдает.
          0
          Идея отличная, особенно если помещений много и где-то есть база с точным расположением сотрудников.

          Я в своё время делал приложение для Android — в него подгружалась адресная книга (сотовый + стационарный телефоны) и при входящих/исходящих вызовах на экране отображалась мини-карточка сотрудника (ФИО + должность). Очень помогает в случае, когда тебе может позвонить почти кто угодно. И сразу понятно откуда звонок — по работе или просто кто-то со стороны.
            0

            Похожее решение было предложено тут, смотрели?


            https://m.habrahabr.ru/company/pt/blog/174943/

              0
              Да, видел. Ссылка на их проект есть в статье. Но у них что-то сложное для развертывания. AutoCAD, слои… У меня все намного проще. Прописал настройки подключения, заменил картинки (можно сфотографиррвать план эвакуации) и готово.
              0
              И тензодатчик под стул)
                +1
                Прикрутите к Битрикс-24 и продавайте через их магазин.
                #ябкупил
                  0
                  Я Битрикс не умею, но спасибо за подсказку!
                    0
                    Просто у них есть решение корп. портал и оно довольно широко используется (минимум в трёх конторах, с которыми я работал, оно было и это были IT-компании).
                    Выглядит вот так:
                    Корпоративный портал Битрикс

                    все необходимые данные уже есть в БД, если интегрировать схему расположения, будет очень полезно.
                  0
                  За наполнение — всегда пожалуйста :)
                  Накидал python-скрипт на коленке, могу скинуть.
                  Не уверен, но возможно через Termux можно его и на телефоне запустить — чтобы вручную в следующий раз не набивать)
                  Кстати, неплохо было бы приделать пагинацию ;)
                    0
                    С одной стороны — как и у других представленных ранее проектов — вау, круто.
                    Но с другой — это плохо масштабируемо и вряд ли может быть повторно быть использовано. Мало того что у всех по разному в ldap живут данные, так и хочется в свою систему как-то интегрировать ваше решение, а не делать еще один корпоративный ресурс, о котором коллектив скажет «вау, круто, до свидания».

                    Сделал бы приложение, которое принимает определенный формат данных на вход для отображения данных. Данные сохраняются в приложении. В этот формат данные можно сконвертить и из ldap, и других систем. Получать данные и конвертить можно и по запросу или регулярным обновлением.
                    Затем разделил бы управление данными и отображение этих данных. Отображение данных можно и в рамках приложения и встраивать в виде виджета в сторонние веб-приложения, а код один и тот же в обоих случаях.

                    Еще у контакта задавать что-то типа room (помещения), на картинке отмечать прямоугольник этого помещения, и при отображении контакт сразу показывать в пределах этого помещения, ведь в целом необязательно знать где конкретно сидит контакт, главное найти нужную комнату. Хотя можно сделать список рабочих мест и уже их разметить на картинке-схеме, а у контакта указать рабочее место. А можно и скомбинировать ))

                      0
                      Конечно, всё упирается в человека, который будет непосредственно добавлять/удалять сотрудников. Это скорее всего это будет какаянибудь девушка-оператор колл центра, секретарь и для нее это будет лишняя нагрузочка. Сначала она, как это бывает, поделает, а потом «забъёт». Или её переведут в другой отдел и надо будет обучать другого сотрудника.
                      За годы 'борьбы" с менеджерами я пришел к выводу, что самый доступный вариант с актуальными текстовыми данными — это обычный экселевский файл. Он лежит себе на корпоративном сервере в отдельной папочке и его можно скачать снаружи php-скриптом по фтп, например. Распарсить и вставить в базу. Либо отправить по почте на специальный адрес как аттачмент где скрипт его обработает по cron. Самое важное чтобы структура excel-файла не менялась, а так его легко редактировать.-любой справиться, даже охранник, и притом не нужен доступ в бизнес CRM-систему.
                        0
                        Обычно справочники наполняют секретари и сами ими пользуются при переводе звонков. Так что проблем с наполнением не встречал.
                      0
                      У вас на плане размеры не все проставлены.
                        0
                        Все круто, но карты лучше в вектор переделать, тогда инструмент будет более гибкий
                          0
                          Очередной пример излишнего управления персоналом. Люди прекрасно справляются с задачей поиска нужного человека спрашивая у других людей. Не нужно делать огромных кабинетов в которых в одном углу не знают тех кто работает в другом и всё будет отлично. А если задача сотрудника принимать некие документы от других и это обязательно должно быть сделано на бумаге — организуйте такое место ближе к входу и повесьте плакат.
                            +1
                            Как концепт нормально.
                            Имхо фотки сотрудников лишнее.

                            Про качество кода…
                            Используется свой велосипед от колес до руля. Из готового кода используется PHPMailer.
                            Зачем писать свой класс для работы с базой данных?
                            От функций json_escape и sql_escape я в осадок выпал.
                              0
                              Я не профессиональный программист. Пишу, как умею. Вы можете исправить мои недоработки, а я смогу проанализировать и учесть свои ошибки в будущем.

                              Какой класс порекомендуете взамен моего?
                                0
                                А в ответ тишина. Из этого можно сделать вывод, что хороший у меня велосипед. Легкий и быстрый, с который можно легко подняться по лестнице, если сломался грузовой лифт.

                                Мой класс минималистичен. Тончайшая обертка к php функциям. Рассчитан на конкретную задачу, а не универсальный монстр.

                                Про функции до сих пор не знаю, что ответить. Они также минималистичны. mysql_real_escape_string не использовал, потому что он требует установленного подключения к базе. Не смог понять какие она ещё символы экранирует в зависимости от кодировки. Ну, а json_encode не знаю почему не стал использовать. Она показалась мне более заточена под работу с массивами.

                                Хотелось бы получить пояснения к моим ошибкам, а не просто минусы.
                              0
                              Взял ваш скрипт за основу, но добавил несколько фич:
                              1) сотрудники идут не одним потоком, а с разбиением на департаменты и отделы в них.
                              2) QR-код каждого сотрудника (импорт контакта в смартфон). Формируется налету по урлу.
                              3) всплывающее фото сотрудника при наведении
                              4) возможность скачать исходник фотографии сотрудника (бол. размера)
                              5) вывод даты рождения + список ближайших именинников + именинники текущего месяца
                              6) тип контакта: муж/жен/принтер. В зависимости от типа на карте маркеры муж/жен/принтер. Принтеры в списке сотрудников не выводятся )
                                0
                                А где можно посмотреть результат?
                                  0
                                  увы, это интранет
                                  в личку никидаю скриншотов

                              Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

                              Самое читаемое