В Alistera CRM я разделил помещение, договор, счёт и платёж. Офис может быть занят, счёт — выставлен, а деньги ещё не поступили. Чтобы видеть работу бизнеса, эти состояния нужно связывать, сохраняя различия между ними.

Для Alistera я собрал отдельную операционную CRM. В ней есть каталог пространств, договоры, счета, платежи, планирование и управление доступом. Это самостоятельный продукт рядом с публичным сайтом и игрой — у каждого своя задача и свой набор данных.

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

Каталог офисов

Архивный интерфейс · демонстрационные данные

Каталог офисов
Сохранённый экран проекта · без интерактивного управления

Пространство существует во времени

Каталог содержит 93 позиции: 71 офис, 12 рабочих столов и 10 общих пространств. Но одного списка мало. Вопрос «свободно ли помещение?» требует даты или периода. Один и тот же офис может быть занят сегодня и доступен через месяц.

Поэтому договор связан с интервалом, а пересечения нужно проверять при изменении данных. Календарь помогает человеку увидеть конфликт; серверная проверка нужна, чтобы конфликт не появился из двух одновременно открытых вкладок.

Счёт — просьба, платёж — событие

Финансовая модель разделяет выставленную сумму, подтверждённый платёж и его распределение. Частичная оплата не обязана полностью закрывать счёт. Один перевод может потребовать разнесения по обязательствам. Эти отношения нельзя надёжно заменить полем «статус».

Ниже открыты демонстрационные счета и платёжные записи. Можно рассмотреть, как интерфейс разделяет обязательство и поступление денег, не используя реальные финансовые данные.

Счета и платежи

Архивный интерфейс · демонстрационные данные

Счета и платежи
Сохранённый экран проекта · без интерактивного управления

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

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

Интерфейсом работа не заканчивается

Приложение использует React, Vite, Cloudflare Worker и D1. Вход и профиль связаны с системой прав; разрешение проверяется на стороне API, а не только через скрытую кнопку. Планирование можно смотреть списком, на канбан-доске или на диаграмме Ганта. Представления разные, задачи должны оставаться одними и теми же.

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

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

Связанные истории: Контроль и версии отчётов · Публичный сайт Alistera.