Art Carnival (Pt 1)

HomeBlog


The Art Carnival was a longtime project of Elissinia's that I never really had the time to fully implement, but I was itching to do a more rigorous side project for a couple of weeks and decided to take a crack at it. A lot has changed since the last major project I've worked on, so it was really fun to get back into it.

The main challenges were getting used to Next.js's app structure (which goes to show how long it's been since I've worked on a personal project...) and also carrying over some of the best practices I've picked up from being in the industry for a couple years now.

This is the result of a one-day hackathon to get all of the GET endpoints done:

The events were backfilled with a TypeScript script from Elissinia's archives of the past events.

Learnings

My current workplace is using the app structure, so luckily I at least had some experience with how it was supposed to work. The harder part was figuring out the best way to organize components for this specific project as I was building from scratch and not on top of something that already existed. I think it's been really good to take time away from work to do projects like these because it also gave me a better understanding of how the software I write for my job works, too.

I haven't had the time to properly type (as in TypeScript types) all of my API returns and frontend accesses yet, which is the next step in this project. I don't think any of my previous projects were strongly type-d because I never felt the need to do that as the sole developer (and also given how small scale they are), but my job has convinced me to follow best practices. A lot of bugs come up when things aren't properly type-d and another developer starts working on the same code, which is why I want to ensure even the software I write in my free time can be easily passed down to other devs in the future.

Next Steps

I still have to make the site mobile compatible and type everything (these are both QOL things in my opinion). I think I'm aiming to get this done sometime this week so that the next time I have the freetime to take on this project again, I can work on building out auth (which I can re-used my Edanverse experience for) and implementing some admin features to make running the event easier.

I think the order I plan to do this in will be:

  • Mobile compatibility
  • Type safety
  • Error catching/handling
  • Better image-batching (in the video, you can see how the loading of the images makes the page sputter out a bit)

And then in the next hackathon-day I have:

  • Smart user-matching (+ the tag system which will support this)
  • Hopefully some more fun UI things! I want to add animations and sparkles hahaha