Lineage is a project born out of the desire to create a centralized platform for connecting with family members, exploring family trees, and preserving cherished memories. This project aimed to provide a comprehensive solution for tracking family relationships, organizing family events, and fostering communication among family members.
At its core, Lineage is designed to provide a platform for individuals to connect with their family members and explore the intricate branches of their family tree. Lineage encapsulates the essence of family bonds and the desire to preserve unique family histories.
In this project, I wore multiple hats, taking on the roles of project manager, developer, and designer. The journey began in late October 2023, marked by the quest to find the perfect name for the application. Subsequent weeks saw the project evolve from conceptualization to implementation, with me steering the ship.
Lineage has been created for individuals who value the importance of family connections.
My story
Growing up in the quiet town of Kapsabet in Kenya was like living in a big family. My dad’s brothers and their families lived close, just a short walk away. My cousins and I were best buddies, spending our days playing and laughing together. Big family events, especially Christmas, were special times when we all came together to celebrate.
As we grew up, things changed. Families moved to different towns for jobs and opportunities, and we didn’t get to see each other as much. The everyday meals we used to share became rare, and sometimes we wouldn’t meet for years. That’s where lineage comes into the picture.
I wanted to create a digital space that brings us, my scattered family, back together. It’s not just about making a family tree; it’s about planning events, sharing old memories like photos and videos, and feeling that closeness again. In simple words, lineage is like a digital bridge that connects us, no matter where we are. It’s my way of bringing back the warmth and togetherness we had in Kapsabet, even if it’s just a click away.
Accomplishments
Architecture Diagram
Lineage follows a client-server architecture, with Flask as the backend and MySQL as the database. The front end uses HTML, CSS, JavaScript, and jQuery with Bootstrap for a modern and responsive look.
The architecture diagram below illustrates the seamless flow of data through the application.
Lineage architectural design
Features
Key features include a dynamic family tree view, event planning capabilities, and a centralized hub for family photos and memories.
Technical Challenge
One of the most challenging technical hurdles was ensuring the seamless deletion of family members and their associated relationships when a family member or the whole family was deleted from the tree.
A reliable method for handling cascade deletions was required to preserve data integrity and avoid orphaned entries.
I developed a method to guarantee the deletion of families, members, and relationships in a cascading fashion by utilizing SQLAlchemy’s cascade options and carefully maintaining foreign key relationships.
Now that the programme has effectively implemented cascade deletions, data integrity is maintained since when a family or member is deleted, all related data and relationships are likewise deleted.
What I learned
In the process of creating lineage, I gained several valuable lessons.
Database Design Mastery: A deep understanding of database relationships and cascading deletion.
Flask and SQLAlchemy Expertise: Proficiency in using Flask and SQLAlchemy for web application development.
Problem-Solving Resilience: Overcoming challenges through collaboration, research, and iterative problem-solving.
I am a passionate engineer on a journey to bridge technology and human connections. Check out lineage on GitHub, explore the deployed project here, and learn more about me on LinkedIn.
In crafting lineage, I’ve not only developed a functional tool for families but have also grown as an engineer, embracing challenges and learning valuable lessons along the way. This project is a testament to my commitment to creating technology that enriches lives and fosters meaningful connections.
No comment yet...
leave a comment:
Login to comment