01Кейс — Задача

Комплект листов — 5 листов

PropTracker — платформа для инвестиций в недвижимость

Частная платформа, созданная на заказ для инвесторов в недвижимость в Худжанде, Таджикистан. Она заменила общую таблицу одной системой для объектов, расходов, оценки сделок и оценок модели.

Клиент
Инвесторы в недвижимость
Место
Худжанд, Таджикистан
Тип
Заказная платформа
Статус
Используется инвесторами, для которых создана
Роли
Админ · Просмотр

Проблема

Инвесторы вели портфель в Excel. С ростом числа объектов и сделок файлу становилось все сложнее доверять — и все сложнее им делиться.

  1. Хрупкие формулыРасчеты держались на хрупких формулах, которые легко сломать или случайно перезаписать.
  2. Расходящиеся копииЗаписи терялись или устаревали между копиями файла.
  3. Доступ «всё или ничего»Чтобы показать цифры одному человеку, приходилось отправлять ему весь файл.

Что мы создали

PropTracker — не шаблонный продукт. Он спроектирован и создан под процессы этой группы инвесторов: расчеты перенесены из формул таблицы в проверенный код, а доступ разграничен по ролям.

  1. Объекты и хронологияКаждый объект с покупкой, продажей и хронологией событий с датами.
  2. РасходыЗатраты по каждому объекту с разбивкой по категориям.
  3. Общие расчетыВложенный капитал, цена за м², прибыль и остаток к оплате считаются в протестированном коде, общем для сервера и форм.
  4. Оценка сделокПотенциальные сделки оцениваются до покупки; решение и его причина сохраняются.
  5. Оценки моделиОтдельный сервис моделей возвращает оценку цены, оценку сделки, продаваемость, срок продажи и прогноз ROI.
  6. Доступ по ролямАдминистраторы редактируют записи; наблюдатели читают и могут запрашивать оценки. Общий доступ снижает потребность пересылать копии таблицы.
02Архитектура

Типизированное веб-приложение поверх PostgreSQL с отдельным сервисом моделей на Python.

Браузер взаимодействует только с приложением Next.js. Его серверные маршруты проверяют сессию, читают и пишут через Prisma и вызывают сервис моделей с сервера. Обе ветви начинаются в приложении, и оценки возвращаются через него.

Рис. 1 — Граница приложения и поток данных

Слои

  1. ИнтерфейсЗаписи, оценки и графики в браузере.
  2. ДоступРабочие маршруты проверяют сессию; изменение записей требует роли администратора.
  3. ДанныеРеляционная модель объектов, оценок, прогнозов, событий и расходов.
  4. ОценкиСервис FastAPI, вызываемый с сервера. Приложение ведет историю прогнозов; сбои записи попадают в журнал.
Название
PropTracker — архитектура системы
Приложение
Next.js 14 · TypeScript · Prisma
База данных
PostgreSQL
Сервис моделей
FastAPI · scikit-learn
Лист
02 / 05
03Модель данных

Упрощенное подмножество реальной модели данных.

Объекты хранят факты покупки и продажи. Оценки могут существовать до покупки; прогнозы относятся к объекту или к оценке. События и расходы добавляются как записи с датами. Остальные таблицы опущены.

Рис. 2 — Сущности и связи, упрощенно

Правила, заложенные в модель

  1. Прогнозы записываютсяКаждый прогноз записывается с версией модели и снимком входных данных; по замыслу это запись о том, что модель знала в тот момент.
  2. События образуют хронологиюСобытия добавляются в хронологию объекта, задуманную как пополняемую без перезаписи.
  3. Дата продажи задает статусЕсли указана дата продажи, сервер ставит статус «продан»; иначе сохраняется переданный статус.
  4. Один модуль расчетовСерверные маршруты и предпросмотр в формах используют один протестированный модуль расчетов.
Название
PropTracker — модель данных
ORM
Prisma
Хранилище
PostgreSQL
Показано сущностей
6 из 12
Лист
03 / 05
04Роли и доступ

Доступ после входа, две роли.

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

Рис. 3 — Доступ по ролям, по серверным маршрутам
ВозможностьАдминистраторНаблюдатель
Просмотр объектов, оценок и прогнозов
Запрос оценки у модели (приложение записывает запрос в историю)
Добавление и изменение объектов, событий и расходов
Сохранение решения по сделке
Выгрузка отчетов (CSV, XLSX)
Рис. 3 — Доступ по ролям, по серверным маршрутам

Доступ

  1. ВходСессии NextAuth.js; повторные неудачные входы временно блокируют аккаунт.
  2. АдминистраторВедет объекты, события, расходы и оценки; выгружает отчеты.
  3. НаблюдательЧитает записи и может запрашивать оценки; не может редактировать записи.
Название
PropTracker — роли и доступ
Вход
NextAuth.js
Роли
Админ · Просмотр
Правки записей
Только администратор
Лист
04 / 05
05Статус

Используется, данные закрыты.

PropTracker используют инвесторы, для которых он создан. Данные их портфеля конфиденциальны, поэтому на этой странице нет цифр и скриншотов.

Назад к работам