DevPost

Accessing our App

You can access the current deployment via the site at: https://kahukai-bloombugs.cloud/. The default temporary admin user for our development purposes is "admin@foo.com" and the password is "changeme." You can also log in as the default regular user john@foo.com (password is also "changme"). John can input records, but he cannot see all of the records. You can also create your own username and password by clicking on "Login" at the far right and choosing the "Sign up" option.

If you wish to recreate the app locally on your machine, you can find detailed instructions on our GitHub: https://github.com/HACC2021/bloombugs/blob/main/README.md

Inspiration

This is the first Hackathon for every member of the Bloombugs team. We were all very excited to find out about the HACC and to be able to work together. When we found out what the challenges for this year’s HACC were, we were all intrigued by the Hawaii Marine Animal Response challenge. One of our team members volunteers with HMAR and was able to give us good insight into the organization. We were drawn to the HMAR challenge because of our eagerness to protect animals, especially when they are in distress. So, it was a unanimous decision when it came to choosing a challenge.

What it does

The HMAR challenge is to reduce the phone traffic when an animal sighting is reported. HMAR volunteers expressed that they get a lot of phone calls when an animal is seen and a lot of the calls are reporting the same animals and so jamming the phone line. The solution for the challenge was to create an application that can be accessed on a browser and seen on both mobile and desktop devices. The app will take in animal sightings and submit them to a list that can be accessed by the HMAR volunteers. Public users will have an option to report an animal sighting or an animal in distress. If the animal is in distress, the user will be encouraged to call HMAR directly but can also fill in a simple form and submit it. A regular animal sighting form will take a more detailed report asking about location, markers, behaviors, and more. Each form will record the user's name and number to allow HMAR to contact them if needed. There is also an admin page that is built for the HMAR volunteers. This admin page will allow the volunteers to see four different report lists being the turtle sightings, seal sightings, bird sightings, and distress reports. Only the admin profile will have access to the list of animal reports.

How we built it

We are using a tech stack composed of: Meteor, Mongo, Semantic UI/React, hosted on a Digital Ocean droplet. Throughout development, the app will be pushed to GitHub where the team can collaborate effectively. We currently have planned all of the different pages and navigation methods implemented in the app: eventually, the app will intake animal sightings and distress reports for HMAR to then respond to and aggregate the data.

How to run the app

To run the app, you will want to clone the repository to your local PC or Mac. Make sure that you clone it in an easy-to-find location. Next, open either your Terminal if you are on Mac or Command Shell if you are on PC. Next, you will want to get to the directory in Terminal or the Command Shell. In the Terminal/Command Shell type in "cd" and then the path to the folder that the cloned repo is in. For example, mine is in my bloombugs folder so I would type "cd documents/github/bloombugs" and hit enter. Once in the folder, you need to find the app folder which should be in the folder of the repo. For this application, you need to cd into bloombugs-kahukai as well. For my directory, I would type in "cd documents/github/bloombugs/bloombugs-kahukai/app". It will look a bit different depending on where you saved it. After you cd into the app folder, you will need to type in "meteor npm install". That will install meteor into the app folder so that you can run the application. Once done, type in "meteor run" and the program will be running. When it says "App running at: http://localhost:3000/", your application is running successfully. Copy the part where it says "http://localhost:3000/" to your web browser and hit enter. That should bring up the application successfully.

Security and Privacy (295 words)

One of HMAR's key concerns about a web app is that they don't want the app to be used for nefarious purposes, where members of the public try to track down animals by location. We addressed this issue with our Kahukai app by making it so only the administrative users (i.e. HMAR staff) could view the sighting records. Users can register and log in to the app. But they cannot see the record once they submit it. Only admins can see the reports: user info in a single report is protected (i.e. their name, phone number, and the location they saw the animal).

While users are not required to be logged in to submit reports, to protect the public user info, users can register and log in with a password that they submitted if they so wish. So, no one can get to any other user's info except for the administrators (HMAR). The public user's account(s) do not store info about the user. Logging in does not give the user any other special privileges, besides having their information being protected. But, having the user sign in with a password reduces the chance of people trying to attack the data by making spurious entries.

Our Mongo database that stores the data resides on the servers that Digital Ocean provides. Unauthorized users cannot see the database because it is protected by Digital Ocean's password system. Since the underlying database is a NoSQL database, the application is not susceptible to SQL injection. Since we are only storing JSON data, then there is a low risk of any kind of JavaScript injection.

In the future, we would like to set it up so the app uses HTTPS/SSL. So, that when someone submits with their cellphone and the transmission is intercepted, the transmissions would be encrypted. Our app could also be made more secure if we were able to add multi-factor authentication for administrative users.

Challenges we ran into

The biggest challenge that we ran into was coding together. As this is all of our first hackathon we did not really know how to effectively code collaboratively. We initially had some trouble with the merging and forking as we were all quite new to collaborating on GitHub. We now are much more confident in using GitHub to track changes. Another challenge that we faced was finding meeting times to work on the hackathon together as we all have busy schedules and so did not always have the time to meet, especially for the 5 of us together.

Accomplishments that we're proud of

Besides the initial trouble with GitHub we have been working great as a team! Our different strengths all complement each other and we have not yet had any massive arguments. We have learned so much from this experience as it is all our first hackathon and apps outside of the classroom setting so we are quite proud of our ability to forge ahead and create the HMAR app with not that much experience in software engineering.

What we learned

Along the way all of the coding hiccups that we ran into we have been able to (mostly) solve! It was very different for all of us to code in the classroom where you have structured guidance from the Professors and Teacher Assistants, screencasts to help any errors to program a completely new app that has not been done before without a tutorial. Our coding skills and collaboration skills definitely improved massively and we all are having a great time doing this hackathon, especially to support HMAR’s cause.

What's next for Bloombugs HMAR Sighting App

Our progress thus far has been fantastic. We would like to continue polishing off the browser app and make it look attractive and improve functionality and user experience. If time allows it would be great if we could make a native app for iOS and Android phones so that it is not just a web browser. Nonetheless, the browser app can still be accessed from any type of device so we are quite happy with the outcome! The team has really enjoyed working together for this hackathon so many of us are keen on other hackathons and project opportunities.

Share this project:

Updates