x

Airplayer

Airplayer is a music player that allows multiple users to collaboratively control which music is played. Using the Spotify Web API and Spotify Web playback API, users can create and join ‘rooms’ which allow users to search for tracks on Spotify, and add them to a playlist that is visible and mutable to all users in the room, and can be played within the browser.

The front end was created using React, and the backend was created using NodeJS, MongoDB, WebSockets and contains unit tests. It’s quite a large project, with a more thorough technical explanation detailed within the readme on GitHub. This is also a project I am actively working on and therefore it still contains some issues, most of which can typically be fixed by refreshing the page.

After fixing these issues, my plan is to add a feature that will recommend tracks based on the tracks that are commonly listened to by users in the room, as well as using Spotify’s recommendation API to find new tracks based on the listening habits of users in the room. I also plan on creating a native version using React Native as the Spotify Webplayback API is not supported on mobile.

React
Styled Components
NodeJS
MongoDB
WebSockets
Spotify Web API
Jest
Authentication

Mosaicify

Mosaicify turns images into a mosaic composed of other images. Users can upload a file and search for images using the Pixabay API to turn them into a mosaic of those images, as well as manipulate few settings that determine the quality of the image. Check the readme for a more technical explanation of the project.

For me this project was mostly a test of speed, as I aimed to spend no more than a week creating it. During this project I incorporated some functional programming concepts and became much more comfortable handling asynchronous code using promises, as well as learning about image manipulation.

Javascript
CSS
Image Manipulation
Promises
Pixabay API

Notflix


Notflix is a Netflix clone created with React, NodeJS and MongoDB. Instead of using real movies, I recreated the front end and used movie trailers from YouTube. Google are not very generous with their free API calls, so there are only around 200 trailers available.

This was my first React project and contains full CRUD functionality, authentication, responsive design for all screen sizes, as well as integration with the MovieDB API, Youtube Web API and Youtube Playback API.

Note: Notflix is deployed on Heroku free tier, so it might take up to 30 seconds to load up, as the servers will periodically sleep after not being used.

React
NodeJS
MongoDB
Auth0
Youtube Web API
Youtube Player API
MovieDB API

GitView


GitView is a solution for traversing image-dense GitHub repositories in a more user friendly way than it is handled on the GitHub website. To use the tool, simply copy and paste a public GitHub repository into the search bar.

Below are a few links of some example repositories to test with:

  • https://github.com/Gethe/wow-ui-textures
  • https://github.com/simple-icons/simple-icons
  • https://github.com/akveo/eva-icons

During this project I gained experience using various ES6+ features such as Classes, async Await as well as using the GitHub API.

Javascript
CSS
ES6
Bootstrap
Github API

World of Wacraft Ascension Talent Calculator


This project aimed to create a more mobile friendly experience for the World of Warcraft Private Server 'Ascension' talent calculator, as the one provided on the official website was not responsive.

I created the front end using vanilla JavaScript and CSS Grid. The focus of this project was to learn how to manipulate the DOM, handle asynchronous code and create aresponse layout using a mobile first approach. I also learned a lot about the more complex parts of JavaScript, such as prototypal delegation, closures and ‘this’.

While this project doesn’t have a backend, I managed to figure out how API calls where being sent from the official version of the application servers , and pulled data for the tooltips and images from there.

Javascript
CSS
Responsive Design
DOM

Chess


This was my first project built in Javascript. While it may look similar to tutorials online, this was build from scratch using no libraries. During this project I became comfortable with using objects, closures and some OOP concepts.

Javascript
HTML5 Canvas

James Wilkinson

Software Developer