Web Development

Content Management System

Content Management System

Generic e-Commerce Package

For a university project I was required to produce a generic e-commerce package. I built the site with Java servlets and a MySQL database.

Since graduating I've developed and refined the package, mainly as a hobby and a way of building a portfolio. The latest version is written in PHP and MySQL.

The site is integrated with PayPal, providing a convenient and secure payment method for the buyer, and with no hassle for the merchant; the money is paid into his PayPal account.

The site includes a content management system, giving the client complete control over the design and content of the site. The client can edit text, upload images, access e-mails, view visitor statistics, view sales statistics, process orders and control stock.

Recently the package has been used for a live business, Martin's Woodcrafts. The site can be found at martinswoodcrafts.co.uk.

Dynamic Photo Gallery



Visitor Log

Editable notes


I developed this site as a hobby and a way for me to learn about web development. I have created various features and tools, such as those listed below.

Photo Gallery

A dynamic photo album that allows the user to log in and add or modify photo albums. Images can easily be added, removed or reordered. A server side script resizes images on the fly, converting them to a context appropriate filesize. The front cover of each album is a thumbnail image selected at random from the photos within the album.


An online calendar. Events are colour coded according to their category. A print friendly view can also be generated. The user can log in and edit the details of events or categories. Private events can only be viewed when logged in, public events can be viewed by anybody.

File Store

Allows the user to upload files to be stored on the web server. Files are kept in a folder in an area of the site that can only be accessed by the web server. The user can then access the files via a PHP driven file download. The user must be logged in to view private files, public files can be viewed by anybody.

Visitor log

Displays statistics on visitors of the site including IP addresses and the pages viewed by each visitor. Options are given to filter out bots or bounces.

Saved notes

A simple but useful tool that allows the user to save a piece of text. It works like a notepad that can be accessed from anywhere, providing the user is logged in. Any number of notes can be added or edited. The text is stored in a MySQL database.

Login system

A login system allows me to log in and access all features of the site.


Space Invaders A.I prototype

Artificial intelligence is something that has always interested me. This project was a way for me to learn more about AI, and to investigate the effect it can have on gameplay.

Initially, this was a personal project, carried out in my spare time. However, it was adapted to be used as a university group project, for which it was awarded a distinction.

I wrote this program using the XNA framework in C#.

The idea is that the aliens evolve over time, and adapt according to the player's style of play. They learn how to attack the player without getting killed.

This is done by using a combination of genetic algorithms and neural networks. The result is that the alien population starts off pretty stupid, and the game is easy. As the game goes on, the population begins to learn what is good and what is bad, and it evolves toward a more intelligent set of aliens.

Online 'Go' Game

This was a university project, where I was required to create a Windows program.

I decided to use C++ and the Windows MFC library to create a program allowing the user to play the game of Go.

There are options for the user to play online against other users of the same program, or play alone against a basic AI opponent.