Jordan Elliot Finch J.E.F.
Get in touch:


Bath Historical Martial Arts
LEMA: Linguistic Etymology Map Assistant
Into Oblivion
Bath Historical Martial Arts

In 2023, I developed a website for my local Historical European Martial Arts (HEMA) club in Ruby on Rails. The site makes use of a bespoke admin-side CMS to display information about the club to users, using Ruby on Rails "site objects" to render information such as instructors, fighting styles, and courses that are offered by the club.

In addition, the website features a blog and will soon feature a gallery, with more features well on the way!

LEMA: Linguistic Etymology Map Assistant

In 2022, as part of my thesis project for (BSc) Computing and Software Development, I developed an award-winning tool inspired by the /r/etymologymaps subreddit. Made in collaboration with the kind creator of Etymology Explorer, this tool allows users to enter any word they can think of and see the etymology of that word be displayed on a map of the world before their very eyes!

The users can then use the tool to tweak the map to their liking, by changing the size, labels, and colours of the nodes. They can also export or import the maps (in image and data form) for sharing. In addition, there is also a "community" feature of the tool that allows people to share the maps they've made.

This was coded in React and Express.js, using a PouchDB document-based database for storing users' map data.

The site is live but currently in a limited state, but I heartily encourage you to check out the demonstration video to see it in all its glory!

Long ago, my friend and I were playing a Dungeons and Dragons-esque game with each other online, when he had the idea that I should make our virtual world into a game. Thus, this side-project of mine was born. This project has been on-and-off since about 2015 and was written in raw JavaScript and PHP with a custom, RESTful API and MySQL database.

It has a fair bit of content, but is also largely a playground for me to play around with new versions of web technologies as they emerge; and to practise new design patterns as I learn about them.

Specific features:
  • A huge PHP back-end, handling data processing and security via a bespoke RESTful API
  • Heavy use of JavaScript to handle the game, including:
    • AJAX, for calling API endpoints without disrupting gameplay
    • Seamless navigation
    • Inventory handling
    • Combat handling
    • Quest handling
    • Dialogue and NPC/event interaction