Giter VIP home page Giter VIP logo

genealogy's Introduction

Genealogy

Genealogy

About this project

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

Genealogy-000

Genealogy-020b

This 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 person can have 0 to many partners (n people), being part of 0 to many couples (opposite or same biological sex)

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

  7. A couple can have 0 to many children (based on parents_id as a couple or father_id/mother_id individually)

  8. 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/

This demo has 2 family trees implemented, BRITISH ROYALS and KENNEDY.

E-mail Password Purpose
[email protected] password to view teams BRITISH ROYALS and KENNEDY as team owner
[email protected] password to view team BRITISH ROYALS as manager
[email protected] password to view team KENNEDY as editor
[email protected] password to view team BRITISH ROYALS as normal member
[email protected] password to view team KENNEDY as normal member
[email protected] password to view options reserved for the developer, like the user management and access to all persons in all teams

Features

  • Light/Dark
  • Fully responsive
  • Multi-language, English, Dutch and German already implemented, language setting saved in authenticated users profile
  • Multi-tenancy by Jetstream Teams
  • Security through Jetstream Teams Roles & Permissions, 2FA & API can be enabled
  • Offcanvas menu
  • Multiple image upload with possibility of watermarking, photo carousel with navigation

Special features

This application has a built-in Backup Manager :

  • Backups can be initiated and managed manually
  • Backups can be scheludeld by issuing a cron job on your development or production server
  • An e-mail will be send after each backup

This application has a built-in Log Viewer showing :

  • INFO : All scheduled backups
  • DEBUG : All executed database queries, but only in local development mode
  • WARNING : All detected N+1 queries, but only in local development mode
  • ERROR : All detected errors

This application has a built-in User management & logging, available to the developer :

  • User statistics by country of origin
  • User statistics by year, month, week or day

To Do ...

  • GEDCOM import and export (help gladly accepted).

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

Docker Installation

cp env.docker .env

run following command to initialize project

docker run --rm \
    -u "$(id -u):$(id -g)" \
    -v "$(pwd):/var/www/html" \
    -w /var/www/html \
    laravelsail/php83-composer:latest \
    composer install --ignore-platform-reqs

run docker containers

./vendor/bin/sail up -d

./vendor/bin/sail artisan key:generate

./vendor/bin/sail artisan storage:link

./vendor/bin/sail artisan migrate:fresh --seed

./vendor/bin/sail npm install & npm run build

./vendor/bin/sail 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 built-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.

genealogy's People

Contributors

mgeurts avatar meikatz avatar nikoladomazetovikj avatar pleveris avatar povilaskorop avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.