What it does
There are two components to Stray Animal Map: the mobile app and Esri Cloud Services.
1) User opens app to a map of his current location. Nearby stray animals sightings will be shown on the map as clickable dots that show more information about the stray animal.
2) Map is created using ArcGIS API
3) User can also report a stray animal sighting, citing information about what species, health condition, and an image of the animal.
4) Information, along with user's current locatio,n is sent to the Esri Cloud Services where it is processed.
5) Map services are updated with the newly reported stray animal sighting.
How we built it
Android SDK - used to develop the mobile app
ArcGIS API - used to develop the map interface
Esri Cloud Services - used to update and store all stray animal sightings on a server.
Challenges we ran into
We originally wanted to use firebase as a server but that became very cumbersome so we switched to use Esri's cloud services.
Documentation for Esri Cloud Services and ArcGIS was not intuitive and it took considerable time to get our ideas off the ground.
Accomplishments that we're proud of
Successfully creating a map application using ArcGIS API and Esri Cloud Services that updates in real time.
Integrating camera use and an image preview into the mobile app.
What we learned
API documentation isn't always completely up to date (often times newer documentation will have the similar method or variable calls with minor changes). Also code-auto complete is a blessing.
Implementing various functions into an Android app (camera function and image preview).
Asynchronous functions are difficult to deal with but can be useful when done right
I learned more about creating and communicating between Android Activities
What's next for Stray Animal Map
Since the app is heavily reliant on crowd sourcing, we will need to need to popularize the app before it will have a decent number of stray animal sighting reports. We also hope to clean up the code and optimize it better to better take advantage of the highly asynchronous nature of the ArcGIS SDK.