Skip to content
This repository has been archived by the owner. It is now read-only.
Switch branches/tags

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time

Trello Budget

Quickly insert transactions in your budget spreadsheet by creating a Trello card.


Check out the YouTube playlist for a complete walkthrough on building this project.

Installation & Configuration

Generate Auth Token for Spreadsheets

  1. Create a new Firebase project called budget.
  2. pip3 install --upgrade google-api-python-client oauth2client
  3. Follow quickstart guide step 1 to enable the Google Sheets API and download credentials for your Firebase budget project.
  4. Copy the credentials.json file in project directory and run the following to generate token.json:

Set Up the Firebase CLI

  1. Install Node.js & npm
  2. npm install firebase-functions@latest firebase-admin@latest --save
  3. sudo npm install -g firebase-tools

Initialize Firebase SDK for Cloud Functions

  1. Run firebase login to authenticate the firebase tool.
  2. Make sure that your Firebase project name & ID are correctly configured in .firebaserc:
        "projects": {
            "budget": "<project-ID>"
  • Run npm install from the functions directory.

Create a Trello Webhook

  1. Create a new board and 12 lists inside it for each month (Jan, Feb, Mar, ...)
  2. Set the following fields in & run it to create a Trello webhook for your budget board:
    • APIToken
    • APIKey
    • CallbackURL
    • ModelID


  • Create 12 monthly budget spreadsheets to keep track of each month and take note of corresponding spreadsheet IDs.
  • Create a new collection called config in your Cloud Firestore and create a document called spreadsheet in it.
  • Add 12 fields inside the spreadsheet document for each spreadsheet ID as follows: Spreadsheet IDs
  • Set your username, password & trello secret in your environment configuration:
    # set admin username & password
    firebase functions:config:set admin.username="utku" admin.password="ilikebananas"
    # set trello secret
    firebase functions:config:set trello.secret="<YOUR_TRELLO_SECRET>"
  • Also create an .runtimeconfig.json file inside functions directory and set the same username & password in it as well:
        "admin": {
            "username": "utku",
            "password": "ilikebananas"
  • Finally make sure to set LOCAL_PORT correctly in while serving functions locally.

Serve Locally or Deploy to Cloud

Serve functions locally without deploying functions to cloud:

# default port is 5000
sudo firebase serve --only functions --port=5123

Deploy functions to cloud:

firebase deploy --only functions

Invoke Functions

Local Endpoint

# set auth token
python3 local setToken token.json

# make a transaction request
python3 local transaction trello.json

Remote Endpoint

# set auth token
python3 remote setToken token.json

# make a transaction request
python3 remote transaction trello.json