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.
To deploy a new instance of Flow, use the following instructions.
Download the Cloud SDK from Google.
https://cloud.google.com/appengine/downloads
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]
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 secrets.py, client_secrets.js from the templates.
To avoid conflicts sometimes seen with gcloud and google.cloud python libs it is often helpful to run the dev server in a virtualenv.
virtualenv env
source env/bin/activate
pip install -t lib -r requirements.txt
pip install -r local.requirements.txt
gcloud components update
./scripts/server.sh
Make sure dev_appserver.py is in your path, and run ./scripts/server.sh
to start the dev server locally, and gulp
in another terminal to build JS etc.
./scripts/deploy.sh 0-1
to deploy a new version 0-1 and set is as default
Visit https://[project-id].appspot.com
to see the app live.
- Daily journal / survey
- Configurable questions
- Optional location pickup & mapping
- Extract @mentions and #tags from configured open-ended responses (auto-suggest)
- Habit tracking ala habits app
- With weekly targets
- Commitments
- Tracking top tasks for each day (submitted with journal)
- Monthly/year goals & assessments
- Ongoing Projects tracking
- Track time of each progress increment
- View 'burn-up' chart of completion progress over time
- Analysis
- Show summary charts of all data reported to platform
- Segment analysis of journals by tag (highlight journal days with/without + show averages)
- Google Assitant / Home / Facebook Messenger integration for actions like:
- "How am I doing"
- "What are my goals for this month"
- "Mark 'run' as complete"
- "Daily report"
- Reading widget
- Show currently-reading articles / books
- Flash card widget for spreadsheet access (e.g. random quotes, excerpts)
- Export all data to CSV
- Public Github commits
- Google Fit - track any activity durations by keyword
- Evernote - pull excerpts from specified notebooks
- Pocket - Sync stored articles & add notes
- Goodreads - Sync currently reading shelf
- Track any abstract data via REST API
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
- Request an API Key at https://dev.evernote.com
- Request a webhook at https://dev.evernote.com/support/ pointing to [Your Domain]/api/integrations/evernote/webhook
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:
- Visit https://api.ai
- Update the agent.json configuration file in static/flow-agent
- Fill in config params in [Brackets] with your configuration / webhook URLs, etc
- Import the agent.json to API.AI
- Go to integrations and add and authorize 'Actions on Google'
- Preview the integration using the web preview
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.
Contributions are welcome! See CONTRIBUTING.md