Back to work

Private application

One workspace for accounts, spending, savings goals and crypto holdings. A private personal-finance application, presented through a real local walkthrough with synthetic data.

Private source. Public walkthrough.

  1. 01 / INPUTAccounts and statements
  2. 02 / PROCESSReview and organize
  3. 03 / OUTPUTAnalyze and plan
Explore the engineering

The problem

Balances, bank statements, recurring spending and crypto holdings are often scattered across different tools. Finance Core brings them into one workspace so that importing a statement, reviewing a transaction and planning a savings goal form a connected workflow.

Watch the demo

FINANCE CORE / LOCAL DEMO
191.64-second dark-mode walkthrough of the real local application with synthetic data, a continuously visible cursor, typing sounds and a new original score. The brief file-selection tray is explicitly an editorial reconstruction, not an operating-system recording; the subsequent CSV import is real. No connected banks, live prices or external AI. Play on demand; an edited demonstration, not a performance benchmark.
Download this video

On mobile, use fullscreen and turn your phone sideways to read the application in detail.

  1. Change the month and open a day's spending, scrolling through its individual transactions.
  2. Explore account balances and individual account details.
  3. Understand the bank connector's requirements, open the real format/account options and select a synthetic CSV.
  4. Confirm two transactions and preview the same file again to see duplicate prevention.
  5. Review annual analytics, update a savings goal and create a budget.
  6. Calculate an illustrative savings scenario and pause/reactivate a local subscription record, without changing a provider contract.
  7. Save genuine local context for the advisor; external AI remains explicitly disabled.
  8. Inspect local crypto holdings and type an EUR snapshot for preview, without confirming an import, connecting a wallet or executing trades.

Technical decisions

Separate the interface from financial data

A React / TypeScript client consumes a Python / FastAPI API. PostgreSQL is the application database; the public walkthrough uses an isolated SQLite demo instead. Account balances and internal transfers are kept separate from income and spending.

Preview before importing

Statement imports support multiple bank formats and a generic CSV. Preview, duplicate detection and reversible import batches make changes inspectable before and after confirmation. The recording uses fictional statements, not personal banking data.

Connect banks with explicit consent

A GoCardless PSD2 read-only connector implements consent, account mapping, synchronization and revocation. Automatic bank data retrieval requires a configured provider and the user's authorization. The local demo has no bank connection; its import walkthrough uses CSV instead.

Show crypto without pretending to trade

Holdings can be entered manually or imported as snapshots. CoinMarketCap supplies market data when configured; it is not a wallet or exchange connector. Without a provider, quantities and recorded costs remain visible while market value and profit/loss remain unavailable.

Connect daily spending with planning

The monthly calendar opens each day's transactions and totals. Budgets, recurring subscriptions and savings goals complement those records; the simulator explores changes without moving money or modifying an external subscription.

Give the advisor explicit context

The advisor supports local notes that can be added, reviewed and deleted. The demonstration shows this genuine memory workflow. External AI is disabled in the isolated environment, so no generated advice or invented assistant response is presented.

Limits and data handling

  • Both source repositories and the deployed application remain private. Only this case study and a sanitized demonstration are public.
  • No live or sandbox bank consent was completed for this walkthrough. External bank, market-data and AI providers are disabled; no money or crypto is moved.
  • Crypto holdings are tracked separately from the account-based net-worth total. A recorded purchase cost is not a current market valuation.
  • Planning and simulations are estimates, not financial advice. Local functional tests do not certify production PostgreSQL migrations or external provider reliability.

A verifiable result

A working private application with connected workflows for accounts, transactions, import review, analytics, budgets, subscriptions, savings goals and crypto holdings. The public demonstration shows real interactions against an isolated local database, not mocked success screens.

How to check it

  1. Run the application against a dedicated synthetic database, with external providers disabled and no production configuration loaded.
  2. Check import preview, confirmation, duplicate prevention and undo; ensure internal transfers do not inflate income or spending.
  3. Review account analytics, savings scenarios and crypto quantities, keeping unavailable provider features explicitly labelled.

Stack