Link to Kind Kitchen Website
Link to Back-End Microservice
- Ruby 3.2.2
- Rails 7.0.7.2
- Faraday gem to interact with APIs
- SimpleCov gem for code coverage tracking
- ShouldaMatchers gem for testing assertions
- VCR / Webmock to stub HTTP requests in tests to simulate API interactions
- Omniauth gem for Oauth
- Fork Repository
git clone <repo_name>
cd <repo_name>
bundle install
rails db:{drop,create,migrate,seed}
rails server
- In your web browser, navigate to your local host
http://localhost:5000
**KindKitchen ** is a dedicated platform for those seeking wellness-focused, dietary-sensitive recipes and meal planning. Kind Kitchen caters to individuals with specific dietary needs, offering curated recipes, for a balanced lifestyle. Whether you're following a FODMAP diet, vegan, gluten-free, or just looking to eat healthier, Kind Kitchen has something for everyone. It is a full-stack project that leverages the Spoonacular API. This repository contains the front-end portion of the project which utilizes the API provided by the back-end repository.
This project has been deployed using Heroku, and Circle CI was used for Continuous Integration.
The Spoonacular Natural Language search endpoint allows for a great deal of flexibility in search terms. Users can search for general meal catagories, cuisine type, specific ingredients, or just type out what they are hungry for! The advanced search option offers a range of specific diatary plans and restrictions that will filter the search results even further.
Users can register for free either by entering their email or by using OAuth. Once registered, users can save favorite recipes to their personal dashboard for easy access.
Kind Kitchen leverages a combination of Devise with Omniauth to handle a Google OAuth2.0 connection. OAuth2.0 is used for authentication from Google, allowing the registration and log-in of accounts not created through Kind Kitchen.
The app requires access to Full Name, UID, and other basic information such as profile pictures, but does NOT grant access to modify or edit any of those details.
To store keys, use the following layout in the credentials.yml.enc file:
google:
google_oauth_client_id: <key>
google_oauth_client_secret: <key>
If access to the app needs to be removed from testing purposes, permissions can be revoked through Google's Third-party apps & services.
- Paul Bennett -GitHub: @pcbennett108
- Tyler Blackmon - GitHub: @tblackmon-tiel
- Nicholas McEnroe - GitHub: @NSMcEnroe
- Will Weston - GitHub: @z-fitch