SkillAgentSearch skills...

Genealogy

Genealogy is a free and open-source family tree PHP application to record family members and their relationships, build with LARAVEL 12.

Install / Use

/learn @MGeurts/Genealogy

README

<p align="center"><img src="https://genealogy.kreaweb.be/img/genealogy.svg" width="300px" alt="Genealogy"/></p>

Genealogy

Latest Stable Version

Donate via PayPal Buy Me a Coffee

About this project

<b>Genealogy</b> is a free and open-source family tree PHP application to record family members and their relationships, build with Laravel 12.

<img src="https://genealogy.kreaweb.be/img/help/genealogy-000.webp" class="rounded" alt="Genealogy-000"/> <img src="https://genealogy.kreaweb.be/img/help/genealogy-020.webp" class="rounded" alt="Genealogy-020"/>

This <b>TallStack</b> application is build using :

<ul> <li><a href="https://laravel.com/" target="_blank">Laravel</a> 12</li> <li><a href="https://jetstream.laravel.com/" target="_blank">Laravel Jetstream</a> 5 (featuring <a href="https://jetstream.laravel.com/features/teams.html" target="_blank">Teams</a>)</li> <li><a href="https://livewire.laravel.com/" target="_blank">Livewire</a> 4</li> <li><a href="https://alpinejs.dev/" target="_blank">Alpine.js</a> 3</li> <li><a href="https://tailwindcss.com/" target="_blank">Tailwind CSS</a> 4</li> <li><a href="https://tallstackui.com//" target="_blank">TallStackUI</a> 3 (featuring <a href="https://tabler.io/icons" target="_blank">Tabler Icons</a>)</li> <li><a href="https://filamentphp.com//" target="_blank">Laravel Filament</a> 5 (only <a href="https://filamentphp.com/docs/5.x/tables/overview" target="_blank">Table Builder</a>)</li> </ul> <img src="https://genealogy.kreaweb.be/img/logo/tallstack.webp" class="rounded" alt="tall-stack"/>

Logic concept

  1. A person can have 1 biological father (1 person, based on <b>father_id</b>)

  2. A person can have 1 biological mother (1 person, based on <b>mother_id</b>)

  3. A person can have 1 set of parents, biological or not (1 couple of 2 people, based on <b>parents_id</b>)

  4. A person can have 0 to many biological children (n people, based on father_id/mother_id)

  5. A couple can have 0 to many (plus) children (based on <b>parents_id as a couple</b> or <b>father_id/mother_id individually</b>)

  6. A person can have 0 to many partners (n people), being part of 0 to many couples (opposite or same biological sex)

  7. A person can be part of a couple with the same partner multiple times (remarriage or reunite)

  8. A person can have 0 to many siblings (n people) (based on <b>parents_id as a couple</b> or <b>father_id/mother_id individually</b>)

  9. A couple can be married or not, still together or separated in the meantime

Requirements

<ul> <li> The application must be served in HTTPS mode, not in HTTP.<br/> </li> <li> At least <a href="https://www.php.net/" target="_blank">PHP</a> 8.4, supporting Laravel 12.<br/> </li> <li> At least <a href="https://www.mysql.com/" target="_blank">MySQL</a> 8.0.1 or <a href="https://mariadb.com/" target="_blank">MariaDB</a> 10.2.2 or an equivalent database, supporting <a href="https://dev.mysql.com/doc/refman/8.0/en/with.html" target="_blank">Recursive Common Table Expressions</a>. </li> </ul>

License

This project is open-sourced software licensed under the MIT license.

Demo

<a href="https://genealogy.kreaweb.be/" target="_blank">https://genealogy.kreaweb.be/</a>

