Projects Portfolio

This is a collection of some of my coding projects. Each of the sections below are dedicated to a single project. There is a short description of each, a link to the project's github repository, panels where you can view the code, and for some you will be able to run a version hosted on this website which will be opened in a new tab. You can use the filter on the left to refine which projects are visible.

If you choose to run one of the web apps, they are optimised for a resolution of 1920px * 1080px, for displays of other sizes, especially mobile phones the web apps may not work properly.

Filter Projects:

All Projects
All Projects Python Projects Web Applications Websites
picture of the sorting algorithms project

Sorting Algorithms Visualiser

This project is a web app that visualises the bubble and quick sort algorithms. This was my first independantly developed javascript project. I was inspired from my work in further mathematics on the algorithms, and my work on the colour pallette creator, to create an app that uses the chroma-js library to colour a set of boxes, and then use animated sorting algorithms to place the boxes in order of their hue. Animating these ment I had to learn about async functions, and since I decided to make the quick sort algorithm recusive, how to try and create an animation around that. I ended up creating an animation that greys out everything except the boxes the current recursive layer is analysing.

collage of some captures from my computer science coursework

A-Level Coursework

This is a prototype of my computer science A-Level coursework, it is an A-Level maths revision system with a game that can track student progress and send reports to teachers. This prototype is only absent of the data tracking system. The project is made up of 3 python files, main.py which contains a main loop that controls what interfaces are visible to the user, programModules.py which contains all of the classes that create the program's interfaces, and gameEngine.py which has the code for the game section of the project. The 'images' tab contains 4 captures from the program, click the source code button for a more indepth analysis of the code and the project.

picture of the sudoku project

Sudoku Project

This project is a web app that visualises a recursive backtracking algorithm to solve sudoku boards, it was a very interesting project as it called for me to more learn about asynchronous code and how it is handled in Js, the use of asynchronous code and recursive functions made for a problem I had not faced with my previous experienece in python, though I really enjoyed the challenge. Furthermore it also pushed me to practice object oriented programming within Js. I am happy with how it has turned out however with more time I would have added more sudoku boards within the app and also the feature for users to add and solve their own boards.

picture of the tower of hanoi project

The Tower of Hanoi Puzzle

This project visualises the Tower of Hanoi puzzle, with various amounts of blocks which are chosen by the user. I created this after playing with a physical version in my computer science class. I have been told there is a set way to solve this puzzle however I enjoyed the challenge of trying to figure it all out on my own. In future I may add the functionality for the user to play however in its current state I don't know if that will be possible.

I specifically enjoyed implementing a stack datastructure and visualising that in the form of the three towers. Having been taught about data structures in class it was cool to have the need to actually implement one.

picture of the color palette project

Colour Palette Project

This project was one of my first web apps, it allows users to create and save their own colour palettes, I am happy with the final code. One way I could improve the code would be to make the whole project object oriented. Though, I don't think it is necessary on this occasion. I am particularly proud of the animated colour adjustment sliders.

This was one of my earlier JavaScript projects and was mostly from following a JavaScript course on developedbyed.com. However, I made my own changes and improvements on the initial design presented in the tutorial.

picture of the color palette project

Stock Market Trend Viewer

This is a python project that takes data from Yahoo Finance and plots the price history of certain stocks. I built it to practice GUI design with PyQt5, webscraping with BeautifulSoup4, and graphs with matplotlib. I am pleased with the result as the main goal was learning how to link PyQt5 and Matplotlib, which was a success!

If I had more time to work on this project then I would improve the handling of webscraped data; every once in a while 'dividens' appear and I dont know what they are, but they mean there is no price data for these dates. So, I would probably implement a price estimate for these dates rather then the current error message.