According to the ASPCA, it is nearly impossible to determine how many stray dogs or cats there are in the United States. A large percentage of these strays are actually lost pets. Only 17% of them are ever reunited with their owners. The inspiration behind this project was sparked by our collective efforts of wanting to help animals. We are all animal lovers and immediately jumped on the opportunity when we found out that there were API's that we exactly needed! We want to help pet owners spread the news of their lost companions, gamify the searching efforts, and provide animal shelters with geo-location information regarding lost animals in their vicinity.
What it does
We created a "Pokemon-Go-isc" IOS platform that focuses on two main features, whether you are reporting a potential lost pet or posting about your own lost companion. The app will track your current location and have pins of “sightings” around you.
Let’s say you are in an area where a lost pet could be located and you spot what could potentially be the pet itself! You would open the app, and snap a picture of your sighting. The app will then prompt you with a list of pictures of the lost pets within the area that are similar to the animal you spotted and you pick the one that matches with your sighting. This information will then be added to our map as another pin and the nearest shelter will be notified via email.
On the other side of the application, users can post about pets that they have lost. They can upload an image of their pet along with detailed descriptions that would help categorize their lost companion. What our app will normalize all the sighting data of the pet and point these pet owners towards animal shelters that could be housing their pet.
How we built it
We initially planned out all the different components that would need to go into creating a location based mobile application. For the frontend of our application, we used a combination of React Native and Redux. We initially started off by getting the basic front end up and running before we moved on towards figuring out all the different backend routes that needed to be created.
On the backend, we used Google Cloud Platform to store and deploy the backend of our application. We initially tried using Microsoft Azure, but could not get it setup correctly. The backend is created from Node JS, Express JS, Babel, and Gulp.
Challenges we ran into
Challenges we ran into was figuring out how to integrate the different APIs that we wanted to use. We found that some APIs were not used in a while and contained deprecated code that made integrating them extremely difficult. We also had trouble with authentication with one of the APIs. Documentation for some of the APIs focused on languages or stacks that we were not using. Under the time constraints, we spent a lot of time working on the frontend and backend separately and are now facing major challenges of hooking them up together.
Accomplishments that we're proud of
We are extremely proud of finishing all the major components that we wanted for the front end. For some of our team members, it was their first time working with React-Native! Seeing how polished our front-end and design is really contributes to the overall effectiveness of our project.
We are also proud of being able to deploy our back end onto Google’s Cloud Platform. Testing out all the backend code and seeing how all the routers that were created worked independently from the frontend just shows how well we abstracted our code. Our backend is also fairly sophisticated and seeing how we only had one team member flush the majority of it out is an accomplishment all in itself.
What we learned
As a team, we really played well off of each of our strengths. We were able to brainstorm many ideas from the very beginning. What really added to our efficiency was how we narrowed down the ideas into one that we all agreed needed to be created. We split up all the work fairly well amongst everyone and surprisingly never came across any merge conflicts! We were able to integrate a lot of the API’s into our application in an organic manner. We really focused on the API’s that would play an integral role in our application instead of artificially choosing them based off of the prizes.
What's next for PawPrints
The concept of gamifying the lost pets searching process is one that is very unique. It helps pet owners who have lost their pets by essentially crowdsourcing the efforts out to other people. Those who contribute to the database by snapping pictures of lost pets that they spot will not only be doing a huge humanitarian work, but also helping someone reunite with their bestfriend! PawPrints can gain more users by incorporating an incentive system where everyone who snapped pictures of the lost pets that helped the pet owner can rewarded for their good work. The monetary are sent to them after being verified by the owner themselves. Beyond the scopes of PawPrints, we can apply the model that we followed towards other humanitarian work. PawPrints’ gamified nature has the potential to revolutionize humanitarian work by crowdsourcing community service.