Skip to content
Emin Akif Erzurumlu
All work

FinTrack

A single-file budget planner. No libraries at all — I wrote the chart layer myself with the Canvas 2D API.

Role
Design and development
Scope
Solo
Year
2026
The problem

Most personal budgeting apps ask you either to create an account or to send your spending data to the cloud — yet a budget is among the most private data a person has. The question was: how small can a budgeting tool be if it sends data nowhere and needs no installation?

Approach
  • I wrote the whole app in a single HTML file: 639 lines, about 33 KB, no build step. You double-click it and it runs.
  • Data stays in the browser’s localStorage and never reaches a server. The one outbound request is for live exchange rates.
  • I drew the donut chart with Canvas 2D rather than Chart.js: slices computed as angles through ctx.arc(), then hollowed into a ring with a second circle.
  • For spending warnings I wrote a rule-based engine — rent-to-income ratio, savings percentage, concentration in discretionary categories.
My part in this

Entirely mine, from design to code. Written for a Financial Technologies course.

Outcome

Income and expense tracking, category analysis, recurring subscriptions, savings goals in four units (lira, dollar, euro, gram gold), CSV export and a dark theme — all with zero dependencies.

Known limitation

The app’s "Financial Intelligence Assistant" is not an AI model but an engine of hand-written rules. The name is ambitious; what it does is threshold checking.

What I learned

Installing Chart.js takes three minutes; drawing the ring yourself with trigonometry takes an afternoon. But afterwards you know what a charting library actually does, where it slows down and what it hides. Adding a dependency is sometimes outsourcing your own thinking.

Built with

HTML · CSS · JavaScript · Canvas 2D API · localStorage