Flow is a habit tracker and personal data analytics app that lets you keep focus on what matters. Flow owns none of your data. That's yours.
If you just want look around or get started with Flow, you can create a free account at http://flowdash.co.
To spin up your own instance, or start contributing to this repo, see below.
The docs are still a work in progress. Check out the current docs at http://docs.flowdash.apiary.io/#
To deploy a new instance of Flow, use the following instructions.
Download the Cloud SDK from Google.
Visit the Google developer's console: https://console.developers.google.com/ Create a new project and choose a unique project ID. You will not need a billing account if usage remains within Google's free tier, which should support low-mid volume use cases.
gcloud config configurations create [my-flow-config-name] gcloud config set project [project-id] gcloud config set account [my email]
To activate this configuration:
gcloud config configurations activate [my-flow-config-name].
Branch or fork this repository into a project directory.
Ensure you have npm and gulp installed.
npm install -g gulp npm install
Update the APP_OWNER variable in constants.py. Owner should match the Google account you logged into the console with. This will enable the application to send emails.
Create the following files by copying the templates (keep the original template files, which are used when running tests). For this step you'll need to create an oauth 2.0 web client ID from the GCP console, as per the instructions in
./settings/secrets_template.py => ./settings/secrets.py
./src/js/constants/client_secrets.templates.js => ./src/js/constants/clients_secrets.js
To avoid conflicts sometimes seen with gcloud and google.cloud python libs it is often helpful to run the dev server in a virtualenv. Make sure dev_appserver.py is in your path.
pip install -t lib -r requirements.txt
pip install -r local.requirements.txt
gcloud components update
./server.sh(in scripts/) to start the dev server locally.
gulpin another terminal to build JS etc
./deploy.sh 0-1to deploy a new version 0-1 and set is as default
If you get a permission denied error on a logs directory during deploy, you may need to run the above command wish sudo.
https://[project-id].appspot.com to see the app live.
All integrations work out of the box on flowdash.co, but if you're spinning up your own instance, you'll need to set up each integration you need. See below for specific instructions.
Create an app at https://getpocket.com/developer/ and update settings.secrets.POCKET_CONSUMER_KEY
We've used API.AI to create an agent that integrates with Google Actions / Assistant / Home. To connect Assistant with a new instance of Flow:
The messenger bot lives at https://www.facebook.com/FlowDashboard/
To create a new messenger bot for your own instance of Flow, see the Facebook quickstart: https://developers.facebook.com/docs/messenger-platform/guides/quick-start
(Beta / admin only currently) Push daily panel data to BigQuery for additional analysis, e.g. run regressions with TensorFlow, etc.
SELECT * WHERE __key__ HAS ANCESTOR KEY(User, [user_id])
Contributions are welcome! See CONTRIBUTING.md