A Tictactoe game where you play either an AI or a human then guess if your opponent was human of AI.

This was made as part of a course called full stack react.

I used yarn for dependency management.


Data comes from JSONPlaceholder.

Changes to the data are all local but API calls are used to to get data and in changing that data as if the data were changed.

Axion is used to make API requests.

Bootstrap is used for styling.

The context API is used for data flow.


This project was for a client with a large amount of Flickr data and photos that wanted to transition to a new custom site.

Transferred over 15,000 pictures and all data from Flickr via Flickr API. Making over 100,000 API calls for EXIF, album and photo data. The client was mainly interested in preserving tag and album data.

Built a photo site from scratch implementing a database schema for the data and a file structure for photos. Development was iterative with feedback from the client at each stage influencing the next.

Made a new complete tagging system that allows spaces and special characters which uses the existing tag data from the API data.

The site allows new content to be added and uses React via an API for uploading and selecting content.

Deployed the site and all content via SSH to a VPS running Ubuntu Linux which serves the site using Nginx and Gunicorn, the site is also secured with SSL.