Youtube Video We all have been seeing this on news articles and social media sites, and found this to be very disturbing. Over time we have noticed that events like these are more common and we decided to focus our attention on how we can help HMAR. We believe that this solution could help streamline their process giving them more time to respond to animals in distress.

What it does

HMARCamino splits its content up into 3 main roles: Admin, Volunteer, and General Public. By splitting up these roles we can render different content depending on the logged in role.

  • The general public can report sightings, and view information such as hotline numbers and other resources.
  • The Volunteer role can view reports, approve reports, combine reports, and view contact information for sightings.
  • The Admin role has everything above, and the ability to view all Volunteers and create new Volunteers.

How we built it

For this application we started off with the meteor application template react production from ICS department at the University of Hawaiʻi at Mānoa. We worked on IntelliJ IDEA with Meteor, a javascript web framework. In addition, we used React.js, MongoDB, and Semantic UI to complete our application.

Challenges we ran into

At first, we thought about creating an application that can be downloaded through the app store. Instead of making a user download an application, we decided first to make it a mobile website that can be open on any mobile device. For the public, having to download an app from apple/android will take too much time and having a website would be easier to access.

In terms of making our application a mobile website, making our website application responsive and optimized for mobile was one of our biggest challenges. Desktop and Mobile versions of an application are completely different because of the different dimensions of each device.

Accomplishments that we're proud of

Allow the public to create reports that include the ability to place markers on the Google Map and upload photos using AWS S3. To find the reporter’s location, we implemented browser geolocation and Google Places API. Once the report has been created, volunteers or admins can view and approve the reports. In addition, they can edit and delete said reports. If the volunteers or admins find two or more reports to be the same animal, they are able to combine them together into one report. Once the report has been assigned to a field volunteer via the existing ticketing system, those field volunteers can search for their specific report with the report ID.

In addition, we decided to have only admins be able to create new volunteer accounts. After creating the account and signing in for the first time, the new volunteers will be prompted to create their own password.

What we learned

We learned how to adapt and design our application around a client’s requirements. Throughout this challenge, we had to slowly piece together the final product and ask questions along the way. From this experience, we learned not to rush straight into coding and take time to plan and organize the functionality of our application.

What's next for ProjectCamino

Some of the things we weren’t able to implement was downloading a record as a CSV file. We plan to implement this in the future when we have more data added to our application. Another thing we want to do is make our web application downloadable and wrap our meteor app in Cordova for volunteer and admin accounts. Using this method we will be able to deploy on the App store (iOS), and the Google play store.

Security Solution

One of HMAR’s requirements is to keep data about reports inaccessible to the general public, but accessible for staff members/volunteers. Currently, we have added a security feature that only allows approved users (i.e, staff members/volunteers) to review, comment, or modify reports submitted by the observers. On top of this, only the staff members/administrators who already have accounts on the application can create accounts for other staff members and/or volunteers. Additionally, all data collected will be stored on a cloud server such as MongoDB Atlas, which has strong security and privacy features, to protect each user’s personal identifiable information (PII). Passwords stored on the database are also encrypted. Another security feature is the approval of reports (i.e, every time a report is submitted, a volunteer or admin will have to approve of them). This prevents false information and spam when downloading the reports. Right now, our web application uses HTTPS over HTTP giving us encryption for passwords and saved data.

The security features mentioned are already implemented in the application and we highly recommend them to be used for production. We also recommend implementing captcha authentication when submitting reports, which will help prevent bots from spamming the application. Additionally, a two-step authentication may also be added on volunteer/staff member sign in for added security.

Share this project: