Here are a few of the personal projects I have worked on over the years.
A project to cut my teeth on React. For some background, the All New Scavenger Hunt group is a photography game group on Flickr that I admin (with my mother). We regularly put out a list of items that the members have six weeks to photograph. At the end of each round members can vote for the best photo (or two) for each item. I first set up the voting page for this in 2009 using just a static web form and PHP scripting, so it was well overdue for an overhaul to bring it into the 2020’s. The version I’ve linked to here is a “dummy” version that fetches photo information from a static local file, but the real version interacts with my backend via a simple homemade API. This verifies the Flickr user (using Flickr API), fetches photos from the current round from a database as well as the user’s previous votes, and saves the votes back to the server as they are made.Related to this is the group’s scoreboard. Again this originated in 2009, though I’ve made a few updates to it over the years. I have a process running on my server every half hour which queries the Flickr API for new photos posted to the group and saves information about them to a database. All photos are tagged with their item number (eg. scavenger5 for the 5th item), which allows us to use a fairly complicated scoring system where people are awarded certain points for completing a certain number of items in a certain amount of time. These are added to points gained from voting to announce a winner at the end of every round.
This was a project commissioned by my daughter. She wanted a way to generate different characters (for role-playing or art purposes). You can create any number of “types” that have a number of attributes each with a number of options. Once you’ve created a type you can randomly generate a specific “thing” with a set option for each of the attributes, then choose to name it and keep it if you wish. This is written using Laravel and Vue.js with Bootstrap. You can login with “firstname.lastname@example.org” and password “testtest” to see a working example.
Built with Knockout.js on the frontend and a REST API using the Slim PHP framework on the backend, I built this site as a way for my dad to easily organise and annotate his collection of old photos, for which it has proved invaluable. While I wrote it a few years ago I still consider it to be in “Beta”, which several improvements and new features planned. (I’m planning to rewrite this in React.)
This WordPress website contains fifty years of diaries of Charles Septimus Clarke, transcribed from the original documents by my father. Our goal is to identify every person he mentions in his diary and link to information about that person from the diary, as well as provide a searchable list of people with links to the entries in which the person is mentioned. To enable this I created a series of php scripts and WordPress plugins.
- Analysing Biographical Information of the New Zealand Expeditionary Force of World War One
A project I did for the Massey University “Data Science – Making Sense of Data” course in 2017, using Python in a Jupyter Notebook. I really enjoyed producing this as it was a great way to combine my interests in family history and data science.
- There and Back Again
An entry into the 2020 Stats NZ data visualisation competition, written in Python using Dash and deployed on Heroku. I had a lot of fun with this and learnt a lot about visualising geospatial data.
- Weather Dashboard
A learning project for Dash. Displays near real time weather data from my dad’s weather station (saved in MySQL tables)
Family History Sites
- Journeys, a family history blog
A WordPress website I created to collect together some old family history documents, some general information on my family history and some articles I wrote about specific aspects of my family history, and history in general.
- It was a very fine day.
A WordPress website I created about my ancestor Charles Septimus Clarke.