Code Monkey home page Code Monkey logo

puppy-finder-app's Introduction

Data Analysis & Visualization Bootcamp | UT-Austin McCombs | December 2020
David Vance, Jessica Bates, Michelle Nguyen, Rachel Reynolds, Reid Haynie, & Sabrina Saleh

Puppy Finder

screen-1

Link: https://project2-petselect.herokuapp.com/

Key Features:

Our app connects the users to their perfect puppy. It begins with a survey, where the users can input information about their preferred puppy "size" (small, medium, and large) and puppy "characteristics" (playful, active, loving, sensitive, etc.). The output then produces a list of puppy "breed" that matches with the specified preferences. For a particular "breed", the users can continue to select additional puppy features; such as gender, color, age, and health condition. As the final outcome, the app generates a list of desirable puppies that are available for adoption at the Austin Animal Center.

Static & Dynamic Dataset:

To develop the "Puppy Finder" app, we have utilized two types of data; static data for the user input of puppy "size" and puppy "characteristics" and dynamic data for the available puppies for adoption by "gender", "color", "age", and "health condition".

The static "size" data is defined by three categories - small (under 20 pounds), medium (20 to 60 pounds), and large (60+ pounds). The static "characteristics" data is defined by 37 categories; for creating the "characteristics" data, we have extracted the Temperament attribute from the following api: https://api.thedogapi.com/v1/breeds

To make sure our app is accessing the latest data of Austin Animal Center in producing the final puppy list, our Mongo-Atlas database is programmatically updated to generate up-to-date daily data. To extract the most recent data on available puppies and their features, we have used the following api and got it connected to our dynamic Mongo-Atlas database: https://data.austintexas.gov/resource/wter-evkm.json

Additional Features:

The "Puppy Finder" app includes a visualization page, which provides a visual representation of the Austin Animal Center data. Users can explore the plots/charts for a quick summary. Also, the app includes a fun page for the puppy lovers. Users can play games in the fun page and go to the youtube links to watch informative videos on the puppy breeds.

Applied Technologies:

  • Api & JSON
  • Python, PyMongo, & Mongo-DB
  • HTML, CSS, & Jinja
  • JavaScript & D3
  • Plotly Visualizations
  • Flask
  • Heroku

Highlights of Tasks:

  • Stacks queries of Mongo DB as a list of dictionaries to combine search parameters as a single DB query.
  • Python loops through every dog breed when a user selects a characteristic and adds points to the breed, then sums up and groups the breeds in order to find the top 5.
  • Fetch carries data between the python backend and the javascript frontend.

App Routes:

  • @app.route("/")
  • @app.route("/findapup")
  • @app.route("/findapup/create-entry", methods=["POST", "GET"])
  • @app.route("/findapup/mongo-query", methods=["POST", "GET"])
  • @app.route("/all-dogs")
  • @app.route("/visualizations")
  • @app.route("/fun_page")

Screen Shot: FIND A DOG

screen-2

Screen Shot: FIND TOP 5 DOG BREEDS

screen-3

Screen Shot: FINAL LIST

screen-4

Screen Shot: VISUALIZATIONS

  • This page provides interactive plotly plots for breed, gender, age, color, type, and condition.

screen-5

Screen Shot: FUN PAGE

  • This page offers fun games and informative videos for puppy lovers.

screen-fun

Limitations & Future Plan:

  • The find a dog page would ideally have pictures of the dogs available to be adopted, but the Animal Shelter API did not offer that. In the future, on our site would have a link to each dog's animal shelter page so they can go straight to the Animal Shelter site to get more information about that specific dog.
  • "Visualizations" page does not include any selector. We plan to address this limitation by including a selector for puppy "breeds" and make the page more interactive, where the users can visualize the dynamic plots according to their "breed" choice.
  • Link visualizations to live data rather than static JSON file.

puppy-finder-app's People

Contributors

batesj72 avatar dmvance avatar nmeeshell avatar rachelleereynolds85 avatar rchaynie avatar sabrinasaleh avatar

Watchers

 avatar

Forkers

batesj72

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.