Genealogy Tree — генеалогическая платформа (full-stack)
С марта 2026 веду разработку веб-платформы для структурирования родословных данных: от проектирования предметной области и контрактов API до интерактивного клиента на графе. Здесь много «настоящей» доменной сложности: нечёткие даты, типизированные связи, трассировка к источникам и аудит.
Контекст и постановка
Массовые сервисы родословной часто сводят задачу к визуализации «дерева» и упрощают реальность исследования: разная гранулярность дат, несколько типов происхождения, противоречащие источники и необходимость явной связи «утверждение — доказательная база». Постановка проекта — закрыть эти требования формальной моделью данных и стабильным API, а не только экраном со схемой.
Зона ответственности
Полный цикл на уровне продукта и инженерии: монорепозиторий (pnpm workspaces), схема PostgreSQL и миграции через Prisma, модульный REST API на NestJS, клиентское приложение на Next.js с интерактивным графом на React Flow, локальная инфраструктура в Docker Compose (СУБД, S3-совместимое хранилище). Архитектура домена, реализация бэкенда и фронтенда, каркас поставки и эксплуатации.
Предметная модель
Изолированные деревья с ролевым доступом (владелец, редактор, наблюдатель); персоны с вариантами имён и диапазонами дат с точностью; родственные связи как отдельные сущности с типом (биологическая, усыновление, опека и др.) и уровнем достоверности; союзы (брак, партнёрство) с участниками и дочерними связями; события, места, источники, цитаты, медиа и заметки; журнал изменений для аудита и совместной работы. Такой дизайн отражает практику генеалогического исследования и переносим на другие предметные области с неполными и спорными фактами.
Технологии
Web
Graph UI
API
Database
Storage
Infra
Архитектура проекта
Классическое разделение клиент — API — персистентность; типобезопасный контракт между слоями за счёт TypeScript и Prisma Client; объекты вынесены в совместимое с S3 хранилище.
- 1
Клиент
Next.js (App Router), React, TypeScript
- 2
Сервер
NestJS, Prisma ORM, PostgreSQL
- 3
Объекты
MinIO (S3 API), привязка к сущностям домена
- 4
Инфраструктура
Docker Compose, изолированные порты для локальной разработки
Интерфейс
Рабочее место ориентировано на навигацию по графу: узлы персон и союзов, выделение и фильтрация, сохранение координат на холсте; детальные панели для редактирования без перегрузки схемы. Заложена основа для развития UX (доступность, мобильные сценарии, производительность на больших графах).
Статус и roadmap
Активная разработка MVP: ключевые сущности домена и модули API, базовый UI дерева и сценарии редактирования. В приоритете — стабилизация пользовательских потоков, загрузка и версионирование медиа, согласованность состояния графа с сервером и покрытие критичных сценариев тестами.