Inspiration
Our inspiration for this project was our love for hiking. We were trying to decided how we could tie in our love with a webapp and after doing research we found that there was no easy way to track all which National Parks we have visited. Thus our project was born.
What it does
What we in-vision is to have a dynamic checklist of all the National Parks in the United States. Our solution would offer a rating system (0-5 stars) where users could leave a review of each park. Each park would also feature a URL to link them to more information from the National Park Service. We plan to expand on the information each park entry holds.
How we built it
Front End
The front-end was handled by Alex and he implemented the use of React. He also started implementation with Firebase for user accounts.
Back End
The backed was handled by Joseph and Zeb. We implemented the use of Flask which is a web-framework for python. We used the National Park Service API to gather information about each of the parks then stored them into a SQLite database. Then using Flask we would publish our database to our front-end with a route.
Deployment
Joseph handled creating a Dockerfile to build the project then automatically run it in a docker container. We opted for this for easy deployment and compatibility.
Challenges we ran into
In the front-end we ran into issues with Firebase authenticating users correctly. In the back-end we ran into issues with retrieving data from the NPS API then storing them into our database. We know our key was functional as NPS sent us to a demo website with a functional API call. After an hour of trying to debug we found examples online using the same API, which also refused to work. Our motto for this was, "its a _hack_athon" so we modified the demo website url to get access to the data we wanted then created a python script to directly access the url as opposed to requesting it with a authentication header. Now we are able to get API calls!
Sadly the challenge that ended up causing our group to run out of time was implementing Firebase with the back-end. We ran out of time for the deadline however we plan on continuing our work!
Accomplishments that we're proud of
For me at least (Joseph), I was very proud that I was able to dockerize the back-end and be able to deploy it on my home server. I set up a reverse proxy with nginx and currently have parkcheck.tech/parks returning a json with all the parsed data from our SQLite database.
What we learned
For myself (Joseph Again), I study embedded design and have never created a webapp, and a back-end for that matter. So I'm very proud that I was able to learn Flask enough to make a functional python back-end. I was familiar with deploying docker containers before however I never made my own before which was a great learning experience!
Alex knows how to robot very well. However! Webdev to him is a new interest of his and he dove head first into learning how to make a front end.
What's next for ParkCheck.Tech
We plan on continuing our work. We pushed ourselves out of our comfort zone this weekend to learn new coding skills. A checklist like this doesn't exist for the National Park Service and we feel like its our duty to fulfill.
Log in or sign up for Devpost to join the conversation.