• ANSH Voting App

    A project to cut my teeth on React. For some background, the All New Scavenger Hunt group is a photography group on Flickr that my mother and I run together. 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.

  • Thing Randomiser

    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 “test@test.com” and password “testtest” to see a working example.

  • Family Photos

    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 currently rewriting this in React.)

  • People List on CS Clarke Diaries site

    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.