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.


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 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.

Share this project: