Developments · projects · experiments

Snapshot

A gateway to what I am building.

This page is an honest snapshot: live links, current focus, and where to see a fuller picture of shipped work.

On the expense tracker, focus is on expense splitting so people can share and split costs fairly. On the Java ETL service, focus is a categorization engine for consumed transactions before they are handed off to the app. Keycloak still anchors authentication and authorization across services.

In the workshop

What is actively moving—rough completion against the scope you have in mind right now.

This week

Shipping shared expense splits in the tracker while the Java ETL path gains a real categorization engine for statement lines—so imports land with sensible categories before the expense app pulls them in. Keycloak continues to line up roles and tokens as both surfaces grow.

Expense tracker

In active development Expense splitting

expenses.antwi.co.za

Progress 70%

Right now: expense splitting—so users can share expenses, define who owes what, and keep shared costs transparent alongside the rest of the product.

Import & ETL

In active development Java service

Statements → categorize → expense app

Progress 75%

The Java service consumes transaction statements, runs validation and cleanup, then drives a categorization engine so each line gets a sensible category. Categorized transactions are staged for the expense tracker to import when the app is ready—same reliability story: retries, idempotency, and clear failures.

  • Sources — bank exports and statement files you already have.
  • Categorization — engine assigns categories to each consumed transaction line before hand-off.
  • Hand-off — prepared data is imported later by the expense tracker app, not silently coupled.

Identity & access

Keycloak OIDC / OAuth2

Centralizing authorization and authentication so APIs and apps share one source of truth for users, roles, and clients—less bespoke auth glue as the stack grows.

  • Realms — boundary for users, sessions, and admin separation.
  • Clients — each app or service registers for tokens and callbacks.
  • Roles — least-privilege access mapped into APIs and UIs.

Achievements & shipped work

The portfolio site is the place for projects, outcomes, and depth. This gateway stays lightweight on purpose.

Browse portfolio.antwi.co.za

On the roadmap

Concrete next steps tied to the work above

Elsewhere

Verified fronts and a static reference co-deployed with this page.