Skip to content

dickschoeller/gedbrowser

Repository files navigation

gedbrowser

Build Status Coverage Status Code Climate codebeat badge Dependency Status Known Vulnerabilities Build Status

Spring Boot application to display the genealogy data from a GEDCOM file. Once loaded, the data is managed in a MongoDB database.

Check it out by perusing my genealogy database. You can browse the database anonymously, but you will need a login with the appropriate role to see living people.

Installing

The easist way to run is to directly run the Docker images.

Running with Docker requires running the MongoDB with Docker. The following commands allow you to do this without conflicting ports with a native MongoDB service. Note that these commands will conflict with a running native Tomcat server. Naturally, in order to this you have to install Docker.

The following steps follow after installing Docker and verifying that the service is running.

Create data directory for mongodb

mkdir ~/data

Create home directory for gedbrowser

mkdir /var/lib/gedbrowser

Put data files in home directory

cp *.ged /var/lib/gedbrowser

Prepare Google Geocoding and Google Maps Keys

You will have to go over to Google's developer site and get your own keys.

cat YOURGEOCODINGKEY > /var/lib/gedbrowser/google-geocoding-key
cat YOURGOOGLEMAPKEY >> /var/lib/gedbrowser/google-geocoding-key

Prepare your user file

The file sits in the gedbrowser home directory and is called userFile.csv. The format is:
username,first name,last name,email,password,role,role,...
The supported roles are USER and ADMIN.

emacs /var/lib/gedbrowser/userFile.csv

Assign environment variables

export DATA_DIR=~/data
export GEDBROWSER_HOME=/var/lib/gedbrowser

Run the 3 required applications

You start with MongoDB, then geoservice and then gedbrowser.

docker run --rm -v ${DATA_DIR}:/data/db --name mongo -p 28001:27017 -d mongo
docker run --link mongo:mongo -v ${GEDBROWSER_HOME}:/var/lib/gedbrowser -p  8086:8080 -p 8087:8081 --name geoservice -d dickschoeller/geoservice
docker run --link geoservice:geoservice --link mongo:mongo -v ${GEDBROWSER_HOME}:/var/lib/gedbrowser -p 8080:8080 -p 8081:8081 --name gedbrowser -d dickschoeller/gedbrowser

Once this is complete, gedbrowser should be up and running and reachable at port 8080 from your browser. See Docker documentation to change ports or to distribute the services across different hosts. See your webrowser documentation if you intend to run this behind a webserver.

As users refer to each of the GEDCOM files, they will be loaded into your instance of MongoDB. Subsequent access will be from the database and not from the GEDCOM file. There is a reload function on the management port if you wish to reset the database from the files.

Getting started developing

  • Prerequisites are a JDK, Maven, Git, and MongoDB
    • Optional Docker, which can be used to get MongoDB as well as to run gedbrowsser
    • IDE of your choice. We prefer Eclipse.
  • Follow the installation instruction regarding preparing the gedbrowser home directory
  • Clone this repository and cd into it
  • From the top 'mvn clean install'
  • java -jar gedbrowser/target/gedbrowser-1.3.0-RC3-SNAPSHOT.jar or run from your IDE

The location of gedbrowser.home defaults to /var/lib/gedbrowser. However that can be adjusted in the file application.yml. When running in Docker the data file can be redirected where you want from the run command.

You are now ready to try making changes and pull requests. 😄

Tooling and Development Operations

We are big fans of DevOps, tooling to automate as many processes as can be done. Take a look at our Development Operations wiki page to get an idea of what tools we are using, where we stand on their use and some ideas of how much further we have to go.

Technology

Architecture

TBD

License

Gedbrowser is Open Source software released under the Apache 2.0 license.