RavePI
Uploaded on 14th February 2025
I was eager to throw myself into the backend side of things more with this project, and the number of Nicaraguan parties available to me as soon as I entered the country made for the perfect database!
It was honestly a little overwhelming planning my route with all of these fiestas being mentioned, so inputting it all into a SQLite table actually really helped me (and made me realise that, actually, there weren't really *that* many). Here's a few I managed to attend:

Popoyo's Secret - a magical beach party

Wet Wednesdays definitely lived up to it's name with torrential downpours on tropical Ometepe island

Some light volcano boarding before the chicken bus after party!

The famous Treehouse Party in Granada was full of great vibes
I decided to slow down a little in Nicaragua, as I felt as though I'd been zipping through my previous countries. This meant I could really enjoy the gorgeous beaches Nicaragua has to offer, as well as make lots of pals along the way.

Relaxing poolside API building and testing

An injured knee from volcano boarding meant it needed to rest, ice, compression and elevation - so the perfect time to code!

Bunk-bed coding while giant ants climbed the walls in the jungle - not my favourite coding buddies!
I'm so happy I got stuck into databases and APIs for this project, as it brought back all that methodical and logical love I have for mapping out those routes and working through the different status codes.
I decided to use SQLite as it is, as the name says, very lightweight which was ideal for my purposes, and I wanted to brush up on my SQL commands. I then decided to create the API endpoints using an express app.
In the end, I actually created 3 endpoints: /parties (which also takes location and day queries), /locations, and /parties/:party - although I ended up not using the latter on the frontend app. I was really happy to be able to write some therapeutic tests for these endpoints, including both happy and sad paths.
My frontend was a basic react app with only a few components and an easy way for the user to filter the data down if they wish. I wanted to focus more on my backend skills for this project, hence the less-than-snazzy UI!

The frontend page to visualise the data

The frontend page when filtered for Wednesday

Backend result when filtering

SQLite database
Overall I'm pumped I got to revisit SQL commands and create several API endpoints for this project, and I finally had some time to write up some proper frontend and backend tests - my true love in life (although they caused me some significant grief this time)!
If I had more time, I'd definitely like to refactor the files into repositories and resolvers for the backend, and components for the front. It would also be nice to expand on the API, add more data, and make the app even more engaging.
As always, drop me a message if you spot any bugs, have any improvement ideas, or have any suggestions for future country projects!