Inspiration
In our current area, many different animals are often seen in our neighborhood. From coyotes to raccoons, each animal poses risks to humans and itself. That is what Faunify aims to accomplish. Faunify can aid users and common citizens, helping them understand how local wildlife affects our daily lives, as well as what to do when spotting one. With the use of crowdsourcing, it also creates a community that can warn others of their safety. Additionally, as climate change is increasingly becoming a global problem, it can also affect the habitats of living organisms. By displaying how anthropogenic effects can lead to migration of habitats, it can not only show students how we can negatively harm animals, but it can also help researchers understand the dynamic between people and animals.
What it does
Our app provides the opportunity for users in California to track wildlife populations as they recently have shifted more into urban settings. Users can take a photo, take a short questionnaire, or choose from a list of animals to gain more information on it. From then, they can choose to report the sighting and it will get added to a database that appears on a shared interactive map. The map highlights the original population’s location in California, as well as newer ranges appearing as a result of reported sightings. This app overall ensures improved safety for both wildlife and local communities as safety measures and in depth information is provided to the user upon animal identification. We hope our app can minimize the harmful encounters between people and wildlife that are recently occurring at higher rates.
How we built it
We are building a web application using React, along with Vite to quickly run and develop the project. To display maps, we use Leaflet with OpenStreetMap, and integrate it into React through react-leaflet. For data, we combine user-submitted information with external sources like the iNaturalist API and GBIF API to gather animal sightings. We determine the user’s location using the Geolocation API and OpenStreetMap geocoding. For the machine learning component, we train a convolutional neural network using Scikit-learn and Keras. Images taken by users are processed through a custom library that converts them into numerical data, using tools like Pillow, NumPy, and Pandas. Putting everything together, react will take a confidence interval and a string value from the model to show on the identification.
Challenges we ran into
We experimented with different frameworks to support our app, originally aiming for it to be a mobile app. Because of this, we originally aimed towards using Flutter, which would enable this. However, there were a lot of difficulties for testing the application, as we were unable to run emulations on our laptops. Thus, we decided to use React, something that we already have experience with. React allows for both web and mobile development depending on the framework. We originally experimented with using Expo however, it still would not launch on mobile. Then instead, we decided to use Vite to just build a web-app, then convert it to a mobile app using Capacitator JS in the future.
Accomplishments that we're proud of
We are proud of all the implementation of data we found, including the iNaturalist API and the GBIF API. Incorporating these datasets allowed our web application to start with an abundance of data that acts as a foundation rather than starting from scratch. This allows our users to build upon already documented animal sighting records and further expand on the platform’s data. Another accomplishment is our inclusion of AI to identify the species of animal through uploaded pictures. This dramatically simplifies the overall flow of our website and enhances user experience by eliminating uncertainties and streamlining the animal identification process.
What we learned
Through our participation in the hackathon, we learned to consider various problems from several different angles in order to most effectively tackle the issue at hand. Our biggest takeaway is how complex problems can become once they reach such a large scale, especially when it comes to affecting both people and nature. Solutions must be considered carefully to avoid exacerbating the problem or harming people and wildlife. Through effective teamwork and discussions, we were able to build an app that considers public safety as well as natural conservation, tackling each problem we encountered cautiously and constantly refining our ideas.
What's next for Faunify
Looking ahead, Faunify's range would expand the population tracking beyond just California. This would provide a larger database for researchers as well as promote protective measures across the country. We also plan to add a community forum that can contact wildlife professionals and converse with the general public to expand community involvement. Furthermore, a notification system will be implemented that could promptly notify users about wildlife nearby so safety measures can be taken.
Built With
- expo.io
- keras
- leaflet.js
- numpy
- openstreetmap
- panda
- pillow
- react
- react-leaflet
- scikit-learn
- vite
Log in or sign up for Devpost to join the conversation.