Timmy is a timesheets application I wrote to allow me to track how long I was spending on projects. It was important that I could access it any where as I worked on multiple different devices in different locations, so I decided to write it as a web app. I had some previous experience with React but chose Ember for this project, with a REST backend written in Rust using Rocket (the web framework) and Diesel (the ORM).
Its features include:
- Creating projects
- Timing "activities" using a stopwatch
- Adding previous activities using human dates (eg. "two hours ago")
- Visualising the information, such as hours spent on each day of the week or each hour of the day, most common tags and a gantt chart (done using Chart.js)
- User authentication
- Responsive design
The code is available on Github
Grubhub is a food sharing website created by me, and four others as part of the Group Project module at Durham University. There were a number of requirements, such as user authentication, food search, displaying the food's location on a map, chat, and a responsive design. We met all these requirements and also suggested extra features which we then implemented. Before we started work we had to produce a project plan including a list of system requirements, a timetable, domain research and implementation details.
I mainly worked on the backend, which was written using CakePHP with a MySQL database, although we all did swap roles as the deadline drew closer and the more advance features needed to be implemented.
The code is available on Gitlab
rs-tiled is a Rust crate that reads in maps created using the Tiled Map Editor. It can then be used in games (such as the one above). I continute to maintain this crate and accept contributions from other developers.
It is available on Github
Technologies used: Rust
Imageception was created during Young Rewired State 2012 - a hack week using open datafor coders under the age of eighteen. The idea behind Imageception was to create images out of other images - to create a sort of mosaic effect that can be zoomed in on to reveal smaller pictures.
I needed a large bank of pictures so I created a script that took a tag, searched Flickr for it and then downloaded all the Creative Commons pictures with that tag. Another Python script then took a source image, went through each pixel and found the image that had the most similar average colour and used that as the new "pixel".
I then created a small website using Flask that allowed you to upload your own image, choose a set of smaller images and then generate a picture. It also allowed you to click on one of the smaller images to apply the same process to that image, hence Imageception.
The code is available on Github
In secondary school I studied Japanese for a short time. I decided to make an app for Android to aid me learn Hiragana and Katakana. StartJapanese is a basic flashcards app with the two alphabets included as flashcard decks. The app can randomise decks, test the cards you know least first and offers question and revision modes. There is also the ability to add decks.
It is available on the play store. The app was designed in 2011 for small screens, so is a bit dated.
Technologies used: Java, Android, SQL