All projects

Kori

A personal finance app that categorises transactions automatically.

Technologies
Vue 3, TypeScript, Vite, Dexie (IndexedDB), Pinia, Tailwind CSS 4, Workbox, Python 3.12, FastAPI, SQLAlchemy 2, PostgreSQL 16, Alembic, scikit-learn

See it live

What I built

An installable web app (PWA) that reads and writes to a local database. An API handles synced backups, accounts and notifications. A machine learning service categorises transactions automatically.

Technical choices

The app runs on Vue 3 and TypeScript, with Dexie on top of IndexedDB for the local database, Pinia for state and Workbox for offline support. The API is written in Python 3.12 with FastAPI, SQLAlchemy 2 and PostgreSQL 16, with migrations handled by Alembic. Categorisation relies on scikit-learn: TF-IDF vectorisation of transaction labels and a logistic regression, served by FastAPI. The repository also holds the brand guidelines, mockups, technical decisions and deployment guide.

The outcome

The app is live at kori.bykelani.dev.