Programming

A list of (almost) every programming-related project I've ever done.

Telemetry

A powerful data-collection system for the NASA Human Exploration Rover Challenge built by a group of 8 (led by me!). Includes networking infrastructure, individual sensors, and various representations of data. My personal involvement besides leadership was networking, UI development, new module development, and the report - everything below but the Arduino-based components.

Unfortunately, the pandemic hit and the system was never finished; that said, NASA did reach out to us for a follow-up interview for having one of the best reports, so that's more or less a win to me.

Modules/components

Card Image
Technical Report

The technical report submitted to the AIAA Telemetry judges for review. It didn't win us the award, but the interview was more than enough reward. Based on IEEE format (US letter). 

Card Image
User Interface

The backbone of the entire system, written with PyQt5. Handles data transfer and processing, provides human-readable representations of the data at home base, and indirectly manages the livestream. 

Python


Source
Card Image
Fitbit

The Fitbit component of the system. Provides vital signs and barometric pressure. Serves as an easily-accessible way of showing athletes/drivers system information (as well as their own vital signs).

JavaScript (mostly)

Source
Card Image
Livestream

The livestreaming component of the system.  Involves a single Pi acting as an IP webcam served with Flask, an overlay, and some OBS magic.

Python/Other

Source
Networking

The WebSocket-driven magic of the system. Involves four Wi-Fi repeaters placed around the course, a router, an additional network card, and each of the individual modules trying their best to talk to each other (wired or wireless).

An absolute pain, but at least it's a "set up once and never again" thing. All the infrastructure is there to just work on collecting and processing data from here on out.

Although there is no repo (since it's spread out across every module), it is worth mentioning as an overwhelming amount of time and effort was dedicated to it. Personally, working with the magic Wi-Fi repeaters and learning how WebSockets worked was very cool, although many hours of Googling.

Python/C++/Other

Source
Card Image
Sensors/Data Aggregation

The various Raspberry Pis, Arduinos, and individual sensors that collect data or gather everything together before sending them off to the UI or saving them to a local SQLite database/Google Sheets.

Python/C++

Card Image
Spectrographic Analysis

The multicamera system composed of four cheap webcams and a Raspberry Pi in a 3D-printed case. Uses OpenCV for image processing.

An alternative two-camera + switchable filter was being worked on before the pandemic, using the multiprocessing library to keep the cameras initialized and take the images instantly.

Python/SolidWorks

Source
Card Image
Website

The would-be website of the telemetry team (and possibly the school's rover team in general). Unfinished.

Card Image
Old Components

The old telemetry repo, long before the telemetry group was better-established and had a solid team. Owned by my account (as there was no need for an organization at the time).

Data was uploaded to Google Sheets and a local SQLite database as needed. Collected temperature, humidity, and GPS data. Pictured is the old UI.

Python/C++

Source

Other Projects

A variety of other personal projects, mostly written in Python.

Card Image
RectangleMappingTool

A program for drawing rectangles onto images with a high degree of precision. Made with PyQt5 and packaged with PyInstaller (through fbs).

Python

Source
Card Image
stk-bot

A Discord bot for match, player, and other tournament statistics using discord.py, Motor, and Pillow. Made for the osu! tournament STK8.

Python


Source
Card Image
water-pouring-puzzle-solver

A program for solving water pouring problems with animated, step-by-step solutions. Made with PyQt5 and packaged with PyInstaller (through fbs).

Python

Source
Card Image
Miller's R Us

An online store for AACT NHS chapter activities, built for selling public and student-made 3D printed models. Includes Azure and Sentry integrations for hosting on Heroku.

Python/Web

Card Image
tourney! / stk-web

An online tournament management and statistics website. Built with Django and Bootstrap.

Python/Web

Source
majsoul-voice-commands

Voice bindings for Mahjong Soul using OpenCV and voice-recognition. Work in progress.

Python

Source
lgactna.github.io

This website. Built with Bootstrap Studio.

Python/Web

Source
Old stat scripts

Old Python scripts used to generate spreadsheet statistics below. Uses discord.py, google-api-python-client, and Pillow.

Not public, there's too much sensitive info :(

Python

Source

Spreadsheeting

A list of every publicly available tournament spreadsheet I've ever done.  There was a point at which I manually entered over 2,000 rows of scores, long before I knew you could use scripts or the GSheets API to do the same thing.

These are copies of the originals, as the originals have links to others' personal accounts.

Google Drive

STK7 Ref Sheets

A general referee sheet, which assists referees by providing a full list of available maps, general match info, and more. Also automatically updates results on the main sheet as a match progresses.

STK6 Statistics

Full tournament statistics for STK6. Includes team, player, and per-map performance.

August 2019

View
osu! Marathon Cup Statistics

Full tournament statistics for osu! Marathon Cup.

November 2017

View
otct! Group Stage Statistics

Full tournament statistics for otct!'s group stage. 

July 2017

View
Re:Tourney Group Stage Statistics

Varied statistics for Re:Tourney (second iteration).

February 2018

View
Team Sheets

Includes two 8-player team sheets and a mod-based evaluative team sheet. While flawed, the eval sheet was an interesting way to quantify the "best pick."

STK7 Main Sheet (draft)

Unused draft of the main sheet for STK7.

February 2020

View
Card Image
STK6 Team List

Full STK6 team list.

March 2019

View
In-depth Match Stats

Unimplemented in-depth match stats sheet. Would have provided various information on an individual match; it's functional, but was never fully used.

February 2018

View
Player Lookup

Player lookup sheet for two tournaments. Would have given general statistics, best (modded) scores, and other information about a player. Fully implemented for Re:Tourney, partially implemented (no player list) for osu! Marathon Cup.

Early 2018