All Projects → cjroth → lifebot

cjroth / lifebot

Licence: MIT License
Use Google Sheets to log your life by texting it Emojis and pulling in data from Fitbit automatically.

Programming Languages

javascript
184084 projects - #8 most used programming language

Projects that are alternatives of or similar to lifebot

Mintable
🍃 Automate your personal finances – for free, with no ads, and no data collection.
Stars: ✭ 849 (+5560%)
Mutual labels:  spreadsheet, google-sheets
Google Sheet S3
Google Apps Script that publishes a Google Sheet to Amazon S3 as a JSON file. Auto-updates on edit & maintains data types. Creates an array of objects keyed by column header.
Stars: ✭ 81 (+440%)
Mutual labels:  spreadsheet, google-sheets
Luckysheet
Luckysheet is an online spreadsheet like excel that is powerful, simple to configure, and completely open source.
Stars: ✭ 9,772 (+65046.67%)
Mutual labels:  spreadsheet, google-sheets
Cuba
🇨🇺 Google Sheets + SQL = JSON
Stars: ✭ 45 (+200%)
Mutual labels:  spreadsheet, google-sheets
Claudia Bot Builder
Create chat bots for Facebook Messenger, Slack, Amazon Alexa, Skype, Telegram, Viber, Line, GroupMe, Kik and Twilio and deploy to AWS Lambda in minutes
Stars: ✭ 1,717 (+11346.67%)
Mutual labels:  aws-lambda, twilio
Googlesheets
Google Spreadsheets R API
Stars: ✭ 771 (+5040%)
Mutual labels:  spreadsheet, google-sheets
Pygsheets
Google Sheets Python API v4
Stars: ✭ 1,116 (+7340%)
Mutual labels:  spreadsheet, google-sheets
Gspread
Google Sheets Python API
Stars: ✭ 5,676 (+37740%)
Mutual labels:  spreadsheet, google-sheets
Googlesheets4
Google Spreadsheets R API (reboot of the googlesheets package)
Stars: ✭ 232 (+1446.67%)
Mutual labels:  spreadsheet, google-sheets
Robinhood Google Sheets
Robinhood Custom Functions for Google Sheets 📈
Stars: ✭ 117 (+680%)
Mutual labels:  spreadsheet, google-sheets
Importjson
Import JSON into Google Sheets, this library adds various ImportJSON functions to your spreadsheet
Stars: ✭ 1,705 (+11266.67%)
Mutual labels:  spreadsheet, google-sheets
BakingSheet
Easy datasheet management for C# and Unity. Supports Excel, Google Sheet, JSON and CSV format.
Stars: ✭ 144 (+860%)
Mutual labels:  spreadsheet, google-sheets
HTML-templating-with-Google-Apps-Script
Use data from your spreadsheets to build a webpage or a client-side app ✨
Stars: ✭ 55 (+266.67%)
Mutual labels:  spreadsheet, google-sheets
ts4health
Time Series Data Analysis, Visualization and Forecasting with Python for Health and Self
Stars: ✭ 17 (+13.33%)
Mutual labels:  fitbit, quantified-self
mysql2-lambda
Precompiled Mysql2 Gem for AWS Lambda
Stars: ✭ 19 (+26.67%)
Mutual labels:  aws-lambda
Personal-Finance-Net-Worth-Tracker
Personal Finance (Net Worth Tracker) Wealth Management Spreadsheet
Stars: ✭ 31 (+106.67%)
Mutual labels:  spreadsheet
twitter
A serverless social network that's under development with some cool stuff, such as Serverless Framework, AppSync, GraphQL, Lambda, DynamoDB, Cognito, Kinesis Firehose, and Algolia ☁️
Stars: ✭ 29 (+93.33%)
Mutual labels:  aws-lambda
google-spreadsheet-cli
📊 CLI for reading and writing data into Google Spreadsheet
Stars: ✭ 51 (+240%)
Mutual labels:  spreadsheet
aws-appsync-alternative-data-sources
Exploring how AWS AppSync can utilize AWS Lambda to integrate with alternative data sources, including Amazon ElastiCache and Amazon Neptune.
Stars: ✭ 13 (-13.33%)
Mutual labels:  aws-lambda
SSR-React-Using-Serverless
SSR-React Using Serverless(aws)
Stars: ✭ 34 (+126.67%)
Mutual labels:  aws-lambda

Use Google Sheets to log your life by texting it Emojis and pulling in data from Fitbit automatically.

Screenshot

The driving philosophy behind this is finding the path of least resistance to life logging. Pull as much data as possible from other passive tracking sources, like Fitbit, automatically. Make it easy as fuck to update the spreadsheet... single-character text messages ☕️. No apps to install. Use Google Sheets because they are easy and you probably already have a Google account.

Install

Make sure you have Node 7 or later installed (it needs to support ES6). Sorry... this is kind of a pain to set up. OAuth 2 isn't much fun.

yarn install or npm install yarn global install or npm install -g to install the command line tool

Google Sheets

  1. Create a Google Sheets spreadsheet. Create a header row with column names. Make sure one of them is called "Date".
  2. Grab the spreadsheet ID and worksheet ID. Google how to find those on your own.
  3. Go to https://console.google.com and create an app. Follow instructions here to get your auth credentials.

Setup

  1. Copy sample.env to .env.
  2. Copy emoji-map.sample.json to emoji-map.json. Edit it so that the column names match the columns in your spreadsheet. Add all the columns you want. Removing columns might break things because it expects certain columns to exist for the Fitbit stuff. Sorry about that.
  3. Set up an account on Twilio. Register a phone number with them. Set it up to receive texts. Get your auth credentials and put it in the .env file.
  4. Run middleman.js on a public IP address. I recommend using Gomix.com for this - just copy and paste the code on there and update the callback URL. This will receive SMS messages from Twilio and then proxy them to server.js via a socket.io connection as JSON objects. Once you've done that, update MIDDLEMAN_URL in your .env file with the location of your middleman.js server.
  5. Set up an application on https://dev.fitbit.com with the Authorization flow. Go to http://<where ever your middleman.js script is hosted>/fitbit/auth. Grab the code that it returns and put it in your .env file as FITBIT_AUTH_CODE. Also update FITBIT_CLIENT_ID and FITBIT_CLIENT_SECRET which you can get from Fitbit.
  6. Run server.js anywhere you want. This will open a connection (via socket.io) to the middleman.js server and listen for SMS events. The middleman.js script will proxy SMS events from Twilio to the server. This allows you to run the server and develop behind a firewall or on a private network.

Sending Text Messages

Try sending a text message to the phone number you registered with Twilio... perhaps try ☕️. This should update your spreadsheet.

Command Line Use

Since you installed this package globally (-g or global), you can use the command lifebot to pull in the latest Fitbit data for today. You can specify a different day by adding a date, lifebot 2017-01-22. Or you can specify a range of dates lifebot 2017-01-01 2017-01-22. The dates don't have to be in order.

This allows you to update days retroactively. You shouldn't actually need to use this because the server will do this every day automatically at the time specified in your .env file.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].