Проєкт

Десктопний застосунок для родинного дерева

Приватний замовник

Десктопний застосунок для родинного дерева

Замовник хотів зберегти історію своєї родини у зручній програмі: вносити людей, зв’язки, фото та документи — і бачити все як карту, яку можна роздрукувати чи передати дітям. Без хмар, підписок і залежності від онлайн-сервісів.

  • поколінь — без обмежень у моделі
  • 1файл на всю родину, з фото
  • 200+автоматизованих тестів

Виклик

Дві вимоги суперечили одна одній: жодних обмежень по кількості осіб і глибині поколінь — і водночас простий інтерфейс для людини, яка не є генеалогом. Плюс реальні родини не вкладаються в «дерево»: повторні шлюби, діти від різних партнерів, усиновлення, приблизні дати на кшталт «близько 1890».

Рішення

  • Дані спроєктовано як граф, а не дерево: особи, союзи та зв’язки «дитина — сім’я». Це знімає обмеження глибини й коректно описує повторні шлюби та усиновлення.
  • Уся родина зберігається в одному файлі: база SQLite з фото й сканами всередині. Копія файлу — це і резервна копія, і перенесення на інший комп’ютер.
  • Карта будується автоматично: алгоритм розкладки графа розставляє покоління, портрети, кольорові лінії зв’язків; полотно масштабується й перетягується.
  • Режим фокусу на людині: показати лише її родину на 1–4 покоління навколо — карта на сотні осіб залишається читабельною.
  • Розпізнавання неточних дат («бл. 1890», «між 1890 і 1895») і позначки «непевно» для зв’язків, у яких родина не впевнена.
  • Реалізовано на Electron + React + TypeScript як звичайна програма для Windows; поведінка покрита автоматизованими тестами.

Результат

Основний функціонал працює: внесення осіб і зв’язків, фото, автоматична карта, фокус на людині, збереження в один файл. Проєкт розвивається поетапно — наступні кроки: експорт у PDF/зображення, інсталятор, резервні копії.

Технології

Electron · React · TypeScript · Vite · SQLite · dagre · d3-zoom

Потрібне схоже рішення?

Розкажіть про задачу — запропоную, як її вирішити, і назву терміни.

Передзвоню або напишу в месенджер протягом робочого дня. Політика конфіденційності

Або напишіть детально Усі проєкти