During the long winter break between fall and spring semester junior year (2.5 months of covid isolation), I did Hack@Brown with my friends Nalu Tripician, Isabel Armour-Garb, and Jack Canavan-Gosselin. The theme was After School, and I had the idea to make a website that lets you plot a route from point A to point B that isn't the most direct but contains various local hot spots and fun destinations. The idea was that students could spice up their walks to and from school with our app, which Nalu named "Happy Trails."
Since I had the most web development experience, with SpotCheck and the privacy tech lab, I created the website. I already knew Flask, but I wanted to learn something more useful, so I decided to teach myself Django. The knowledge I learned from Flask was pretty easy to transition over to this similar technology, as the concepts of routes, views, templates, and Jinja-esque syntax were all alike. In hindsight, Flask would have been a much better fit for this program, as all I needed was a lightweight web app framework, since we didn't use any of Django's database or authentication capabilities. I built and deployed the Happy Trails website to Google App Engine, which has become a breeze with as Google Cloud and I are best friends at this point. The rest of the team built the backend logic, which uses the Google Maps API to plot places and routes based on our hand-crafted ranking system.
After two days of feverish coding, we came up with a version of Happy Trails that, for the most part, worked. There are a few quirks about it, mostly stemming from problems in our ranking of locations. One bug that evaded me was referencing static assets using Django. For some reason I couldn't get any of my static assets (imgs, fonts, etc) to load. I used a crafty way of getting around this, which involved creating a publicly available GitHub repository and uploading the image assets there and then providing an absolute reference to the URL of the uploaded image. Now that I have more experience, I'm pretty sure this is because I didn't properly understand how paths work, but in other Django projects I've done I was able to successfulyl use local images, so maybe one day I'll come back and fix Happy Trails' weird quirk.
Luckily for us, we went to the closing ceremonies, because we ended up winning two categories! We won "best domain name," for our use of HappyTrails.space, and then we got into the top 25, so we won a year of Wolfram Alpha Pro (which I'm still waiting for, in April... c'mon Wolfram). Overall a very fun experience which taught me a lot about a new web framework and cemented my web app development skills. Check Happy Trails out below! Forgive us if it doesn't work, the Google Maps API shuts off when our trial billing account runs out of money :(