Skip to content

A website for storing, browsing, and updating a family tree

License

Notifications You must be signed in to change notification settings

hasauino/family-tree

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

89 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Family Tree

This is a server for storing, browsing, and updating a family tree, made using Django.

Demo

It has the following features:

  • Users can add new people, navigate the tree (interactively), and search from a root to any person at once.
  • Supported languages: English, and Arabic. (configurable only during deployment).
  • Backups every day at 3:00 am. With a restore DB page accessible to staff users.
  • User registration through email.
  • Staff users see notification on new additions (newly added persons).
  • Normal users can add new persons to the tree, but these additions are local and only visible to the user. Once they are published by a staff member, these additions will become global.
  • Help and about page are editable using Wagtail CMS.
  • Staff users can add shortcuts (bookmarks), which can be further customized (color, font color, size, and overwrite label).

Getting Started

1- Install docker compose.

2- Adjust the configurations in the .env file.

3 🚀 start the server:

docker compose up

Go to localhost:8000 (or the port you configured). For admins:

Development

Setup

  • During development, you can change configurations from the .env file. You can tell git to ignore your changes:
git update-index --assume-unchanged .env
  • To source this file automatically when you run Django commands through poetry, you can add poetry-dotenv-plugin to poetry.

  • For example, you can run Django development server as follows:

poetry run familytree/manage.py runserver

this will use the environment variables define in .env. This way you can selected a different Database file, a different language ,or different project settings, etc..

Localization

poetry run familytree/manage.py makemessages -a

then compile:

poetry run familytree/manage.py compilemessages