Inspiration

As big pet lovers, we were immediately focused on an animal-centric project upon discovering the Petfinder API. We determined that the best application was related to matching the users with available dogs, aiding both parties. Since prospective pet owners often don't know exactly what they're looking for, we wanted to create a fun way to browse available pets that lowered the knowledge barrier and relied only on the user finding pictures of pets they'd love to meet.

What it does

The user enters a link to an image of a dog. Our Dogpelgänger website determines the dog's breed and coat color and finds a matching dog available for adoption on Petfinder.

How we built it

We pass the url of the target dog image to a dog breed classification API and a color identification API, which return a list of breeds and confidence scores and a set of primary foreground colors. We mapped these breeds and colors to those used on Petfinder, allowing us to almost instantly filter through available pets and return the best available match to the provided photo.

Challenges we ran into

We ran into console error complications while using HTTP requests to interact with our multiple APIs. We spent a large portion of time debugging full-stack issues, ensuring that each request was properly formatted to avoid authentication and security issues and each response was properly parsed for presentation to the user. We also ran into problems with API documentation - our dog breed identifier API does not provide a list of breeds that an image may be identified as, so creating a mapping from the API's breeds to Petfinder's breeds was difficult. We had similar challenges mapping the color API's color names to Petfinder's animal color names.

Accomplishments that we're proud of

We are proud of creating an app with an appealing interface that is easy to use and serves a meaningful purpose. Technically, we are most excited about the accuracy of the service, and the gracefulness of our incorporated error-catching and user guidance.

What we learned

In the development of Dogpelgängers, we gained significant practice with APIs and client-server interaction over HTTP. We learned how to combine APIs to achieve maximum efficiency and an overall more desirable service.

What's next for Dogpelgängers

As we continue to develop the website, we hope to add additional ways to find a furry friend. We reached out to the developers of an API that matches humans to dog lookalikes, and although we didn't hear back within the timeframe needed to include it, we think it would be a wonderful addition to the platform.

We would also love to be able to support other pets, as Petfinder has a wide variety of animals, but we were limited by the capabilities of our breed-identifying API. In the future, we could incorporate APIs specific to these other categories, or simply pay for a more powerful API that could serve all of these animals.

Built With

Share this project:

Updates