My Application

One of my interests is Genealogy. We have a book1, prepared by my ancestors, on my family tree but it is getting out of date. I have want to extend it with more current information. I want to gather the current genealogical information for both my generation and subsequent living generations and update our family tree with this new data.

I am also aware of a variety of other branches of the Creager family. A simple Google search of our family name turns up countless members of our clan that I’ve never heard of. My hope is to discover our common ancestry and integrate these folks, as appropriate, into our family records.

Justifications

I actually have multiple motivations for doing this.

  • I want to integrate current technology to produce a relatively easy mechanism for continuous maintenance of our family tree data.
  • I’m hoping to enable the online generation of future Creager Family Books utilizing eBooks and self-publishing technology.

If I can achieve this, I can not only capture the growing number of family members in my particular branch of our tree, but also expand our scope to try and discover other family branches. This would allow us to ultimately tie together what we know to be a rather expansive family that has become fragmented over our years in America.

Approaches

At present I can think of three approaches to this problem.

  1. Use an existing online service to capture our information.
  2. Implement existing open source software on a custom website for our family.
  3. Create a custom application for our family.

Use an Existing Online Service

The cost of the existing online services is an issue. There are numerous online services available (e.g. ancestry.com, familysearch.org, etc) some of which are subscription based and others are advertised as free. However, in my experience after about 5 minutes on most sites it is easy to see how they plan on getting paid, and it usually comes from the user. I don’t want my family members to have to subscribe to keep these records up-to-date or retieve a copy of our family tree.

Limited access to our family data is also an issue. While most of these websites support GEDCOM2 exports, there are multiple implementations of the GEDCOM spec and it is old an lacking many of the characteristics of a more current data specification. My plans require better access to our families’ data.

I’m also somewhat concerned about the long term viability of some of these sites. We need an approach that can stand for many years.

Implement Open Source Software3

There is a pleathora of software available on the subject of Geneaology and great deal of it is open source. Take a quick look at GenSoft Reviews and you will quickly see what I mean. I reviewed multiple of them and had various issues with them all. Then I widened my search to open source AND reasonably priced software which lead me to Genealone. I implemented a Creager Family instance of Genealone and soon started to discover shortcomings. I could simply say it does what it does well, but it didn’t do what I wanted. In reality I rejected this approach for two reasons:

  • I don’t want to settle for and 80/20 solution.
  • I want the experience of developing a very modern, highly scalable, cloud-based solution.

Create a Custom Application

I’ve settled on developing a custom website. Tell anyone you know, who knows me professionally, that I’ve come to the conclusion to write my own application and you will see no surprise on their face at all. You are more likely to see them smirk and giggle if you suggest that I would have ever done anything else. Well, enough said on that subject. The more relevant topic is what will the custom application do or to use appropriate professional jargon, what are the functional requirements?

Dictation Segment 1

For those of you who are not familiar with the term functional requirements, it refers to the general capabilities of the system, or to put it another way what the application needs to do. For those who would like a bit more detail, I’ve written the various types of requirements for this application at a reasonably high level, in Appendix A.

The functional requirements of this application are:

  • To capture the people and relationships that constitute a family over multiple generations.
  • To enable the production of family records such as a family history
  • To produce family trees
    • You may not think of a family trees as coming in various types, but they do. Consider the following:
      • if I ask “who are my descendants ?”, the answer is a family tree were my Spouse and I are the root and it extendings down toward everyone who comes after us.
      • If I ask “who are my ancestors ?”, the answer is a family tree were I am the root but it extends upward to all of the people who contributed to my creation back multiple generations.

Beyond family trees there are documents that I would like to automate generating. For example: we have what we call the “Book of Creager”, which consists of a series of stories about members of my family from previous generations along with their genealogical data. I would like to automate re-creating this book and extend it with new information as we gather it within our database.

One other necessary capability ability is uploading media. Now what do I mean by media? The obvious thing would be pictures and or videos. However in addition to the obvious media there are documents such as:

  • birth certificates
  • marriage certificates
  • divorce records
  • death certificates
  • adoption records
  • immigration records
  • military service records

Any number of forms of documentation could be captured.

The reason for needing documentation is the validity of the database. In order for our database to constitute a valid genealogical record, we have to substantiate the declarations that we make within it. Yes, you and I know we are telling the truth! But after our generations have passed away, when the third and/or fourth subsequent generations start looking at this data, there will be a need to have proof.

I have some other thoughts of other features that I would like to include, but those are longer-term, lower priority requirements. For now I consider them outside the scope of this book.

That covers a high-level view of the requirements and the rationale behind them. So now, let’s move onto the next step of the process, which is to begin development.