Personal Projects

This page is home to a collection of personal projects, some of these grew out of work related activities. However, most were done entirely for fun as a way to learn new techniques and technologies.

This project built upon the initial skills learned from the ToDo App project below, with several improvements to the UI, and added features such as API calls and accessing data from system hardware.

Books can be added to the database in three different ways, 1) manually through the ADD NEW modal, 2) automatically by typing the book ISBN number into the IMPORT modal, and 3) by using system hardware (webcam) with the @zxing/browser library to scan book barcodes directly, also accessed via the IMPORT modal. On import, book title/author/publication year, and a thumbnail of the artwork are displayed on the frontend, along side a progress bar indicating how much of the book has been read.

Skills: HTML5, CSS, JavaScript, React, Node.js, Postgres, Hardware interactions, API calls

Repo: Github

Demo: Live

Project: Bookshelf App

This project employed modern libraries and approaches to create a simple check list application, with user authentication, new task creation/updating/deleting. This project was completed with guidance from a tutorial by Ania Kubow, to allow me to become familiar with modern approaches to web application development. This tutorial was very in-depth, with a "build everything from the ground up" approach. However, some topics not covered in this project include: test driven development, possible app vulnerabilities and data security considerations. As it is a basic app there are also many style and user experience improvements that could be made. Additionally, the tutorial code had to be modified for deployment on Vercel instead of the cloud provider mentioned in the tutorial, this required additional reading of package and platform docs to overcome compatibility issues.

Skills: HTML5, CSS, JavaScript, React, Node.js, Postgres

Repo: Github

Demo: Live

Project: ToDo App

This is not a single project, but rather a collection of utilities developed across several years of academic research. Some a short python scripts designed to automate the creation or analysis of numerical simulations. Others are for results processing and converting data from proprietary models to opensource data formats.

Skills: Python, Abaqus/CAE, VMTK, VTK

Repo: Github

Project: Python Utilities
Project: Secret Santa Desktop App v1

This project was a fun side interest, which I developed in response to a disasterous Christmas gift exchange, where a late signup to an online pairing website left one of the family with no gift and another with too many! To prevent this from reoccuring, I set out to create a simple GUI based program that would collect usernames and email addresses, draw gift exchange pairs, then automatically notify the paired recipents via email. The GUI was built with tkinter, the backend handled with python (using smtplib and email.mime.multipart libraries), and the automated emails sent through a dedicated gmail account.

Skills: tkinter, Python

Repo: Github

Project: Secret Santa Desktop App v2

This project was a new implementation of the Secret Santa v1 app. It leveraged the PyQt framework to create a much more clean user interface. Additional features implemented in this new version were the facility to load names and email addressed from a .csv file in addition to manual input, these names were then displayed in the dialogue box below the buttons for verification purposes prior to the draw. Results were also backed up to a text file once pairs were drawn.

The backend interfaces were handled in a similar manner to the v1 app, e.g. python (using smtplib and email.mime.multipart libraries), and the automated emails sent through a dedicated gmail account.

Skills: PyQt, Python

Repo: Github

Project: Research Group Website

Test website created for previous employer (2014), as a proof of concept to improve research visibility. Site was created using basic html, css, and php due to restrictions on internal company hosting platform.

Skills: HTML, CSS, PHP

Repo: Github

Demo: Live

Project: 3D Textured Earth

This project was undertaken to build some fundamental skills in texturing, rendering, and animation. Inspired by an older version (pre-cycles) of the following tutorial by Andrew Price. On completing a reasonable render for a static image, I then set about expanding beyond the original tutorials limits by adding some rotational motion to the planet, as well as animating the camera path to create a time-lapse fly past effect.

Skills: 3D Modeling, Rendering, Animation

Software: Blender

Repo: Github

Demo: Movie

3D Render of the Earth
3D Render of the Earth
Project: Orthopaedic Engineering Group Website

A website created for previous employer (2011 - 2013), and hosted at the time on their own severs. This website was created to replace an outdated one setup by a former group member. Site was created using basic html, css, and js for gallery features. This project was kept simple due to server restrictions and my skill level at the time, and was completed on a voluntary basis outside of my main work time.

Skills: HTML, CSS, JS

Repo: Github

Demo: Live

Project: Orthopaedic Engineering Group Website (Drupal Version)

Due to restructuring of the engineering school hierarchy and a move towards a more cohesive/unified branding strategy, the previous iteration of the Orthopaedic Engineering group website was rolled into the main university website. I received basic training in the University's centrally managed CMS system (Drupal). After which I was tasked with migrating all essential information from our standalone research group website to the centrally managed system.

Skills: HTML, CSS, Drupal

Demo: Live