VCM
Веб-приложение с ролевым доступом, которое объединяет всё необходимое для жилого комьюнити в одном интерфейсе: собственники, жильцы, финансы, бронирования, заявки и отчетность.
React 19
React Router 7
Vite
TypeScript
SCSS
Jotai
SWR
Firebase Cloud Messaging

Обзор
VCM — это фронтенд для платформы управления недвижимостью и комьюнити, обслуживающей две принципиально разные аудитории из единой кодовой базы. Администраторы используют ее для операционной деятельности: объекты, жильцы, финансы, инциденты, отчетность и коммуникации. Собственники и жильцы используют ее для решения своих задач, включая платежи, заявки на обслуживание, бронирование удобств, работу с документами и информацию о комьюнити. Продукт объединяет множество разрозненных ручных процессов в единую согласованную систему.
Проблема
Управление жилым комьюнити требует одновременного контроля множества процессов: карточек жильцов и собственников, заявок на обслуживание и ремонт, бронирования удобств, обращений, истории платежей, выписок, отчетов по инспекциям и инцидентам, а также объявлений. Когда эти данные рассредоточены по таблицам, цепочкам писем и разрозненным сервисам, неизбежно возникают потери и ошибки. Задача состояла в создании единого интерфейса, обслуживающего как операционную команду, так и жильцов, находящихся на их попечении, — два принципиально разных пользовательских сценария — при сохранении высокой скорости, целостности и удобства поддержки продукта по мере добавления новых рабочих процессов.
Моя роль и подход
Я руководил разработкой фронтенда: архитектурой приложения, общим слоем данных, переиспользуемыми UI-паттернами и ролевой структурой, связывающей систему воедино. Будучи ведущим контрибьютором кодовой базы, я задал стандарты, которым следовали остальные этапы разработки. Моим приоритетом было избежать типичной для подобных приложений ловушки — повторного написания логики таблиц, фильтров и форм под каждую новую сущность. Вместо этого я разработал компактный набор надежных примитивов и оболочку с разграничением прав, благодаря чему внедрение нового рабочего процесса стало вопросом композиции, а не изобретения с нуля.
Стек технологий
Ключевые особенности
Галерея


Сложности и решения
Главной технической сложностью был масштаб охвата: десятки типов сущностей, каждому из которых требовались просмотр списка, фильтрация, создание, редактирование и экспорт в рамках двух пользовательских ролей. Повторное написание логики под каждую функцию привело бы к появлению неподдерживаемого приложения. Я решил эту задачу с помощью переиспользуемых примитивов и настраиваемой модели навигации на основе прав доступа: интерфейс адаптируется к разрешениям бэкенда без жестко прописанных меню или дублирования логики.
Другой постоянной потребностью было состояние, устойчивое к реальным условиям. Я реализовал пагинацию и фильтрацию списков через параметры URL (query string), что делает представления удобными для отправки по ссылке, сохраняет естественную работу кнопок браузера «Назад» и «Вперед» и удерживает состояние таблиц при перезагрузке страниц. Я централизовал аутентификацию в общем состоянии и на уровне запросов, сохранив функциональные компоненты легковесными, а также внедрил предохранители ошибок (error boundaries), состояния загрузки и корректное перенаправление при истечении сессии, чтобы насыщенный дашборд никогда не падал молча.
Результат
VCM — это единый фронтенд, полноценно закрывающий обе стороны управления комьюнити. Операционные команды ведут полный жизненный цикл объектов из одного рабочего пространства администратора, а жильцы самостоятельно оплачивают счета, создают заявки, оформляют бронирования и просматривают документы. Благодаря архитектуре на общих примитивах и обо��очке с учетом прав доступа, кодовая база масштабируется по мере добавления новых рабочих процессов, не утяжеляясь с каждым из них.
Столкнулись с похожей продуктовой задачей?
Расскажите о текущем состоянии продукта, необходимом результате и имеющихся ограничениях. На основе этого я сформулирую понятный первый этап.
Услуги разработки SaaS