Theme list page
Locations matching the theme (showing card cover and back)
C4 Container diagram
Locations by Theme Api
The team reflected on past trips' success and failures, and this reflection inspired the creation of themes.
What it does
The solution has themes, which are preset filters capable of selecting destinations appropriate to the intended activity. For example, we have a theme called Gliding that not only selects locations containing Point of Interest related to Gliding, but also makes sure that the wind is calm enough to perform gliding activities.
How we built it
After a brainstorm session (the reflection above) we had the idea of creating the themes and designed the process. At first, the idea was only creating an API, but then we found out that a front-end app would add a lot of value to the idea. The API was built in Kotlin/Spring boot and the front-end in React with Typescript, using Material UI.
Challenges we ran into
Research and get 'up and running' with random APIs were not trivial tasks. Free or trial weather APIs are very limited. Also, the holiday API stopped working for a weekend, and we almost had to change providers. And finally, we had to build the front-end in record time as well..
Accomplishments that we're proud of
After all challenges, seeing the app actually producing content dynamically was inspiring!
What we learned
Styling components is never a quick task!
What's next for Travel by Theme App
Lots of improvements can be added, such as speed retrieving data to user, fetching flight data after returning destinations, allowing user to change theme filters or create new ones, showing to user the locations filtered out and the reason why they were removed (this is implemented in the api side at least).