This was a rather short project ‘cause I already have a lot of expierence developing frontend stuff. It was a rather interesting project ‘cause I didn’t now I could use vite for gh pages and haven’t really ever written a github workflow.
Uhh okay so a lot happened the last couple days, let’s see if I remember it all. Club detail pages now render instantly from data the backend was already sending me, instead of firing off a fetch per team just to show one line. Added a filter on the home feed so you can pick a single favorite team when you’ve got a few, and match reminders, a notification 2h before your favorite teams play. Also found out my “cancel all notifications” call was silently wiping out those reminders every time daily summaries rescheduled. Fixed that.
Shipped club favoriting, result notifications, win and loss coloring on match cards, and a set scores bottom sheet you can share. Also fixed a really annoying race condition where pull to refresh on club pages looked like it worked but was actually serving stale data.
Then I paused feature work and finally added tests and CI, since somehow none existed until now. Consolidated the team and club caching into one thing instead of two almost identical copies, and put all my error logging behind one helper. Also found an embarrassing bug where none of the settings toggles responded when you tapped the switch itself, only when you tapped the text next to it.
Last thing, I wired up Firebase Crashlytics. New Firebase project, uncaught errors now get reported automatically, tested it end to end on my phone and watched a fake error show up in the console with the right stack trace. No more finding out about crashes by accident.
Did some last bugfixes, wrote a readme and built the release apk
Uhh Appearently I forgot to log : (. Ok so I’ve been doing a lot but like a lot lot, first off all, the app is now almost ready. It now fetches all it’s data dynamically from my other project volleyscoresapi. I added some features, you can now sync matches with your calendar, get notifications for matches that are happening today. Change the app to a light mode. I created an app icon and a banner. I worked a little on caching for faster startup and I think it’s ready for production.
Been refactoring scraper.py to handle seasons properly. Fixed a bunch of parsing bugs in get_team(), added get_ranking(), and ripped out the /history/{season}/ URL hack in favor of just passing a se param. Now it figures out the current season from the date so I don’t have to manually update a constant every summer. Pretty happy with it.
While working on my other project volleystats I stumbeled upon some bugs that needed to be fixed regarding the json output, dates and times that where in the wrong place. These 40 mins also account for debugging that I did on volleystats.
What have I been doing the last 5 hours, well that’s actually a pretty good question. Let’s see how good my memory still works. (I recommend opening the video in a new tab)
First off I added some new models:
After that, I had to fix my pages because I now had to fetch data to build these models via my api (checkout volleyscoresapi). Then I noticed some bugs in my api so I also fixed those. Short after I battled with some edge cases where suffixes, that sabotage the lookup of the team. Eventually I lost my patience waiting for models to load so I added a caching system for teams and clubs. Lastly I had to fix some issues where the matchdata of a team wasn’t correctly rendered. Now everything related to search works, I also have models so I don’t have to rely on static data. Next up I’ll be completely revamping the home page so that that also works dynamically, with a cache/ storage system to store your favorite teams.
I made the search page now dynamically fetch club data. You can now easily look up a club and fetch it’s data. Next up is the team data. I’ll probably be creating a custom TeamModel for the ease of use.
Wel uhm maybe I should have devlogged more. I created an app to view all belgian volleybal matches clubs etc… Currently only the search function uses the api I created (volleyscoresapi) and is also available in stardance. I think that this video would suffice what I’ve been doing the past 4h and 24mins.
Fought with dokploy not wanting to start my container after I changed the swagger docs a little. Dokploy now does what it needs to do for deployment and my docs are up to date!
(Image of me fighting dokploy)
Added a get team route. MVP is now ready!
Just finished a get_club function! You can now parse a club with the api!
Found the secret already existing not documented and very not easily readable api! I inplemented better api endpoints and better responses that are better documented. Glad I found this, this will speed up development so much!
Yipiee I updated all models and the database connector, everything works now. Test runs where OK. So I can move on!
Omd just learned some SQLalchemy it’s amazing. Made my first ever database mapped class, other then django models. Hopefully this works when I finish all other classes.
(Gif of me looking at my sqlachemy class)
Finished a search query function. You can now search the volleyscores web page. Next i’m working on unittests.