Record Indexer

Record indexer screenshot

In 2013, I created a Record Indexer client/server pair (client shown above) that mimicked FamilySearch.org’s record indexing software (pictured below). I used the Eclipse IDE in my development process.

FamilySearch indexer screenshot

FamilySearch’s software is used to manually enter information from old, handwritten records into a digital database for searching by others. Learn more about the FamilySearch indexing program. Note that at the time of this project, the FamilySearch indexer was primarily a desktop application, whereas it has since transitioned to a web app, and then to the Get Involved mobile app.

Client

My client program has a login window that validates the user with the server over an HTTP connection. It also saves window size and divider positions for the GUI between sessions. The table entry, form entry, field help, and image navigation tabs were never finished, and the indexing batch download function does not work. But the image being indexed can be zoomed, inverted, and translated. The highlights also toggle. The highlights, zoom, inversion, and image position also save between sessions.

Server

My server stored information for the client (or, theoretically, multiple clients). It used an SQLite database to store multiple indexing projects, each of which contained multiple batches, each of which, in turn, contained multiple records. It could create SQL queries programmatically in response to requests. It also authenticated users and managed batch assignment.

Code Samples

ReadingPanel.java demonstrates my GUI programming in the client.
Download ReadingPanel.java (5 KB)

ClientsideCommunicator.java shows how the client sent requests via HTTP.
Download ClientsideCommunicator.java (4 KB)

UserManager.java illustrates programmatic generation of SQL queries on the server.
Download UserManager.java (4 KB)

ValidateUserHandler.java demonstrates how the server handled HTTP requests.
Download ValidateUserHandler.java (2 KB)