1. About
2. Intro
3. News
4. Download
5. Screenshots
6. Development
7. Links
SourceForge.net Logo

Introduction from Sean

Genes - Personal Genealogy Database

Thank you for visiting. My name is Sean Lamb, and I've started my first "real world" programming project. I've tried many of the different databases that are out there already, with mixed results. They all had good features, but none of them were available for the Linux platform (or any *NIX, for that matter), which is what I want to use as my primary (and eventually only) operating environment.

Why start this project? Well, I'm sure that if I waited long enough, someone else would create or port an application to do this. But I want to program. I've been doing computer support in one form or another for a little too long, now I want to get into the development side. I want to prove to myself that I can make a project like this work.

Design philosophy

Of all the genealogy databases that I tried on other platforms, I like the approach taken by a relatively few packages. Everything that happens to a person (like a birth, marriage, or child's birth) is an event, and everything that describes a person (like hair color, birth order, and whether the person is living or not) is an attribute. Taking this approach, a researcher can record multiple dates for a person's birth. Since, during research, we often find conflicting data for events like this, this approach makes sense.

Additionally, most of the packages that I tried offered a limited space for putting any person's name or place name. In my own research, I've always found something that ran longer than the allowed field in the program, and had to resort to the freeform notes to put the entire place or person's name. This program will be written so that any text field can be any arbitrary length, however long is needed for the data.

Click here for the Database Schema page.

Practical issues and licenses

I'm building this on my own Linux box at home (currently running Caldera OpenLinux 2.2), but I want to be able to compile/run the program on other platforms as well. I also want to be able to release this program under a GPL-type license, and make it available for free to all users. The Qt and Berkeley DB libraries appear to alleviate many of these concerns. Both allow portability between platforms, and both allow me to write programs using them released under the GPL.

I need some help with this project. Since I still consider myself a beginning programmer, I know that I won't be able to complete it to any practical level by myself. If you are interested in helping develop this application, please email me (slambo@tds.net).

Development schedule

View the wish list

Well, there's no way that I will be able to put any expected dates on releases at this point, but here's the order that I want to work on it:

  1. Read and display data to the screen from a GEDCOM file.
  2. Manipulate and enter new data into the database.
  3. Import data from a GEDCOM file into the application database.
  4. Export data from the application database to a GEDCOM file (I don't plan, at this point to write a routine to export to HTML since GED2HTML already exists, but I won't rule out that option completely).
  5. Print reports (there are a lot of report formats I want).
  6. Import data from other application databases directly.

If you want to get an idea of how a GEDCOM file is formatted, view the GEDCOM 5.5 Standards.

Well, that's all I can think of at this point. If you want to help, please email me (slambo@tds.net) or sign up on the development mailing list.