Inspiration
Every year each member of my choir family recites their lineage orally, but history gets lost and forgotten after 5 generations or so. I wanted to make an online version so that I would have a record of who my ancestors were going farther back.
What it does
It accepts a member's name and displays all their information recorded in the database, including their Bigs, Littles, siblings, co-bigs, and other data as relevant. For example, my choir family tree displays voice part. Then, it lists that member's entire family line starting from their earliest recorded ancestor down through their littles, with an arrow at the place where the member was "born." This genealogical record follows the "begat" format used in my choir family's oral tradition.
How I built it
I store my data in a Python dictionary by class year. Then a background generic framework file links together the family tree through adjacency lists. The interface python script contains functions unique to the organization (like creating the list of BCM's plucky duckies), and is the one that the user runs.
Challenges I ran into
My own family line is a weird shape (Bigs co-bigging with their Littles, giving me a (grand)Big), so my initial implementation had to parse and format that properly. I also had to account for premature Littles, who are of an older class year than their Bigs. Right now my challenge is figuring out what to do with exact duplicate names (first and last)
Accomplishments that I'm proud of
I started this project on my laptop over Thanksgiving break this year, and now I have a version on a website that anyone can run (if they have the link). The github link below is to my sample data of fandom characters' relationships. The temporary link to my larger dataset is http://familylinetree.pythonanywhere.com/demo
What I learned
I learned that I should have used a database to store my data instead of making my own dictionary.

Log in or sign up for Devpost to join the conversation.