This is a joke app that uses, or misuses, the transitive property to prove players better than former world champion Magnus Carlsen. I started this project thinking it would be a 2-3 hour venture. Tap into the chess.com api, and run an A* search from player A to player B using players as nodes and games as directed connections between them, where winner always points to loser. However, after building this version of the app, I quickly realized that query size and request metering would make this semi-naive approach infeasible. Even a heavily weighted A* search was unable to produce results in hours. This is how a 3 hour project becomes a 2 week project. I had to restart, build a local SQL database to cache results from previous requests, design a new variation of A* in which the target becomes a frontier set around the destination, design a 2 stage distance function due to shortcuts found in the high ratings...
This computational overhead meant publishing it as a live website wouldn't work, but if you're curious and want to "prove" you are the best, email me and I can send you your chain.
This is the final project for my graduate-level algorithms course. Another project that ended up being modeled as a graph. My goal was to create a travel day-planner that could provide an optimized itinerary for a given day in a specific location.
The algorithm started as a pretty standard A* search with a twist in the framing. Time was now a new dimension. This had the benefit of preventing cycles, but had the downside of significantly increasing the search space. For each activity it could start at many different times and be done for a variety of different durations. I also came up with the idea of level trackers for hunger that would ensure the algorithm would keep you fed throughout your day. The cost of a path is measured in "dead" minutes. Time traveled is dead, while any time spent at an activity would be considered partially dead with higher rated activities being less dead than others.
The generation of testing data and a portion of the front end were developed with Claude, however the design of the backend and the structure of the algorithm were not agent assisted. While I can expand further if asked in an interview, further details about the implementation will remain unpublished here in case I overcome the barriers to making this a genuinely useful tool worth selling. Two real day trips have already been planned and executed using it.
Ok, calling this a tool may be a stretch, but if you ever want to watch a movie rendered entirely with ASCII characters in your console.. here ya go!
It uses OpenCV to extract frames, reshape them to the console size, then uses a brightness gradient to convert to ascii. Originally built to prank a fellow student.