A local-first personal finance application. Includes a GraphQL API for interacting with personal finance information stored in a local SQLite DB, as well as a Vue front-end app.
- Node + NPM
- Sqlite3
The app uses a local SQLite database, and connection to the database is managed using the Sequelize ORM.
To initialize the database, run the following commands to create and seed:
sqlite3 db/quan.sqlite < db/create.sql
sqlite3 db/quan.sqlite < db/seed.sql
To start the GraphQL API, run the following from the project root:
npm run api
The GraphQL schema is available at schema.js. The app uses the Apollo GraphQL server and client libraries.
When the GraphQL API is running, access the Apollo GraphQL Playground at localhost:4000/graphql
To start the Vue front-end app, run the following from the project root:
cd quan-vue
npm run serve
Alternatively, run both back-end and front-end for development simultaneously with:
npm run dev
To import transaction data into the app, it's easiest to use the Import functionality available on the Transactions page in the Vue front-end app. The import file should be in CSV format with the header (column data) as first row and transactions starging in the second row.
Planned features include:
- Plaid integration for automatically importing transactions
- A Summary view showing monthly and YTD summary of total spending, including per category spending.
- A rudimentary Venmo scraper for importing Venmo data
- UI improvements
- Continue investing building Vue app as Tauri desktop application
- Explore building app in Flutter