Here's a workout tracker for rhythm games that I threw together as a personal project -- https://step-step-recollection.bhmt.dev/

It's really only a demo, since I primarily built it to have a MERN-stack site for my portfolio and to track my own cardio during the plague, rather than ever really intending it to be as a service. It actually also turned out to be less useful on the tracking, because I found myself falling down rabbit holes about building a usable tool for tracking cardio -- as opposed to consistently doing the cardio I wanted to track, or bothering to keep the API stable enough to track it when I did. (Up until then, most of my experiences with Express and MongoDB in particular had been in existing codebases, so for the first few iterations I was more concerned with getting everything configured and deployed.)

Other sticking points, since in this case "usable" was defined as being able to visibly log data from real gameplay sessions, included setting up basic JWT auth (enough for myself and a demo account), and the trial-and-error calamity that was sanitizing ~1300 game files from my song library in order to scrape metadata from them and import it into my db. Additionally it's been through several attempts to refresh the visual design, just since that's not really a personal strong suit.

Aside from this leading to the same problem as XKCD's automation strip[0], it also became a whole side adventure into another project I had been putting off -- streamlining this and all of my other deployments -- because when I tried to share an early iteration, the host I was testing for this (Vercel) had been flagged by LinkedIn's spam filters. Getting around this involved finally deploying the whole thing to a custom domain and setting up the appropriate routing, which meant moving several projects off GitHub Pages. Vercel, it turned out, also had a hard limitation on custom domains, with theirs being that the only apparent way to use one was to register it through them. I eventually ended up moving all of them to Netlify, setting up dedicated subdomains for each (so that I also didn't have to worry about managing things like the multiple view layers used across different projects) and deploy branches (for storing any config files, etc. that are specific to a host) while I was at it.

By the time I actually solved all of these, I was also caught up in a mouse hunt in the space where I work/sleep/DDR instead.

I do intend to pick it back up at some point, once I'm fully convinced I won't need to keep deep-cleaning my pad. In all, though, it's arguably been more productive for the various side effects than it was for its actual purpose. One particularly fun one, at least, was the excuse it gave me to toy with Deno - which I used to handle converting and sanitizing my game files, scraping their data, and seeding my database with them. The built-in fetch client is particularly useful here, but truthfully I was also just happy not having to touch Babel again for this.

If anyone's interested in toying with it, here's the Github link for the API code.[1] Add -react to the end for the UI or -scripts for the various Deno tools.

[0] https://xkcd.com/1319/

[1] https://github.com/chaosharmonic/step-step-recollection