# vtorum

Сбор данных о buildin

Архитектура

Инфраструктура

Разработка

### Этап 0. Исследование Buildin
  - снять реальные ответы API V1 и V2;
  - собрать тестовую базу со всеми типами свойств;
  - выгрузить представления, фильтры и сортировки;
  - исследовать формулы и rollups;
  - составить матрицу совместимости.

### Этап 1. Единая объектная модель
Сразу проектируются:

  - страницы;
  - блоки;
  - базы;
  - записи;
  - свойства;
  - представления;
  - связи.
Нельзя сначала сделать заметки, а затем «прикрутить таблицы»: это почти наверняка потребует переделки модели страниц, прав, API и истории версий.

### Этап 2. Backend данных
  - PostgreSQL schema;
  - CRUD страниц и блоков;
  - CRUD баз и записей;
  - свойства;
  - запросы;
  - фильтры;
  - сортировки;
  - relation;
  - вычисляемые поля.

### Этап 3. Интерфейс
  - дерево;
  - редактор;
  - таблица базы;
  - карточка записи;
  - настройка свойств;
  - фильтры;
  - сортировки;
  - Kanban;
  - календарь;
  - галерея.

### Этап 4. Публикация
  - обычные страницы;
  - публичные базы;
  - публичные представления;
  - открытие записи базы как страницы;
  - фильтры публичного представления;
  - embed.

### Этап 5. Импорт Buildin
  - страницы;
  - базы;
  - записи;
  - свойства;
  - файлы;
  - связи;
  - представления.

### Этап 6. API V2 и V1
API разрабатывается параллельно с backend, но полная контрактная совместимость проверяется после стабилизации модели.

### Этап 7. Совместная работа
Совместное редактирование требуется и для обычных страниц, и для страниц-записей базы. Изменение свойств записи также должно передаваться другим пользователям в реальном времени.

## Новая граница MVP
Подсистема | MVP
Дерево страниц | Да
Блочный редактор | Да
Файлы в Selectel S3 | Да
Публичные страницы | Да
Пользователи и права | Да
Табличные базы | Да
Записи как страницы | Да
Все основные свойства | Да
Фильтры и сортировки | Да
Table, Board, List, Gallery, Calendar | Да
Relations | Да
Базовые formulas | Да
Базовые rollups | Да
Импорт баз Buildin | Да
Экспорт в Buildin | Да
API V2 databases/pages/blocks | Да
API V1 facade | Да
Совместное редактирование | Да, beta
Comments | Да, базовые
Timeline | После MVP
Mind map | После MVP
Whiteboard | После MVP
AI-функции | После MVP
