Создание сайта управляющей компании с закрытым веб-приложением для жителей и диспетчеров: заявки с фото, статусы, исполнители, гостевые пропуска и объявления по домам. Компания обслуживает несколько жилых домов. Собрал всё Евгений Росляков. Сайтами он занимается с 2016 года, оформлен как самозанятый, договор подписывает до начала работ, а юрлицам выдаёт закрывающие документы. Работает в Москве и удалённо.
Раньше заявки шли отовсюду: звонок диспетчеру, сообщение в общем чате дома, записка консьержу. Протечка в подвале могла пролежать в чате полдня, потому что её закопали под десятком сообщений про парковку. Лифт чинили, а житель не знал, взяли ли его обращение в работу, и звонил второй раз. Пропуск для курьера или родителей оформляли голосом, и охрана иногда не находила гостя в списке.
Управляющая компания просила не «ещё один чат», а место, где у каждой заявки есть номер, исполнитель и понятный статус. Жильцов в сумме больше тысячи, дома разные, и часть людей — старшего возраста, им сложные формы не подходят.
Нужно было сделать сайт компании и вместе с ним веб-приложение, в котором заявки перестанут теряться.
Публичная часть простая: о компании, телефоны аварийной службы, документы, объявления по каждому дому. Вход для жителей — по номеру квартиры и коду из договора, пароль человек задаёт сам. Долгой регистрации нет.
Само Веб-приложение написано на Laravel. Бэкенд на PHP, данные лежат в MySQL: дома, подъезды, квартиры, жильцы, заявки, исполнители, гостевые пропуска. Структуру базы мы сначала нарисовали на бумаге вместе с главным диспетчером, и он поправил её по реальным случаям. Например, заявка на общедомовое имущество устроена иначе, чем заявка внутри квартиры: у неё другой исполнитель и другие сроки.
Житель видит форму заявки с категориями (протечка, лифт, свет в подъезде, уборка, другое), загружает фото с телефона и следит за лентой статусов: принята, назначен исполнитель, в работе, выполнена. Если проблема осталась, есть кнопка «не устранено». Пропуск гостю оформляется за минуту: имя, дата, номер машины. Охрана открывает список на день.
Диспетчер сидит в отдельном кабинете: очередь заявок, назначение исполнителей, сроки, комментарии. Аварийная заявка, которая висит дольше нормы, подсвечивается.
Критичные места я закрыл тестами на PHPUnit. Первая группа проверяет расчёт сроков: что считается рабочим днём, как учитываются выходные и праздники. Вторая проверяет права доступа. Жилец видит только свои заявки и пропуска, исполнитель только назначенные ему, диспетчер всё по своим домам. Тесты запускаются перед каждым обновлением, поэтому правка в одном разделе не ломает другой.
Заявки теперь живут в одной системе. У каждой есть номер, фото, исполнитель и статус, житель сам видит, на каком она этапе, и звонит повторно реже. Диспетчеры перестали искать нужное сообщение в общем чате и работают по очереди. Охрана получает список гостей из приложения, а не по звонку.
Для управляющей компании появилась и общая картина по домам: где чаще протекает, какие категории копятся, какой исполнитель не успевает. Раньше такие вещи можно было только вспоминать на планёрке, теперь их видно в списках.
Приложение не отменило телефон, и так задумано. Часть пожилых жильцов по-прежнему звонит, а диспетчер заводит заявку за них в том же кабинете. Всё попадает в один журнал, неважно, как обращение пришло. Это отдельно проговаривали с диспетчерами: никого не заставляют переучиваться за неделю.
Что дальше: уведомления в мессенджере, чтобы жителю не приходилось заходить на сайт за статусом, и оплата дополнительных услуг. Это пока в планах, в первую версию не входило. Сначала компания хотела проверить, что базовый порядок с заявками держится в работе, и только потом добавлять новое.
Если заявки в вашем доме или посёлке тонут в чатах, отправьте мне сообщение через freelance.ru. Разберём, что из этого стоит собирать в первую очередь.