To get access for any passwords/usernames contact: Kobekuyeda@gmail.com

Inspiration

Recording data for HMAR is a hassle. They have to get detailed data from someone who may not be able to communicate well. SnowDown aims to solve the data hassle by developing a web application. We went with a web application to allow for ease of use from the public side and for HMAR side. Allowing any device that has internet connection to be able to file reports and to view them. We wanted to use google maps to help both sides be able to navigate the island, to give great details of where the incident is taking place.

What it does

Our web application allows for the public to file a report on Monk Seals, Sea Turtles, and Sea Birds. To make sure that location data is as reliable as reported, we use GPS, and google maps locations. Together they allow for easy and detailed location data to be collected. The site also has a log in feature that allows authorized HMAR volunteers to access reports that have been filed. Allowing them to filter through reports based off date, ticket number, and even the type of animal they are looking for. This data then can be exported as a csv which can be modified how ever they want. We also use google maps to better illustrate where the report is taking place, allowing for HMAR volunteers to better visualize where a certain latitude and longitude is. Making it a all in one place to file and view reports.

How we built it

Many different Technologies were used in the development of the site. For the back end we went with Django. Django is a python web framework that allows for rapid development while maintaining security. For our database we used PostgreSQL. The PostgreSQL is hosted by Google Cloud SQL, with periodic backups being ran so no data is ever lost. For the front end we use React. React is a Javascript library that allows for a nice dynamic content to be rendered. The way React communicates with Django is through an API system called GraphQL. GraphQL is known for being fast and for data not to be wasted. GraphQL makes sure that you only query the data that you need to show. Making sure that no redundant or not needed info is sent out reducing speeds. Finally we store pictures in a storage bucket hosted by Google cloud, with all pictures requiring the need of authentication to view them.

Challenges we ran into

Though out this event there were many challenges that were overcome. The first challenge that we experienced was with the the back end communicating with the database. In the beginning we were planning on using mongodb. The plan was to use mongodb for its free database hosting option. This idea was scrapped after Django had many issues in communicating with it and updating the database. Other issues that were experienced was with security. All passwords and apis have not ever been pushed to Github. With this security measure in place we have used .env files to make sure that this data was never pushed. The issue that we had was when our code sometimes never was able to read from the .env files. Over time we figured that the code was looking in the wrong directory. Finally we also had issues setting up our API. The issue we had was learning how GraphQL work with Django. It took time learning this library, but in the end it works very reliably.

Accomplishments that we're proud of

One of the big accomplishments was when we finally connected the React front end to django. When everything worked and there were no issues was when I was celebrating the most. To be able to set up an API connect it to the front end with out getting any errors was a big win. What was even better was seeing google maps work just like it was suppose to moving the marker to the exact area you were talking about was awesome. Finally one of our last accomplishments that we are proud of is how we were able to get users all set up being able to view reports and to be able to export said reports to a csv. That was the big question I had when developing this and am proud of the final result.

What we learned

There are many things that I have learned about through out this adventure. For one I got to learn more about GraphQL. I have used the REST framework before, so learning a who new API system was really cool and rewarding. I was also able to learn more about different features that google and AWS offers. From the previous HACC I learned about google cloud run and how to set that up. This go around I learned how to set up a secure storage system to store images, to set up a SQL server, and then to communicate to the SQL server while the site is being hosted on a server less option called cloud run. All of this has been a great learning experience learning different types of technologies they provide.

What's next for Snow Down

There are many different directions this project can go down. One of the directions that I would like for this project to go down is to develop more of the API, to allow a way for NOAA to just query the data instead of coping the data by hand. Another route which I want to go down is to also add some type of machine learning, allowing for the prediction of frequent areas animals visit, so volunteers can go to certain locations ahead of time. The first step was to get reliable accurate data, now the second step is to take that data and to analyze it. The main goal for Snow Down was to make sure that more accurate data was collected, and now it is to make great predictions off that.

Share this project:

Updates