Stacked Notion is my personal blog and portfolio site. It was originally created as an experiment into creating a content management system which uses a file backend instead of a database. The system is written in the Ruby language, using the Sinatra framework. Each page is created from a file formatted using the HAML markup language. The templates for the site are also formatted using HAML and SASS.
Ruby, Sinatra, HAML, SASS
Corporate Collaboration Suite
As part of my degree, in our final year we had to undertake a project. I choose to undertake a research and development project to understand how agile development techniques, including behaviour driven development, can be applied to web development projects.
The aim of the project was to create a tool to replace email as a collaboration tool in the workplace. It provided a wiki-type history system for tasks, files and documents.
The project revealed some intresting tools that are available. The most fascinating I found is Cucumber, a tool which takes acceptance tests written in a human readable form and executes them against the project.
Ruby on Rails, Agile Development, Behaviour Driven Development
A number of freelance projects I have worked upon have been for Essential Coding, a web development company based in Canada. Two notable examples are the websites for Grand Falls-Windsor and Emerald Zone Corporation. These both required heavily customised content management systems, which I created from scratch using Ruby on Rails. The project also involved creating the HTML and CSS for the website from a Photoshop design. The Grand Falls-Windsor site required heavy use of Javascript and Google Maps API to provide an interactive town map.
Ruby On Rails, Javascript, Google Maps API, HTML, CSS
As part of a Shell STEP placement I was given a project to create an automated software testing system. The purpose of this was to run nightly builds of all software projects that the company worked on and report any failures by email. The project consisted of a Windows Service which run on a virtual machine which would checkout code from the Subversion repository, and run the builds. A simple Windows Forms client was created which controlled this, and communication between the two was achieved using Windows Communication Foundation.
The second part of the project involved researching unit testing as at the time the company were not using it. I produced a report detailing a number of technologies for the .NET environment that I deemed suitable. I was then asked to rewrite the project to provide an example, which I did using NUnit (a unit testing framework), Moq (a mocking library supporting recent .NET features), and Castle Windsor (an inversion of control library).
C#, .NET, Windows Communication Foundation, Virtualisation, Subversion, Unit Testing, Mocking, Inversion of Control
Keepsy
Keepsy was a social bookmarking site, which unlike other sites at the time, provided a Twitter style feed showing all of your friends bookmarks. It also provided picture previews of certain types of links, including YouTube videos and Flickr images. Images were created using a queue based system, implemented using Memcached (a memory based object caching system). It was a collaboration between James Deer and myself.
The site was taken offline during 2008 as I no longer had time to maintain it.
Ruby on Rails, Memcached, lighttpd, MySQL, Linux
Juvely
Juvely was a web based helpdesk system, which provided advanced features such as email integration and a live chat system. It was a collaboration between James Deer and myself.
The system was originally created using the CakePHP framework, however in 2008 it was decided to migrate to the Ruby on Rails framework. Unfortunately due to university commitments I no longer had time to maintain the site, so it was taken offline during 2008.
CakePHP, PHP, lighttpd, MySQL, Linux