This is a backend app that allows different zoos to track which animals are popular, along with other visitor information such as average visitor age and most favorite animal at each zoo. You are also able to search via animal types/colors/name as well as enter in a zipcode to show you the closest zoo near you. And as a fun bonus, we included some data and routes for the mythical animals of Avatar: The Last Airbender.
- MongoDB and Mongoose for the database and aggregations
- Express in nodeJS for the server
- Google Places API and Google GeoCoding API for locating zoos by zip code
- Bcrypt & JsonWebToken for authorizing and verifying users
- Jest for testing
- Terminal-Image, Gif-Term, Chalk, Chalk-Cli, Chalk-Animation, & Inquirer for the CLI part of the app
- average age of visitors across all zoos ('/visitors/stats/average-age-all')
- average age of visitors across each zoo ('/visitors/stats/average-age-each')
- zoos ranked in order from highest number of visitors to lowest number of visitors ('/visitors/stats/zoos-by-visitor-count')
- zoos ranked in order from highest number of animals to lowest number of animals ('/animals/stats/zoos-by-animal-count')
- most prolific animal type across all zoos ('/animals/stats/zoos-prolific-animal-type-all')
- most favorited animal across all zoos ('/animals/stats/fav-animal-all')
- most favorited animal across each zoo ('/animals/stats/fav-animal-each')
- '/animals/search/query?' --> type=__ & name=___ & status=___ & legs=___ & colors=___
- '/mythicalAnimals/search/query?' --> name=___ & habitat=___ & animalCombination=___
- You can add one query string to either route, or more than one; just make sure to connect the query strings with the '&' symbol
- npm i
- run node client/client.js
- TIP: If you are using iTERM2, the resolution will be much better than the standard built in command line
- npm run seed //to seed the data
- npm run start //to start the server
- npm run test //to run the jest test suite