genealogy

Genealogy is a free and open-source (family tree) application to record family members and their relationships, build with PHP (Laravel 11).

MIT License

Stars
68
Committers
7

Genealogy

About this project

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

This TallStack application is build using :

Logic concept

  1. A person can have 1 biological father (1 person, based on father_id)

  2. A person can have 1 biological mother (1 person, based on mother_id)

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

  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 parents_id as a couple or father_id/mother_id individually)

  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 parents_id as a couple or father_id/mother_id individually)

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

Requirements

License

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

Demo

https://genealogy.kreaweb.be/

Roles & permissions

Features

Special features

To Do ...

Techniques

Both the ancestors and descendants family trees are build using Recursive Common Table Expressions (Recursive CTE). This prevents the N+1 query problem generating the recursive tree family elements and dramatically improves performance.

Installation

create a new project folder, cd into the folder

git clone https://github.com/MGeurts/genealogy.git .

cp .env.example .env

make the needed changes regarding name, url, database connection & mail server

composer install

php artisan key:generate

php artisan storage:link

php artisan migrate:fresh --seed

npm install & npm run build

php artisan serve or npm run dev

Testing

php artisan test

Contributing

Feel free to submit Issues or Pull Requests, for bugs, suggestions or feature requests.

Documentation

The documentation is included in the applications help. Visit the demo project to read the documentation.

Sponsoring

If you like this project, please consider giving it a star and spread the word. Thank you.

Impressum

Basic idea (2017)

This application is based on an original idea by Nafies Luthfi. Thanks for your excellent work.

Design & Development (2024)

This Laravel application is designed and developed by kreaweb.be.

Related Projects