Tuesday, November 5, 2013

The idea and the equipment

This project was put together and is maintained by two brothers. Mitch is an MIT grad student and Drew is a Hardware Engineer in Colorado. Mitch had spent some time doing school research that involved using AJAX and PHP with Google Maps. He thought it might be cool to be able use these tools to plot his ancestors from FamilySearch Family Tree. In his spare time he wrote a proof of concept in a Windows 8 app container and showed the resulting map to his family.

Drew's experience is in PHP and Linux/Apache web servers as well as open source project development. Family history and genealogy had always been of interest to him as well, so when he saw Mitch's idea he offered to help Mitch turn his side project into a service that anyone with a FamilySearch account could utilize. Why make something cool if you can't share it with the world?

Here are some of the pieces that work together to make this site what it is:

The domain name was purchased from NameCheap.com. They are low-cost and provide excellent functionality.

The source tree for RootsMapper is hosted on GitHub which allows Drew and Mitch to collaborate despite being being very far apart geographically.

The blog is hosted on Blogger since it is a simple solution that was easy to setup and is free.

The SSL certificates come free from StartSSL and are recognized on all major browsers.

The server itself is hosted on a low-power/low-cost Raspberry Pi running Debian (Raspbian), Apache2 and PHP5. The site code is written in such a way that the vast majority of processing is done by the user's web browser. The server itself only handles sessions and authentication with FamilySearch. This makes it possible to run on a low-power server without significant losses in performance. Once a user is fully logged in, everything runs from the browser and the only thing the server does is serve up a few icons here and there. It also utilizes browser caching to lower the overhead on the server for returning visitors. This also lowers the bandwidth used by the site.

All of this is paid for by donations and advertisement proceeds from the blog.