A .NET library that adds a BackgroundWorker and TaskQueue with Async support.
.NET provides a BackgroundWorker to work on a separate thread but with non async code. There was a need for async support whilst still working on a separate thread without needing to run Task.Run or similar, so this was developed. Additionally, a TaskQueue which uses the BackgroundWorker was added so one can queue a lot of asynchronous tasks and execute them sequentally.
A NuGet library that provides abstractions for any ADO.NET database connection to reduce boilerplate.
This project was split from MySqlConnectorWrapper as to provide a fully globally compatible wrapper for any database connection libraries that inherit from ADO.NET's DbConnection class. It currently supports running all queries asynchronously, running queries in parallel, automatic rollbacks on transactions in the case of an issue, and a conversion from an open reader to in memory structured data of a reader's result.
An Unturned Plugin that groups up barricades & structures around the map to define a player built base.
This project was meant to provide the ability to define, use, interact, and modify as one wants a player built base within the game 'Unturned'. It uses primitive clustering methods, as none of the objects are linked or related, so all of them have to be investigated.
A NuGet library that is meant to provide abstractions to improve and extend RocketMod's commands.
This project is made to standarize commands, as well as make them a lot easier to work with. It brings translations built into the commands themselves, multithreading and asynchronous support, and automatic parsing of commands into them. This allows a developer to significantly speed up development of commands, as they no longer have to write multiple if statements and custom checks for the command arguments, the translations, or if their code needs to run on a separate thread.
Contributed to the OpenMod project.
OpenMod, is best described by the creators: 'OpenMod is a plugin framework for .NET. It supports authorization, plugin configurations, internalization, command handling and much more. OpenMod can be used for games, bot frameworks, web servers or anything else.' My contributions are buildable abstractions, and their implementation for the Unturned OpenMod framework.
A lightweight windows application to make creating, running, and modifying unturned servers a simple user experience.
This project is one of my first C#/.NET projects and I have used it to show my learning progress with .NET, as well as with programming in general. The program still functions as intended, but might have some slight issues, as it is currently unmaintained.
A full fledged permission system in .NET.
Advanced Permissions originally started as an improvement to the RocketMod framework's permission system for unturned so that a more user friendly, robust and expandable system was available. It has been evolving into its own fully standalone permission system, with roles, users, permissions for both, temporary role memberships, and more. Currently this evolution is still a WIP, but it is currently running the basic permission features.
A sold plugin for Unturned that improved the decay system from the game itself.
This project adds its own custom system to Unturned in order to decay buildables from the game in any way the final user desires. That could be that the buildable instantly gets destroyed if the user hasn't been online long enough, or that they receive damage over time, or maybe they want to do it to a whole base with protection.
A chatbot for the chat platform Slack with features for students.
The features included: checking the local weather, setting up a youtube feed, setting up a twitter feed, and asking for mundane jokes. This was the first group project and was meant to be simple enough to get the new students accustomed to programming.
A web project developed with Koa.
The website was a music sharing platform with ratings, comments, and playlists. However, due to obvious copyright issues, it was never fully publicised and was left as private work for university grading only. This was the second group project, where we had to collaborate and use Git in order to post all of our changes. I Took it above the requirements and set-up a Jenkins script to automatically build and deploy the website whenever a new commit was made on the master branch.
The website was meant to provide a service for gym memberships for a fictional gym. It supported account creation, staff account creation, class creation, and an application creation (course sign-up). This was a solo project and was meant to show how each student had learnt and developed their abilities with software development.