<p>This demo has 2 family trees implemented, <b>BRITISH ROYALS</b> and <b>KENNEDY</b>.</p> <table> <thead> <tr> <th>E-mail</th> <th>Password</th> <th>Purpose</th> </tr> </thead> <tbody> <tr> <td><b>administrator@genealogy.test</b></td> <td>password</td> <td>to access teams <b>BRITISH ROYALS</b> and <b>KENNEDY</b> as team <b>owner</b></td> </tr> <tr> <td><b>manager@genealogy.test</b></td> <td>password</td> <td>to access team <b>BRITISH ROYALS</b> as <b>manager</b></td> </tr> <tr> <td><b>editor@genealogy.test</b></td> <td>password</td> <td>to access team <b>KENNEDY</b> as <b>editor</b></td> </tr> <tr> <td><b>member_1@genealogy.test</b></td> <td>password</td> <td>to access team <b>BRITISH ROYALS</b> as normal <b>member</b></td> </tr> <tr> <td><b>member_4@genealogy.test</b></td> <td>password</td> <td>to access team <b>KENNEDY</b> as normal <b>member</b></td> </tr> <tr> <td><b>developer@genealogy.test</b></td> <td>password</td> <td>to access options reserved for the <b>developer</b>, like the <b>user management</b> and access to <b>all persons</b> in <b>all teams</b></td> </tr> </tbody> </table>

Roles & permissions

Teams & Users

<table> <thead> <tr> <th style="text-align:left">Role</th> <th style="text-align:left">Model</th> <th style="text-align:left">Permissions</th> </tr> </thead> <tbody> <tr> <td rowspan="3"><b>Team owner</b></td> <td>personal team</td> <td>update, invite members</td> </tr> <tr> <td>non-personal team</td> <td>read, update, delete, invite members, transfer ownership</td> </tr> <tr> <td>new team</td> <td>create</td> </tr> <tr> <td rowspan="3"><b>Team member</b></td> <td>personal team</td> <td>update, invite members</td> </tr> <tr> <td>non-personal team</td> <td>accept membership, read, leave</td> </tr> <tr> <td>new team</td> <td>create</td> </tr> </tbody> </table>

Persons & Couples

<table> <thead> <tr> <th style="text-align:left">Role</th> <th style="text-align:left">Model</th> <th style="text-align:left">Permissions</th> </tr> </thead> <tbody> <tr> <td rowspan="2"><b>Administrator</b></td> <td>person</td> <td>create, read, update, delete</td> </tr> <tr> <td>couple</td> <td>create, read, update, delete</td> </tr> <tr> <td rowspan="2"><b>Manager</b></td> <td>person</td> <td>create, read, update, delete</td> </tr> <tr> <td>couple</td> <td>create, read, update, delete</td> </tr> <tr> <td rowspan="2"><b>Editor</b></td> <td>person</td> <td>create, read, update</td> </tr> <tr> <td>couple</td> <td>create, read, update</td> </tr> <tr> <td rowspan="2"><b>Member</b></td> <td>person</td> <td>read</td> </tr> <tr> <td>couple</td> <td>read</td> </tr> </tbody> </table>

Features

<ul> <li>Light/Dark theme</li> <li>Fully responsive</li> <li>Multi-language, language setting saved in authenticated users profile</li> <li>Multi-timezone, timezone setting saved in authenticated users profile</li> <li>Multi-tenancy by Laravel Jetstream Teams, including Transfer Team Ownership</li> <li>Security through Laravel Jetstream Teams Roles & Permissions, 2FA & API can be enabled</li> <li>Offcanvas menu</li> <li>Multiple image upload with possibility of watermarking, photo carousel with navigation</li> <li>Multiple documents upload</li> <li>Event management & timeline overview</li> </ul>

Special features

<p>This application has a built-in <b>Backup Manager</b> : <ul> <li>Backups can be initiated and managed manually</li> <li>Backups can be scheludeld by issuing a cron job on your development or production server</li> <li>An e-mail

Related Skills

View on GitHub
GitHub Stars321
CategoryDevelopment
Updated5h ago
Forks102

Languages

PHP

Security Score

100/100

Audited on Mar 26, 2026

No findings