My Projects
SpotifyShuffle
OAuth2, HTML/CSS/JS, Netlify
I found myself dissatisfied with Spotify's shuffle alogrithm, as it just shuffles the whole playlist. I want to listen to my playlist in order, but just a little bit shuffled. So, I made a web app that let's me log in with spotify, import a playlist, and then add a slightly shuffled version to my queue.
CoronaFriends
Firebase, HTML/CSS/JS
This project was my first time using Google's Firebase to create a website with a front and a backend. I learned a lot about how modern websites work, and gained a much better understanding about how the front and back ends of a website interact with eachother. This projects also uses the OAuth2 flow to log in, which was a new tool to me. The website itself is a prototype of a social media website designed to connect people who must be physically isolated, and it automatically creates google hangouts for people to connect in.
HackIAW
Project Management, Airtable/HTML/CSS/Netlify
Along with members of the programming club I founded at my high school, I worked on every aspect of planning an event. I built a website, worked to market our event, approached sponsors and dealt with logistics. We planned to host over 50 students from the surrounding area, but had to cancel it due to COVID-19 :(
Hack Club
Leadership Skills, HTML/CSS/JS/Netlify/Airtable
I founded the first ever programming club at my high school, Hack Club. With my co-leaders, we created workshops to introduce people to coding to fill a void left by the lack of computer science classes available to us. We maintained a club attendance close to 5% of the size of our school.
IB Extended Essay - Physics
Major Project as IB Diploma Candidate
For my extended essay, I chose to investigate a field of physics that my curriculum did not cover: engineering physics. I investigated the effect of changing the radius of an axle of a vehicle with constant input force and energy. I learned about the entire process of academic research.
NotifyMe
NodeJs, FaunaDB, Netlify
This is multi-platform desktop notification service built using Netlify on the JAMStack. It uses serverless Lambda functions as the backend, and connects to a serverless database service, FaundaDB. Sign up today!
p5.graphing
JavaScript, p5.js
This is a library for the JavaScript framework, p5.js, that is an all purpose graphing library. It supports many types of graphs, including bar graphs, line graphs and pie graphs. You can read more about it on the wiki and documentations at p5graphing.info
Min-Max Line Finder
JavaScript, HTML, Desmos GC API
This project makes use of a powerful API, made by Desmos, with a graphing calculator embedded in the page to show points with uncertainty values, and equations based off of calculations done in JavaScript. The purpose of it is to automate a process which can take a significant amount of time, finding minimum and maximum slope gradients given a dataset. I did this to help speed up the process of writing Physics lab reports.
Laws of Sines and Cosines
JavaScript, HTML
This is a calculator with walkthroughs for calculating the other side lengths and angle measures of a triangle when given any of the possible combinations.
WebArt
p5.js
A project created in collaboration with my classmate, Jake, that seeks to create a basic yet capable online pixel art platform. Code
Statistics Calulator
p5.js
Histogram, box plot, and number cruncher for 1-var statistics data. Created as a side project to further understand mathematical knowledge. Code
Block Breaker
p5.js, Express
This project is a clone of the CoolMath game https://www.coolmathgames.com/0-bricksbreaking, with a server hosted leaderboard and score tracking system coded in Express, with the front-end written in p5.js.
Alarm Pi
python
10th grade personal project. I created an alarm clock with the goal of being able to wake me up - and succeeded.
Electric Field Simulation
p5.js
WIP - Basic simulation of an electric field.
Rubiks Cube Simulation
p5.js
While not visually impressive, this simulation performs all of the calculations for the rotations when a Rubiks cube is turned. It can take CSV data representing a cube as an input, and displays the Cube in two dimensions.
Kepler's 3rd Law - Gravitation
p5.js
Uses Kepler's 3rd Law to model gravitational orbit given two of three variables: period, distance between bodies, and mass of the Earth