RPG quick encounter is an online tool to help you get up and running with your next encounter in moments.
If you'd prefer to host your own, it is fully open source and available on github
Try it here
Tech: JavaScript lump.js Leaflet Rollup CSS HTML
A more powerful map card for home assistant. I've focused primarily on adding to the location history data exploration functionality including integration with the energy-date-selection.
Read more here
Get it on Github
Tech: JavaScript Leaflet Home Assistant Lit Rollup
Model Uni
A isometric "university" simulation game I had a play at making a few years back. I managed to get the baisic UI, editor & a simple agent sim functional, but never got very far in to the actual game play logic, meaning it never moved beyond being a basic prototype.
Source code: github
Playable version: here
Tech: JavaScript SpriteJS Canvas RequireJs
The Energy Entity Card fills a gap in Home Assistant's energy dashboard feature set. It allows you to create simple entity cards that will updated based on the selected date ranges chosen in the energy-date-selection.
With this it can then sit along side the other date aware energy cards as part of your custom energy reporting dashboard.
Get it on Github
Tech: Lit Home Assistant JavaScript
A browser plugin that adds a vast array of quality of life improvements to reddit. I've contributed a variety of features, the majority around the in-line image viewer's functionality.
The team looking after RES are really great to work with, so if your looking for a larger project to contribute to, I'd highly recommend them.
Tech: JavaScript ES6 Webpack
A selection of weird & wonderful additional relation types for laravel's eloquent ORM.
The library handles a variety of edge case allowing people to leverage the power of eloquents eager loading for Aggregate relationships, chain relationships thorough several intermediary models with HasManyViaMany or simply use a method as if its a relationship with hasMethod.
Get it on Github
Tech: PHP, Laravel Eloquent Composer testbench PhpUnit
PHP SQL Reporting
A quick and easy SQL based reporting & business intelligence tool.
I built to both solve my own need (I wanted a tool like this & none of what a googled up quite fit), plus as an excuse playing around with implementing & experimenting with creating a few of the nicer framework-y feature heavier weight tools like laravel give you out the box (Auto-wiring dependency injection, request validation, etc.)
Tech: PHP Flight Eloquent Brunch SaSS JavaScript
LaraHook - A Hook engine for Laravel
A maintained fork of the now inactive esemve/Hook library for Laravel. Introduces a robust set of tests alongside improved functionality for interacting with and managing hooks.
Get it on Github
Tech: Laravel PHP Composer PHP
A fast, lightweight, ultra flexible JSON powered in memory search. Can be used as a drop in to run anything from a filtering select to an entire page.
The library provides first class screen reader support and combines a simple string based filter which a set of heuristics to return most likely results first. Pretty much everything an be easily customised using events and callbacks.
Get it on Github
Tech: JavaScript
lump.js
An experimental JavaScript library exploring the use of a "delegated event" like pattern for managing state.
The result is something of a hybrid of the delegated event patterns (As seen in frameworks like Backbone), combined with a more modern reactive datastore (using proxies to detect changes).
Currently used to power the RPG Quick Encounters.
Get it on Github
Tech: JavaScript
RPG Campaign Manager
An open-source RPG Campaign Manager and World Building tool, built to support the last D&D Campaign I ran.
The codebase is still very much an alpha version, with a lot of feature limitations. It uses a hybrid of Lump.js and Laravel.
View RPGCampaignManager on Github
Tech: Laravel PHP JavaScript CSS Lump.js
Userbag v2
The latest refresh of this blogs design. Effectively a revamp of the theme to improve colours and make everything a bit more readable.
Tech: WordPress CSS JavaScript PHP
Working with rest of WebDev & UX team at Kent, helped to put the initial "beta" theme together. This included the kentbar & bespoke icon font
Tech: Bootstrap 4 SCSS JavaScript grunt Plyr slick handlebars
A bespoke self-guided tour app for Kent prospects, this project was launched off the back of a hack day project I worked on. Application comes in two parts, a front end JavaScriptapp + a back end management application using laravel.
Tech: Require.js Backbone/Exoskeleton JavaScript Grunt Google Maps API's
Ardent Estates
An estate agency site featuring an integration with AquaintCRM. Primarily a marketing site.
Tech: Design HTML CSS JavaScript PHP Aquaint API's
A utility library to quickly & efficiently reconstruct json:api formatted payloads back in to easily traversable data structures
Tech: JavaScript
A standalone version of the popular at the time JQuery PJAX plug-in. Allows push-state based page changes to be easily added to an existing site with almost no change.
View pjax stand alone on Github.
Tech: JavaScript
The OSPAS
Customized wordpress plugins & themes for an international awards site - featuring country/language specific sub sites & entrance system.
Tech: HTML CSS JavaScript PHP WordPress
My most popular library, despite no longer being supported.. It provides a nice way to interact and work with SharePoint lists using PHP. When I first started looking at this there was pretty much nothing for PHP aside from a few scraps of sample code (This was before the REST API). I initially created it just to reduce my own pain when working with SharePoint lists - but ended up extending its capabilities quite a bit.
The library provides a simple query builder (to handle making complex requests) plus a ton of methods for creating, updating & deleting from lists. When built it worked with both self hosted instances & SharePoint on-line.
Find it on Github.
Tech: PHP SharePoint lists API
Robin was a web based IRC like chat reddit introduced as part of its April fools day event.
Given robin rooms of several 1000 active users were possible a small community of plugins & extensions grew up around the event - proving features like channel separation, blocking & a host of other improvements.
Although the whole event only lasted a week or 2 it was a really fun project, competing feature wise against the other plugin authors.
See the source on Github.
Tech:JavaScript Reddit API's DOM change detection
Pseudo Model provides an eloquent like base model for laravel applications, intended to encapsulate "models" from none-database sources.
My original use case was allowing developers to interact with a set of LDAP objects via familiar well defined mechanisms, isolating that complexity away from them.
Pseudo Model implements & users the almost all of the same contracts as a standard model meaning all the normal interactions and events will work as expected.
Find it on Github.
Tech: PHP
An attempt at creating some agile planning board software. Was never completed but had a few unique features, including: Ability to save data to sharepoint lists, card animations shared between all board viewers, sprint builder & flippable cards.
See the source on Github.
Tech: JavaScript PHP SharePoint Css
Website I put together for my brothers personal training company.
Tech: Design HTML CSS instagram APIs Gulp
Simple tower-defense like convoy game. You can run and upgrade a convey traveling a desolate wasteland, fending off constant attacks. One of the few games I made most of the art assets for (aside from the music).
Tech: JavaScript Sprite.js
carl.saggs.co.uk
A micro-site I made for myself, using a vector version of my logo (Credit to Jack Buckland) and a bit of tweaking managed to score 100% on the google page speed tests. Features some basic styling + cursor following eyes.
View it here
Tech:HTML CSS JavaScript
Space Game Y
Unfinished, much prettier version of my space game X. Within it i attempted to create a larger world which requiring experimenting with smarter AI and object occlusion.
Tech: JavaScript Sprite.js
Programmes plant & Of-course
Two applications i worked on during my time at the University of Kent. It enabled the university central services teams to oversee distributed management and updates to programme and module marketing information across the university, along with providing the information used to populate the course marketing websites.
Tech: PHP Flight JavaScript CSS SAML REST API + XCRI feed format
A mix of learning exorcise and tutorial write up. Possibly one of the most playable games i've build - even if the simplest. See tutorial write up here, or play it here.
Tech: HTML CSS PHP (Limonaid) SharePoint lists API JQuery JQuery UI LDAP
Pantheon Template Engine
While at the University of Kent I worked as part of the team maintaining the bespoke templating and publishing tool running majority of the Universities public website. During this period I released several additional features and themes (including Daedalus and KentBeta) alongside managing to improve performance of the tool by upwards of 70%.
Tech: PHP XMl Regex CSS HTML
Userbag v1
My first version of this site. One of my first attempts of responsive design.
Tech: WordPress CSS JavaScript
KentOne - HackDay project
My team managed to win the Innovation Splash hack day event with our idea of a context aware student app. The app in our demo was purely a prototype running off of hard coded API data sources - although real versions of many of these did exist.
Tech: JavaScript Php HTML
Space Game X
My first attempt at a html5/js game. Learnt a ton re: game loops, performance, geometry. Very veeeerrry basic, but "playable" here.
Tech: JavaScript Canvas HTML5 DOM
My final year team project - created as a hub for managing social presence across a verity of platforms using both OpenId & bespoke integrations for platforms like twitter, google & facebook
Tech: PHP (CakePHP) JavaScript (Dojo Framework) MySQL OAuth OpenID Facebook API Twitter API Google API's
Find A Client
Probably my favorite project while working as an Intern at Thomson Reuters. It was essentially a quick lookup tool for client and related data pulled from a number of data sources across the organization.
Tech: Cold Fusion JavaScript (Dojo Framework) Ms-SQL
Base.js
A stand alone implementation of some JavaScript framework like features - ultra lightweight & mostly just built for learning/interest purposes. Features some basic JS animations, utility methods, Ajax helpers and basic templating.
Tech: JavaScript
QA Tool
A QA/Auditing tool I created while working in the University of Kent Requirements and solutions team. It was designed to allow someone to quickly identify and record issues with with upgraded websites, writing these directly in to a SharePoint site.
Tech: HTML CSS PHP (Limonade) SharePoint lists API JQuery JQuery UI LDAP
Thybag 6
An almost semi-popular online community while it lasted, it consisted of a bespoke CMS backed in to the Invision Power Board forum software.
Tech: PHP (bespoke) JavaScript MySQL I.P.Board 3.x
Yare-bot
A quick and dirty helper library for yare.io including a sample bot utilizing it.
The bot itself never grew beyond a very basic implementation of charging/defending and attacking with simplistic tactics.
View on Github
Tech: Javascript
Milestone report
A super simple no thrills milestone dashboard using data pulled from the GitHub API. Acted as a quick and easy way to produce reports on the current milestones, although we have since switched to using Githubs newer project boards.
View on Github
Tech: PHP Github API
Php-simple-cache
As the name says on the tin, a super simple file based caching library for PHP. Cache paths are designed to be human readable and easy to debug.
Tech: PHP
FormZ
A lightweight form generation library for PHP. Allows HTML forms to be programmatically generated with a wide array of options, along side helpers for easier population of initial data.
View on Github
Tech: PHP
JavaScript ICAL Parser
A proof of concept ICAL parser wirtten in JavaScript. It currently only supports simplistic ICAL options.
A more complete/robust ICAL parser was built based on this, although this is sadly not open source.
View on Github
Tech: Javascript