Header for page

Featured Programming Projects


Branches - 1st Student App Commissioned by Amherst College

snippet of branches form

Snippet from the Branches Form


Branches was the student-approved initiative to address Amherst College's high statistic of loneliness. I worked closely with the Branches Work Group to create an app that would sort interested students into social clubs, called 'branches'. Since we wanted diversity in each club, I based my sorting algorithm off a constrained sorting (8 queens) algorithm from AI. My constraints were grade, gender, and extra-curricular activity. I also coded scripts that cleaned the data post-insertion from user errors. I used Python on Flask for backend, and a MongoDB database. Click here to see the Branches form. The code is on this GitHub page.



Spontaneity - 1st Place Web App at Hack@Smith

spontaneity feed

Spontaneity's Feed of Events Near You


I coded Spontaneity with two others to address the salient problem of loneliness at Amherst College. Event-centered and location-based, this app encourages spontaneous get-togethers. Spontaneity's feed displays all events within 2.5 miles of a user's location. Users can also post their own events. When an event is over, Spontaneity removes it from the list of displayed events.
My Tasks: Geolocation validation (Meteor), form elements (HTML), clearing the feed (JavaScript and Meteor), editing and rebuilding the app post-Hackathon. The code is on this GitHub page.



Amherst Uprising Activism


I coded the Amherst Uprising website with a friend to document and further awareness of this protest. Primary goals of the protest were to draw attention to the racism that exists at Amherst, urge the college to provide better resources for minority students, and encourage faculty and staff to hire more diverse professionals.

This website was made using Materialize to be compatible with mobile devices. I coded the website, hooked up the domain to the server, and built in the mobile functionality.


Class Projects

All Shortest Paths in Nlogn: Found the shortest path between any two points in nlogn time. This was facilitated by the use of an underlying grid. Every square of the grid contained n points, and there were n squares. A path could only travel outside of the grid square via a corner point. Therefore, I first used Djikstra's algorithm to calculate and record the shortest distance from each corner to each other corner. Then, I used Djikstra's to find the shortest distance from each point to each corner in its grid square. The overall shortest distance (pt1 to corner1 + corner1 to corner2 + corner2 to pt2) was the overall shortest distance. My code is here

Compiler: I took a class on Compilers and made a compiler with a partner for the final project. It compiles a language called minijava, which was written by my professor, Lyle McGeoch. Minijava is similar to Java but has rules such as "a variable must be declared before it is used" and "Strings are a primitive type". Our code is here