Quality code and lots of coffee

Category: Project

Stats Tracker API

The Stats Tracker API was a freelance project I undertook for a local browser-game development company.

To provide more in depth reporting to their customers they wanted a small client side library they could inject into their games that would track certain events; it would then send these events to an API which would present them to the end user via custom reports – so the project was broken down into 3 parts

API

An exposed API that would log the events from the game, this had to be versatile enough to accommodate data packets of various lengths and structures as the packet structure could not be identified until the event had begun to be processed

Administration Area

The owners of the Stats Tracker needed the ability to manage clients and games within the system. For this an administration area was created which would allow for the administrators to manage Clients, Games, Events for those games and define the parameters that those events would pass in. This would provide the foundation for the structure which the API packets would send.

Client Area

Clients using the system needed access to their own area with a locked down and limited view of their own products, but no more. As this was a multi-tenanted system it was vital that clients did not have access to other clients games or reporting.

The reporting section itself also needed to be able to provide custom views and timescales for the data collected and display it in a visual format. For this I made use of a charting library

Tech Stack

ASP .Net Core MVC

.Net Core as I’ve mentioned on this blog is incredibly versatile – and given the scope of the system I wanted more out the box than PHP provided. MVC provided a fantastic framework to build the API and accept packages and .Net Core Identity allowed the flexibility that was needed in order to build the Adminsitration and Clientside areas. Then because of the cross platform nature I knew that when the app was handed over it could be hosted anywhere. Razor syntax and view models also meant that web pages could be built with relative ease to serve the client facing system’s requirements.

Chart.Js

Chart JS is a free but powerful open source charting library making full use of HTML 5, although the documentation is lacking, Chart.Js can very easily be integrated into custom reporting to provide good looking visual graphs

Entity Framework

From the offset this project had very clear defined objects within the system. Entity Framework provides a fantastic interface between the database and the service layer of your system so that both the API and GUI can communicate with the database without needed to write the SQL yourself. However, in some cases with reporting I needed to write custom SQL in order to optimize queries, and EF allows this alongside it’s usual functionality.

MySQL

Not as bloated or expensive as SQL Server, MySQL provides a very clean straight forward and cheap alternative as a database provider; whats more is that there is Entity Framework support with MySQL so that it can be integrated easily into a Microsoft Tech Stack. Which means for the first time I was able to integrate MySQL with ASP .Net hosted on a Unix Server .

Fiaz is 40

I was commissioned to collaborate with a PR company and web designer to produce an online Guestlist for a high society party in celebration of our clients 40th Birthday. The site had to comply with a list of bespoke features.

  • Guestlist Management – including +1’s
  • Automated Invitation Generation (QR Codes)
  • Email Updates to guests
  • Chatbox for guests to communicate with host
  • Directions to venue and venue information
  • Photo Gallery and Media Management

The site was completed and accepted by the client ahead of schedule; used as intended throughout their birthday celebration with resounding success.

Nick Infinity Islands – API & Back End

I was approach by Peg Digital to help with a new project they were working on for Nickelodeon. The new project would be a series of games for the Infinity Islands. As part of this game there would be an option for players to upload an image as part of a “Scoreboard” and Nickelodeon requested that these images be saved to a database, and be retrieved at a later point and displayed at user request.

The approach I took was to build an API and incorporate their current use of JavaScript by giving them my own JavaScript Client library to hit the PHP API in the back end. The API had to handle various tasks, passing back relevant information to the front end for the site to use, such as saving and retrieving images, getting gallery’s and in later days, serving reports on user interaction with the API. As well as this I also had to set up the Amazon Web Services host which runs this back end. This all had to be done with regular communication to the client, keeping everything secure to adhere to data protection when using the API, and overcoming new challenges when requirements changed or were added in.

The project faced it’s own challenges, after the API was set up to handle image capturing the storage space on the host server starting to reach it’s limit, and after live release the RAM limitations of the server meant some quick refactoring and code redesign needed to be implemented in order to get the server running smoothly.

The project was delivered on time, with positive feedback from the client.

Vervepower

verve-power-250I was approached as a technical consult to oversee the migration of web and email services from the previous hosts of this website to our own servers. The migration involved the importing of the user mailboxes, email clients, web platform and databases. The migration required me to set up IMAP and SMTP protocols for the users to be able to access their mail, as well as ensuring the domain name was imported correctly and that digital signing and security was kept intact.

Metro Excuses

metroMetro Excuses was a JavaScript webpage I designed to tech myself some of the fundamentals of the language.

The project takes a satirical look at some of the excuses that Tyne and Wear Metro have given commuters in the past and allows users to create some of their own.

The basis of the system is that there are 3 categories to an excuse, a degree of failure, an affected part or piece of the system and an attribute of that part or piece that has failed. Hard coding generic values into arrays meant that users were able to create combinations as well as using a randomise function to create random combinations.

Legend of Drongo

DrongoThe Legend of Drongo was a project I started as a means to familiarise myself with C# programming concepts for my studies.

Following my studies the project was mothballed and is now being worked on in sprints as and when I have the time. As a project it is a product of the accumulated skills I have gained over the past 4 years of development experience, so naturally some areas of the program are poorly designed and executed.

However I am constantly making changes to the engine, and one day hope to release as an indie game.

The bulk of the project is a game engine in which users can traverse a ‘world’ comprised of interlocking data types, these data types can be configured in an accompanying world editor which incorporates windows forms to allows users to create and edit custom worlds to be played through the game engine.

Diamond Dust Server

ddslogo The Diamond Dust Server was a small gaming community of which I was a part part of. As the technical lead I was tasked with maintaining a virtual server which hosted popular sandbox game ‘Minecraft’.

Following the success and ever increasing traffic to the server, I helped to create and design a website for the community built in PHP and hooking into a MySQL database back-end.

The website allowed for users of the server to create accounts and link to their in-game profiles which also relied on the MySQL database. Through the shared data I was able to create a platform in which users could log in online to view stats, progress and chat with other players without actually playing the game, the aim of which was to expand the community and create a space for advertising revenue.

Design North

Design North Logo

Commissioned by the University of Sunderland Design Department I was part of a team building a website on which the University could showcase student work. The project was originally undertaken by a group of students but abandoned the project after graduating. Our job was simply to pick up where they left off.

The site was built in HTML and PHP with a MySQL database behind it. The University wanted a platform where they could upload student work for each specified course, providing a brief description of the piece and information on the student. This meant allowing users to a management window where the items could be edited and updated, while providing a public gallery and information space for guest users.

My main responsibilities were to convert the existing PHP scripting to a newer format, and add new functionality as requested by the client. This included uploading video files and producing thumbnails, an email contact page, database redesign and robust navigation linking, all to be done in time for the deadline set by the client.

The project was delivered on time in March 2015.

© 2025 Joe van de Bilt

Theme by Anders NorenUp ↑