Giter Site home page Giter Site logo

eatr's Introduction

Eatr

Update, we won 1st place in the Salesforce wide employee open source hackathon!๐Ÿ†

Done by Donald Bough, Kyle Disandro, and Elvin Uthuppan

Quick Explanation:

Demo video on YouTube here

Presentation Slides here

Overview

As one of our team members is diabetic, it was a pain to manually log food in his diabetes monitor app while it was already being entered in another food tracking app, MyFitness pal. Wouldn't it be great it the two apps were in sync?

Eatr is our addition to the MyFitnesspal python API API, and the diabetes app Nightscout by enabling MyFitnesspal foods to be logged into Nightscout as well.

For reference, MyFitnesspal is a food logger app. Nightscout is a web client for viewing blood sugar, as well as an iPhone app. Pushover is an iOS, Android, Desktop? App that allows a user to hook into its API to send push notifications to themselves, or others, when their app doesn't have the ability to.

In the case of Eatr, we don't have access to Nightscout or MyFitnesspal's actual app for modification. So the idea is to have our own python server that monitors what food has been logged in MyFitnesspal and when certain rules are violated, or met, we can send ourselves a notification on all corresponding devices that we decide to connect to Pushover.

In its current form the App looks for you to eat too many carbs and if you do that then it sends a notification to your devices to tell you to stop. The idea is that these rules can be modified to push anything and listen to anything. If you want to drink water every 40 minutes, add that rule. And if you drank water at minute 39 and updated it on the MyFitnesspal, have the server reset that 40 minute water timer so it doesn't still remind you. The option are limitless.

Setup

  • Download and make an account for MyFitnesspal, Nightscout (possibly more setup, Donald could you add to this part), Heroku, and Pushover.

    • General setup for all four of these should be pretty straightforward.
  • Add the credentials/tokens from all three accounts and add them correspondingly to the configs.example.ini file in our configs folder.

    • The token for a user in Pushover can be either a single user token, or you could create a Pushover Application and use that app token in its place.
    • This would allow you to send group notifications to friends, all they would need to do is make an account and use a link created by Pushover to subscribe their account to your Pushover Application
  • Change the config file from configs.example.ini to configs.ini and remove the corresponding .gitignore portion so that when you commit and push your code to your person Heroku server it can grab the correct configurations

    • IT IS IMPORTANT TO NOTE THAT WHEN YOU DO FORK OUR REPO AND PUSH YOUR CREDENTIALS/TOKENS, PLEASE MAKE SURE IT IS PRIVATE SO YOU DON'T EXPOSE THOSE CREDENTIALS PUBLICLY
  • With all of that done, you should be able to now link your Github with the forked and PRIVATE repo, make a deployment of the app from your repo to Heroku.

    • heroku logs --app your-eatr-heroku-app-name --tail allows your to track your Heroku app

Demo Video https://drive.google.com/open?id=14EC8oL-VRo5jmJsio3GJGcgz6OtdL0vq

eatr's People

Contributors

donaldbough avatar elvinup avatar

Stargazers

 avatar

Watchers

 avatar  avatar  avatar  avatar

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.