CB
Back to selected work

Full-stack personal product

Functional application · Beta

TallyNorth: multi-currency financial planning and analytics

A full-stack platform integrating accounts, investments, and card transactions to consolidate net worth and project monthly cash flows.

  • Next.js
  • TypeScript
  • FastAPI
  • PostgreSQL

Context

Day-to-day personal finance management is often limited to tracking past expenses. However, to make real decisions, the user needs to view future liquidity and plan financed purchases before they hit their bank accounts.

Problem

The technical challenge was representing credit card purchases based on closing and due dates, projecting cash flow by calculating recurrences on demand, and consolidating assets across different currencies without direct exchange rates.

My responsibility

I designed and built the application end-to-end: from database schema and backend domain rules to the API client and analytics views in the interface.

Constraints

  • Model credit card billing cycles and due dates without generating invalid dates or timeline gaps
  • Enforce strict record isolation between users across all API endpoints
  • Process bulk imports of transactions while enforcing strict validation and consistency

Key decisions

  • Model each card purchase and its installments as independent entities to individually track their due dates and payments, while future recurrences are calculated on demand
  • Isolate currency conversion, cash flow projection, and import logic from the web framework, allowing independent maintenance and testing
  • Implement multi-tenant data isolation at the backend level so that each request operates strictly on the authenticated user's records

Implementation

  • Structured the FastAPI REST API with Pydantic schemas separating data input from serialized outputs
  • Built the interactive web interface with Next.js, React, and TypeScript, managing application state and optimizing data fetching
  • Integrated Recharts for the interactive dashboard and Yahoo Finance API for scheduled market rate synchronization

Quality and safeguards

  • Ensure database transactional integrity in PostgreSQL to write movements, cards, and budgets atomically and avoid orphaned states
  • Protect the session token using signed cookies (HttpOnly, Secure, SameSite) against unauthorized access and common web vulnerabilities
  • Versioned database migrations with Alembic and reproducible containerized environments using Docker Compose

Verified status and outcome

  • Fully functional beta application deployed to production with a publicly accessible code repository
  • Bilingual dashboard integration showing monthly cash flow projections, savings goal progress, and investment returns
  • Working transaction entry system supporting manual inputs, bulk CSV imports, and automated statement scheduling

Trade-offs and work in progress

  • Bulk imports depend on structured CSVs; processing raw statements is deferred to an upcoming AI module with human-in-the-loop validation
  • On-demand recurrence expansion saves database storage but requires more compute power for large date range queries
  • Prioritized transactional integrity and strict multi-tenant isolation over rapid prototyping of additional dashboard widgets