Skip to main content

Portfolio

This is a collection of projects I’ve worked on—some professional, some personal, all driven by curiosity and a desire to build better systems. From web development and system modifications to software experiments, each project represents a challenge I tackled and a lesson I learned.

Ball State Bus Tracker (in development)

The Bus Tracker widget for the MyBallState app is being developed to provide real-time bus tracking, ensuring students and faculty can conveniently view bus locations. This project is designed to replace the previous TransLoc system with an in-house solution.

The widget is built with Preact, a lightweight React framework that integrates seamlessly into the MyBallState app. Preact was chosen over pure JavaScript for its maintainability and because our team has extensive experience with React. The widget also leverages MapLibre with OpenFreeMap, an open-source mapping solution that eliminates hosting costs. For route mapping, we used OSRM (Open Source Routing Machine) to generate bus loop geometries based on bus stops. The loop data is stored in GeoJSON format, a structured format widely used for mapping applications.

Digital Corps Office TV Boards

tv board

At my current job, there are two vertically mounted TVs in the office that display a website with daily announcements, weather updates, countdowns, and specific Slack channel slides, such as one dedicated to sharing pictures of pets. This system was originally developed in 2018, but by the time I started working on it in 2024, none of the original developers were still with the company, as they had graduated. Over time, as I was working, I became more and more curious on how they worked and why they would not function correctly sometimes. I eventually just made it my own side project to make them better.

Digital Corps Website (in development)

Digital Corps website

One of the most significant projects I’ve worked on at the Digital Corps is the development of a new website for the company. This project involved working with multiple APIs, including WordPress and our in-house API, to create a seamless and functional experience. On the frontend, I was responsible for two pages: the Staff Page and the Team Page. I implemented complex styling for both desktop and mobile views, ensuring the design was both visually appealing and responsive. Additionally, I integrated WordPress content into the frontend, allowing the communication team and other members of the Digital Corps to easily manage and update content. Many of the components I developed were designed for reusability, enabling my colleagues to implement them across different sections of the website.

iClicker Authorization Bypass Vulnerability

During my research into the iClicker web application, I discovered a vulnerability in it that allowed users to bypass location-based restrictions. This flaw made it possible for students to spoof their locations and join sessions remotely, undermining the integrity of the platform’s location-based attendance system.

iClicker requires students to be physically present in a session’s location to join. However, this check was enforced through a flawed system. When a student attempted to join a session, the iClicker app would request the device’s geolocation and send it to iClicker’s servers. If the location check failed, the server responded with the exact coordinates of the session’s location. This was the key flaw—rather than simply displaying a static map image, the server directly sent latitude and longitude data, making it easy to capture and reuse.

iOS Messages Jailbreak Tweak

ios messages tweak

I developed an iOS jailbreak tweak that allows users to modify the colors of message balloons in the iOS Messages app. This tweak was built using Theos, a cross-platform build system for jailbreak software development, and was written in Objective-C.

Using existing jailbreak software as a foundation, I reverse-engineered the Messages app to understand how to inject my own modifications. I had always wanted a way to customize message balloon colors, so I set out to create a solution myself.

Inventory Management System

Inventory management system

In my senior year of high school, I built a web application that allowed users to scan devices into a database and generate barcodes for each one. When a barcode was scanned, the system would pull up all relevant device data on a dedicated page, or add the device to the database if the code didn’t exist, depending on how the settings were configured.

At the time, my teacher was teaching Python, but since I already had some experience with it, he encouraged me to take on a more advanced project. I chose to develop this system, despite having no prior experience with the framework I used or working with databases. Over the course of six weeks, I learned both on the fly and successfully built a functional solution.