Personal Projects

Below is a summary of several of my personal projects. From June 27, 2018 to December 31, 2020, 918 days, I coded personal projects every single day. The reason for stopping was because I was soon going to be starting a Master's in Cybersecurity and didn't feel I could do both well. In that time, I worked on the File Center, Tak, BGT, and Advent of Code projects, as well as several others that are still in progress.

Card image cap

Tak

Board game client, server, AI

This project allows for someone to play the board game Tak against an AI or others online. The AI is a MiniMax player where the heuristic is a backpropagation trained neural network. The online server is written in Spring Boot and allows for friends, messages, rankings, and random matchups.
Technologies: Java, Spring Boot, Hibernate

Source Code Game
Card image cap

BGT

Toolkit for creating board game engines and servers

After creating Tak, I wanted to make more board games, but without having to reuse code. BGT is a toolkit which implements a bunch of game components to create the engine, as well as a generic server. While still in progress, it should make creating a board game take very little time.
Technologies: Java, Spring Boot, Hibernate

Server Engine Client
Card image cap

File Center

Easy file upload/download website

The inspiration for this website was how complicated it can be to transfer files with others. My solution is a Node and Angualar web application which you can host on your local machine. Then anyone can go to the web address to either give you files, or get files from you.
Technologies: Typescript, Javascript, Node, Express, Angular 7

Source Code
Card image cap

Moon Phases

Arduino project to display the moon

This was a combined electronics and programming project. I had a light up model of the moon called a Moon in My Room that had very little functionality. I replaced the internals with an Arduino nano in order to give it more features.
Technologies: C++, Arduino

Source Code
Card image cap

LED Cube

3D grid of LEDs that can be programmed.

The inspiration of this project was to practice soldering. My first cube is 4x4x4, but I will eventually create an 8x8x8 cube. An Arduino uses multiplexing to display whatever I program onto the cube.
Technologies: C++, Arduino

Source Code
Card image cap

Advent of Code

Solutions to Advent of Code puzzles.

Advent of Code is an annual set of puzzles released on the first 25 days of December. Since 2019, I have enjoyed solving them each day with a new language I want to learn.
2019 Technologies: Clojure
2020 Technologies: Rust

2019 Puzzles 2019 Source 2020 Puzzles 2020 Source
Card image cap

Battlecode

Fully AI RTS competition

I participated for 3 year in the MIT hosted Battlecode competition. The challenge was to program bases to spawn units and fight each other. In my third year, my team made it to the finals, ending up in 9th out of 150 teams.
Technologies: Java

Competition Year 1 Year 2 Year 3
Card image cap

Dasher Assistant

Statistical tool for DoorDash Dasher

I spent a little time as a Dasher for DoorDash, and wanted to be able to optimize my day. I created this project to log everything about a dash, and used that to find the best times and places. It is designed to be easily extensible so more analysis tools could be created.
Technologies: Python

Source Code
Card image cap

Wii Remote

Control a computer with a Wii Remote

The original goal of this program was to create a way to control powerpoint presentations with a Wii Remote. I ended up expanding that to add more modes, with more functionalities. You can connect the remote through bluetooth, and it then will emulate a mouse and keyboard.
Technologies: Python, Wmgui

Source Code
Card image cap

Minesweeper

Java implemention of the game minesweeper

This was one of the first projects I completed. It is an implementation of the game minesweeper, which I wrote in java. It can play small, medium, and large maps and will keep track of completion times.
Technologies: Java

Source Code