Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/hasauino/family-tree
A website for storing, browsing, and updating a family tree
https://github.com/hasauino/family-tree
django docker family-history-applications family-tree family-tree-website kinship wagtail
Last synced: about 1 month ago
JSON representation
A website for storing, browsing, and updating a family tree
- Host: GitHub
- URL: https://github.com/hasauino/family-tree
- Owner: hasauino
- License: mit
- Created: 2023-09-26T20:24:35.000Z (about 1 year ago)
- Default Branch: master
- Last Pushed: 2024-04-26T20:33:18.000Z (8 months ago)
- Last Synced: 2024-04-26T21:34:06.858Z (8 months ago)
- Topics: django, docker, family-history-applications, family-tree, family-tree-website, kinship, wagtail
- Language: Python
- Homepage:
- Size: 93.9 MB
- Stars: 2
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Family Tree
This is a server for storing, browsing, and updating a family tree, made using [Django](https://www.djangoproject.com/).
[Demo](http://new.omaritree.com/)
It has the following features:
- [x] Users can add new people, navigate the tree (interactively), and search from a root to any person at once.
- [x] Supported languages: English, and Arabic. (configurable only during deployment).
- [x] Backups every day at 3:00 am. With a restore DB page accessible to staff users.
- [x] User registration through email.
- [x] Staff users see notification on new additions (newly added persons).
- [x] 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**.
- [x] Help and about page are editable using [Wagtail](https://wagtail.org/) CMS.
- [x] Staff users can add shortcuts (bookmarks), which can be further customized (color, font color, size, and overwrite label).## Getting Started
1- Install [docker compose](https://docs.docker.com/compose/install/).
2- Adjust the configurations in the [.env](.env) file.
3 :rocket: start the server:
```bash
docker compose up
```Go to [localhost:8000](http://localhost:8000/) (or the port you configured). For admins:
- Default user name: admin
- default password: admin- Admin page: http://localhost:8000/edarah
- [Wagtail](https://wagtail.org/) editor (for editing home, and about pages): http://localhost:8000/tahreer- There is a normal user whose creditials are:
- Username: user1
- Password: user12345678## Development
### Setup
- During development, you can change configurations from the [`.env`](.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](https://pypi.org/project/poetry-dotenv-plugin/) to poetry.
- For example, you can run Django development server as follows:
```bash
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
```bash
poetry run familytree/manage.py makemessages -a
```then compile:
```bash
poetry run familytree/manage.py compilemessages
```