Deeve Technologies
Client workWeb Application

Family Tree - Bloodline

An interactive family tree application with multi-generation support, member management and visual relationship rendering.

ClientDeeve Technologies
RoleFull-stack developer
Year2026
TypeWeb Application
Updated23 Sep 2026
Porfolio01 2
Overview

An interactive family tree web application with multi-generation support, member management and visual rendering of relationships.

PHP and MySQL.

Built with
PHPMySQL
The problem

What was in the way

Family history is a graph, not a list, and most people record it in a document that cannot show the shape of it.

A written record works for two generations. Past three it stops being readable. Nobody can hold the structure in their head while reading down a page, and the question people actually want answered, how am I related to this person, requires tracing a path that prose cannot show.

Then the awkward cases arrive and break the naive model. Remarriage means a person has two spouses at different times and children across both. Adoption means a parent relationship that is not a biological one. Incomplete records mean a person whose parents are unknown but whose children are not.

Any structure that assumes one marriage, two known parents and a complete record fails on a real family within about four generations.

What I built

Three parts, each with a reason

Multi-generation tree rendering

The relationships drawn rather than described, which is the entire point of a family tree.

The layout has to handle asymmetric branches: one sibling with six children and another with none, in the same generation, without either becoming unreadable.

Member management

Adding people, editing details and attaching them to the right branch without breaking existing links.

Editing is where most family tree software damages data. Changing one person's parent has consequences for everyone below them, and a system that lets that happen silently produces a tree nobody trusts.

Interactive navigation

Moving through generations rather than loading one enormous static image.

A complete tree rendered at once is unreadable and slow. Navigating from a person outward, one generation at a time, matches how people actually explore a family tree.

How it was built

The engineering underneath

The schemaRelationships are separate records rather than columns on a person, which is what makes adoption expressible
MarriagesRecords with their own dates rather than a spouse field, so remarriage stops being a special case
PHP and MySQLRendered client side from a data payload, on ordinary hosting, on its own subdomain

The interesting part is the schema rather than the interface.

People are the entities. Relationships are separate records rather than columns on a person. A parent link is a row connecting two people with a type, which is what makes adoption expressible: the relationship carries the nature of the connection rather than the person carrying two fixed parent fields.

Marriages are records with their own dates rather than a spouse field, which is how remarriage stops being a special case. A person can have several, ordered in time, each with its own children.

Incompleteness is the default rather than an error. A person with unknown parents is a valid record, not a broken one, because that is the normal state of a family tree more than a few generations back.

Getting this right at the schema level is what determines whether the application handles a real family. Storing a spouse and two parents as columns on a person is the obvious first design, it is simpler, and it cannot represent most families.

PHP with MySQL, deployed on its own subdomain.

Rendering is done client side from a data payload rather than server side into an image, so the tree can be navigated and re-centred without a round trip.

Conventional stack deliberately. A family tree is kept for decades, by people who are not technical, and it needs to still run on ordinary hosting in ten years.

PHP with MySQL. Hosted on its own subdomain.

PHPMySQL
More work

Projects like this

All projects
Why it matters for your project

I build software, and I measure whether it works.

The same questions I research are the ones I ask on client builds: is it reliable, is it fast, is it easy to use, and is it secure. Those four drove satisfaction in my ICT portal study, and they shape how I scope and test every project.