Проєкт
Десктопний застосунок для родинного дерева
Приватний замовник
Замовник хотів зберегти історію своєї родини у зручній програмі: вносити людей, зв’язки, фото та документи — і бачити все як карту, яку можна роздрукувати чи передати дітям. Без хмар, підписок і залежності від онлайн-сервісів.
- ∞поколінь — без обмежень у моделі
- 1файл на всю родину, з фото
- 200+автоматизованих тестів
Виклик
Дві вимоги суперечили одна одній: жодних обмежень по кількості осіб і глибині поколінь — і водночас простий інтерфейс для людини, яка не є генеалогом. Плюс реальні родини не вкладаються в «дерево»: повторні шлюби, діти від різних партнерів, усиновлення, приблизні дати на кшталт «близько 1890».
Рішення
- Дані спроєктовано як граф, а не дерево: особи, союзи та зв’язки «дитина — сім’я». Це знімає обмеження глибини й коректно описує повторні шлюби та усиновлення.
- Уся родина зберігається в одному файлі: база SQLite з фото й сканами всередині. Копія файлу — це і резервна копія, і перенесення на інший комп’ютер.
- Карта будується автоматично: алгоритм розкладки графа розставляє покоління, портрети, кольорові лінії зв’язків; полотно масштабується й перетягується.
- Режим фокусу на людині: показати лише її родину на 1–4 покоління навколо — карта на сотні осіб залишається читабельною.
- Розпізнавання неточних дат («бл. 1890», «між 1890 і 1895») і позначки «непевно» для зв’язків, у яких родина не впевнена.
- Реалізовано на Electron + React + TypeScript як звичайна програма для Windows; поведінка покрита автоматизованими тестами.
Результат
Основний функціонал працює: внесення осіб і зв’язків, фото, автоматична карта, фокус на людині, збереження в один файл. Проєкт розвивається поетапно — наступні кроки: експорт у PDF/зображення, інсталятор, резервні копії.
Технології
Electron · React · TypeScript · Vite · SQLite · dagre · d3-zoom
Інші кейси
Потрібне схоже рішення?
Розкажіть про задачу — запропоную, як її вирішити, і назву терміни.
Або напишіть детально Усі проєкти