Personal Project Examples

Below you will find examples of personal projects of mine, along with a short description. This page (and in fact, this entire website) will be updated as I continue work on these projects, as I always find something else to fix/change/add to my own work. Please feel free to browse and to reach out with any comments or suggestions!


  • RuneScape Metrics Site
    This is a website to track statistics, skills, and more for the MMORPG RuneScape. A close friend of mine originally wanted something simple to display his adventurer's log, and to maybe track his experience for each skill. He reached out to me with the idea, and I put this together. It was built using a Bootstrap 5 template called iPortfolio, redesigned to meet my needs.
    It was originally hosted on PythonAnywhere, same as this site, but I have since migrated it to DigitalOcean as I needed more scalability. The data is pulled from the Runemetrics API and stored in a Microsoft SQL Server instance running on one of my home servers, and served via a purpose-built Flask API I put together for the site. It now allows for tracking any RuneScape character simply by entering their name.
    Please feel free to reach out if you see any bugs, or if you have any questions/comments!
  • Magic: The Gathering Search Tool
    This is my most recently "completed" project. I say completed in quotes because I will likely make quite a few changes to the layout and to the functionality over time. It allows for searching through a database of 349,941 cards in multiple languages, with multiple options for each query. The results are listed below and are each links to a modal window that will display the card image if available, and relevant information about each card. This project took quite a bit of knowledge of SQL as I had to write several scripts to scrape from bulk MTG data to build the databases. I used the Scryfall API to acquire the bulk data in JSON, and then parsed that data into separate databases for each language. The databases were then sent via SFTP to my PythonAnywhere storage, and my views.py file in my Django back end handles all of the queries to the database. From my views.py file, the list of results is passed to my template where it is rendered for each result.
  • tk_font_install
    This was my first full program release. It was a fully cross-platform utility for previewing and installing multiple fonts at a time. It was written in Python using Tkinter as the GUI. It also has a custom licensing API I built in Flask-RESTful that is running on a droplet I have set up on DigitalOcean. In addition to this, the website utilizes the Stripe API for a fast and secure payments gateway. After a lack of interest, I decided my droplet was better used on other projects. Still, this was a fantastic project for learning more Python!
  • rs_discord_bot
    This is a bot for the popular voice/text chat service Discord.gg. It includes a lot of the same functionality as my RuneScape metrics website and uses a lot of the same backend code, but without the SQL database. It listens for users to send specific messages in the text channels, makes a call to the RuneScape API based on that message, and responds with the requested info.
  • retirement_calc
    This is a simple retirement calculator written entirely in Python using the customtkinter library to provide a nice, dark-mode interface. It is free and open-source, and available for Windows and Linux, with MacOS support coming "soon".

This site was built using Python 3, Django 3, and Bootstrap 5, and is hosted on pythonanywhere.com. Please feel free to contact me with any comments or concerns.