Thanks to visit codestin.com
Credit goes to github.com

Skip to content
/ joxi Public

An automatic personal finance tracker for your banks and crypto. All your finance data in Notion.

Notifications You must be signed in to change notification settings

onmax/joxi

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

18 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Joxi

An automatic personal finance tracker for your banks and crypto. All your finance data in Notion. No more manual data entry.

Features

  • 🤖 Automatic - Joxi runs every day and automatically updates your Notion database with your transactions.
  • 📈 Data in Notion - Joxi creates a well-structured database Notion with all your transactions and accounts.
  • 📊 Customizable - You can customize the database structure and the data that is imported.
  • 🏦 Multi-bank - Joxi supports multiple banks and crypto wallets.
  • 🧑‍💻 No code - Joxi is a no-code solution. You don't need to write any code to use it.
  • 🛡️ No custom servers - You just need to configure a GitHub Action.
  • 📦 Open source - Joxi is open source and you can contribute to it.
  • 📚 Free - Joxi is free and you can use it for free.

How does it work?

  1. You grant access to:
    1. Your banks: A GitHub Secret storing your's Nordigen's key, which will allow Joxi to communicate with your banks(through Nordigen).
    2. Your crypto wallets: A GitHub Secret storing your's Coinbase's key, which will allow Joxi to communicate with your crypto wallets in Coinbase.
    3. Your Notion database: A GitHub Secret storing your's Notion API key, which will allow Joxi to write the data to your database.
  2. Joxi runs every day using a GitHub Action, and fetches your latest transactions from your banks and crypto wallets using Nordigen and Coinbase APIs.
  3. Joxi writes the data to your Notion database.
  4. You can now use Notion to analyze your transactions and create reports.

No one will have access to your data. You can always stop the service at any time.

GitHub Action

Joxi uses a GitHub Action to run every day and fetch the data. The action is triggered by a cron job, which runs every day at 12:07 AM UTC. You can change this behavior in the source code of the GitHub Action.

Requirements

  1. A GitHub account.
  2. An OB Nordigen account.
  3. A Notion account.
  4. A bank account or wallet to fetch the data from. Duh.

Setup

Before you start, please fork this repository.

  1. Setup in Nordigen
  2. Setup in Coinbase
  3. Setup in Notion

Setup in Nordigen

Create the secrets
  1. Create an account in Nordigen OB.

  2. Go to User secrets and click in New Secret Key. Add a name and allow all the IPs.

  3. Create two New repository secret in GitHub:

    • Name: NORDIGEN_KEY. Secret: ID token from step 2.
    • Name: NORDIGEN_SECRET. Secret: Key token from step 2.
Creating new connection to a bank.

Learn more about Nordigen's API.


You have to do this steps every time you want to connect to a new bank.

This guide will show you how to create an agreement with a bank using Nordigen's UI. You are free to use any other method to create the agreements.

  1. Search for your bank in Nordigen's UI and copy the institution_id.

If you don't find your bank, make sure to also search with payments_enabled set to true.

  1. This step is optional[^1] Create a new agreement using Nordigen's UI:

    • Make sure to allow balances, details and transactions in access_scope for better results.
    • Change the institution_id with the one you copied in step 1.
  2. Build the link. Create a new requisitions using Nordigen's UI:

    • Change the institution_id with the one you copied in step 1.
    • If you have create an agreement manually, make siure to change agreement.
    • Redirect URL can be a dummy one like https://example.com.

[^1] Use this step only if you want to specify other than default end user agreement terms: 90 days of transaction history, 90 days of account access period and full scope of information (details, balances, transactions). If no custom end user agreement is created, default terms will be applied.

Setup in Coinbase

TODO

Setup in Notion

  1. Go to Notion's Integration page and create a new integration. Make sure to select: Read content, Update content and Insert content. In User Capabilities, you can select No user information as no user information will be needed.

  2. Copy the Integration Token.

  3. Create a New repository secret in GitHub:

    • Name: NOTION_TOKEN
    • Value: Integration Token from step 3.
  4. Duplicate the Joxi template and add it to your Notion workspace.

  5. Once you have duplicated the template, click on More options > Add connections > Select your connection you created in step 2.

Tech stack

Roadmap

  • Publish the code to Deno's registry and move the GitHub Action to a separate repository.
  • Improve Notion Template.
  • Add support for Categorization.
  • Add support for Kucoin.

About

An automatic personal finance tracker for your banks and crypto. All your finance data in Notion.

Topics

Resources

Stars

Watchers

Forks

Packages

No packages published