Lunch and Learn is a back end app that uses data from multiple API's to expose endpoints that can be utilized to deliver recipes, images, videos and even tourist locations related to a country that a user searches.
- Nick Spencer (https://github.com/deadbert)
- ruby 3.2.2
- rails 7.1.1
- postresql 1.1
- bcrypt 3.1.7
- faraday
- jsonapi-serializer
- fork and clone repo
- run bundle install to install all dependencies from Gemfile
- run
rails s
to run in a local environment to test the application
rails db:create
- run
bundle exec rspec
to run the full test suite
- REST countries API https://restcountries.com/#api-endpoints-v3-all - no API key required
- Edamam for recipes https://developer.edamam.com/edamam-recipe-api - get your key and app id here
- Youtube Search:list endpoint https://developers.google.com/youtube/v3/docs/search/list - get your key and app id with google
- Unsplash for images https://unsplash.com/documentation - https://unsplash.com/documentation#creating-a-developer-account - follow this guide to set up your app and key
- this endpoint requires a parameter {country}, and searches for recipe results related to the country passed as a parameter. passing a value of 'random' for country will select a random country to pull recipes from
- this endpoint requires the param {country}, and delivers a video as well as images related to the country passed as a parameter.
- this endpoint requires params {name, email, password, password_confirmation} passed in the body of the request. It will create a new user so long as email address is not already in use and passwords match. The password is salted and hashed into a password digest to avoid plain text password logging. This will also auto generate an API key for the user.
- this endpoint requires params {email, password}, and it will check the that the users credentials are valid and match the credentials after hashing the password.
- this endpoint requires params {api_key, country, recipe_link, recipe_title}, and it will save the recipe as a favorite for the user that matches the provided api_key
- this endpoint requires params {api_key}, and it will return a list of all recipes favorited by the user associated with the api_key