Have you ever had an upset stomach from something that you ate, but not known exactly what that was? Gut Savvy is an application that helps users track what they eat and how they feel after eating to learn which ingredients in the foods they eat are good for their digestive system, and which are harmful.
Navigate into your desired directory and execute the following commands to set up the repository locally:
git clone [email protected]:johnktravers/gut_savvy_ui.git gut_savvy
cd gut_savvy
bundle install
rake db:{create,migrate,seed}
rails server
Once the commands have finished executing, open a web browser and navigate to http://localhost:3000. You can now access the application locally.
To make sure the repository is set up correctly, run the test suite with the following command:
bundle exec rspec
The user is first greeted by the splash page, where they can find a section on how to use the app and click the sign in button to sign in using Google OAuth2.
Upon signing in, the user is directed to their dashboard, where they can log a new meal. Meals are composed of multiple dishes (groups of foods that are commonly eaten together), and dishes are made of multiple foods.
The user can scan product barcodes or manually enter 12-digit UPC codes to add foods to a dish, or select from previously eaten dishes. The user can then add multiple dishes to the new meal.
After logging the new meal, the user is prompted to enter a "Gut Feeling", or digestive rating, for that meal. The scale ranges from -5 to 5, with -5 being the worst digestive experience ever and 5 being the best. After 12 meals are logged in the system and rated, the user can see their results.
The results page consists of graphs of the best and worst ingredients found in the foods that the user has eaten based on their rating across every meal logged. It also has a Gut Feeling Timeline, so the user can track their progress to improving digestion, and a table of every ingredient eaten along with the foods it is contained in.
- Ruby on Rails
- JavaScript
- Quagga.js -> barcode scanning
- Morris.js -> results page graphs
- JQuery
- Sinatra -> microservice
- PostgreSQL
- RSpec
- Travis CI
If you would like to make a contribution, please fork the repo and set it up locally using the instructions above. Commit your changes, make a PR to this repo, and we'll get to it shortly. If you have any questions or advice for new features, feel free to reach out to any of the core contributors below.