You can see three projects below - click on the github logo to view the repo.
Data Migration Xrm Toolbox
Overview
Rewrote most of the C# codebase for the Data Migration Xrm Toolbox open source project which has 48.6K downloads. This gave me an in-depth understanding of the C# language and .NET framework. It also provided me with experience of tackling difficult programming challenges independently.
Chess game
Overview
As an avid chess fan, I wanted to build a python program that enabled a game of chess to be played with all the rules in place.
I found a pygame tutorial for a game of checkers which enabled me to get the initial idea up and running. From there I used my programming knowledge and logical reasoning to build the game up from just pawns to all pieces. Finally, I addressed all of the edge cases (castling, checkmate, pawn promotion), refactored and made the code more readable.
I included tests to make the program more robu. Some possible enhancements include cloud deployment to enable matches between players on different machines, a backend that enables matches to be stored and a chat on the side of the board to make the games more entertaining.
Trading Bot
Overview
Coinbase Advanced Trade Bot is a .NET-based project that implements an automated trading strategy using the Coinbase Advanced Trade API. It is designed to be deployed as an Azure WebJob, allowing it to run at specified intervals for effective cryptocurrency trading.
Crypto Trading Backtester
Overview
Designed to backtest cryptocurrency trading ideas using data from the CoinGecko API. Written in .NET, it allows users to apply their trading strategies to historical crypto market data to assess their potential effectiveness.
Tennis court booker
Overview
Having grown frustrated with not being able to book a tennis court in my local area, I decided to build a python bot (using selenium) that would automate the booking process, ensuring that I got a court each week at my preferred time
Initially, the bot hit the website at the same time each week when the courts were released for booking. However, at this time there was no availability and I realised that there was a one week period before public release where paid members were able to book courts. Not wanting to get a paid membership, I changed the script to hit the website every 5 mins (using datetime library) from the public release time so that as soon as someone canceled their court, my bot would book it.
Since going live, the bot has booked a court every week at my preferred time and tennis skills have vastly improved.