Bookshelf App Screenshot

Bookshelf App

This project built upon the initial skills learned from the ToDo App project, 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:

  • Manually through the ADD NEW modal
  • Automatically by typing the book ISBN number into the IMPORT modal
  • Using system hardware (webcam) with the @zxing/browser library to scan book barcodes directly

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.

HTML5 CSS JavaScript React Node.js Postgres API Integration
ToDo App Screenshot

ToDo 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.

The 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. The tutorial code had to be modified for deployment on Vercel instead of the cloud provider mentioned in the tutorial.

HTML5 CSS JavaScript React Node.js Postgres
Secret Santa GUI v2 Screenshot

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:

  • Facility to load names and email addresses from a .csv file in addition to manual input
  • Names displayed in the dialogue box below the buttons for verification purposes prior to the draw
  • Results backed up to a text file once pairs were drawn

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

Python PyQt SMTP CSV Processing
Secret Santa GUI v1 Screenshot

Secret Santa Desktop App v1

This project was developed in response to a disastrous Christmas gift exchange, where a late signup to an online pairing website left one family member with no gift and another with too many! To prevent this from reoccurring, I created a simple GUI based program that would:

  • Collect usernames and email addresses
  • Draw gift exchange pairs
  • Automatically notify the paired recipients 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.

Python Tkinter SMTP
Research Group Website Screenshot

Research Group Website

A website created for previous employer (2011 - 2013), and hosted at the time on their own servers. 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.

HTML CSS JavaScript
ECBM Website Screenshot

Research Group Website (Drupal)

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.

HTML CSS Drupal CMS
Python Utilities Screenshot

Python Utilities

This is not a single project, but rather a collection of utilities developed across several years of academic research. Some are 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.

Python Abaqus/CAE VMTK VTK
3D Earth Render

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 a tutorial by Andrew Price.

On completing a reasonable render for a static image, I then expanded beyond the original tutorial's limits by adding rotational motion to the planet and animating the camera path to create a time-lapse fly past effect.

Blender 3D Modeling Animation Rendering