Projects

Stride

Stride

This is an app for runners to generate and save marathon training plans. It is powered by a relatively simple algorithm that I wrote, designed to deliver training plans for any kind of runner. The main goal of this project was to gain experience working with cloud computing, as well as implementing a microservices architecture to create a robust and scalable web application. Although, AWS is primarily used by actual companies, and this project is currently just a concept application, so I am not currently running any of the backend microservices to avoid spending lots of money on ECS deployments.
Recursion Visualizer

Recursion Visualizer

This is an app that lets you code a recursive function and then visualize the recursion tree, along with the order in which the recursive functions are called. The visualizer works with any recursive function, as long as the code does not enter an infinite loop and the recursion does not go down too many levels. Some good functions to try out are Fibonacci, Binomial Coefficient, and Quicksort (templates are included). The visualizer also works with recursive functions using memoization, so you can see how an algorithm's time complexity improves when storing the results of previous computations.
Dorm Manager

Dorm Manager

A relational database project built using OracleDB, to view and manage the state of a university residence. The database stores information about buildings, rooms, current occupants, maintenance requests, sublets and package deliveries. It was developed by me and two other students as a course project for CPSC 304 (Relational Databases).
Thumbhash in C++

Thumbhash in C++

This is a C++ implementation of Thumbhash, an image compression algorithm written by Evan Wallace (co-founder of Figma). The primary use of this algorithm is to store a compact binary encoding of an image so that an approximate placeholder image can be displayed temporarily while the original file is loading asynchronously. I wrote a C++ version of this algorithm as I found it did not yet exist, and wanted to try combining the algorithm with the LodePNG library.
Dijkstra's Algorithm Visualizer

Dijkstra's Algorithm Visualizer

This is a tool for building undirected graphs with edge weights and visualizing how Dijkstra's algorithm finds the shortest path from one node to all other nodes in a graph. The main goal of this project was to help students first learning about graph algorithms better understand how Dijkstra's algorithm works, as well as why the greedy approach is effective.
goDine

goDine

This is a simple application to help people who want to eat out but don't know where to eat. The app works by inserting user inputs into a prompt and sending the prompt to an LLM provided by the OpenAI API. The response, which is a list of places to eat, is then parsed and sent to the Google Places API to get the restaurant information. Unfortunately, I am no longer running the site to avoid paying the OpenAI API costs, but you can still check out the source code.

© Jan Smailbegovic 2025