Working Browser Application

SOMA Budget Planner

A private-by-design monthly budgeting and scenario-planning application that turns editable income and expense data into clear budget status, spending pace, daily guidance, projections, and portable backups.

The work at a glance

My contribution

I defined the product behavior, designed the interface and budgeting logic, and built a functioning static web application with local persistence and offline support.

Start with the evidence

Use the live application, change the sample budget, switch months, test spending pace, then inspect the public source code.

Evidence boundary

The current release stores information in the browser only. It has no account system, cloud synchronization, bank connection, or server-side financial-data storage.

Working proof

Not a mockup. A usable application.

Monthly stateCreate separate budgets by month and copy the previous plan forward without carrying actual spending into the new month.
Local-firstBudget data is stored in browser local storage with JSON backup and restore for portability.
Installable PWAA manifest and service worker support installation and offline use after the application has been loaded.

The product problem

A monthly budget should answer more than “how much did I spend?”

Traditional budget tables show planned and actual amounts, but they often leave the user to interpret whether current spending is sustainable. SOMA adds an operating layer: how much flexible budget remains, how many days remain in the month, what daily spending level is still available, and what the month-end position could look like if the current pace continues.

The interface is deliberately editable and reversible. Categories, expense items, budget amounts, actual amounts, spending types, and months can all be changed without requiring an account or sending the data elsewhere.

Decision support

The application translates raw entries into an operating view.

Each edit recalculates the monthly position. The dashboard compares income, planned expenses, actual spending, remaining income, and planned balance, then adds calendar-aware guidance for flexible spending.

Implemented now

  • Editable income, categories, items, budgets, and actual spending
  • Fixed and flexible category classification
  • Month switching and copy-forward planning
  • Budget-versus-actual category variance
  • Overall budget-used visualization
  • Days remaining, flexible budget left, and safe daily spending
  • Projected month-end balance based on current flexible-spending pace
  • JSON backup and import, CSV history export, and print view
  • Dark mode, keyboard navigation, responsive layout, and offline support
SOMA Budget Planner · representative view
SOMASeptember budgetIncomeFixed expensesFlexible expensesBackup

Monthly position

Budget status at a glance

Net income
Current monthly plan
$4,800
Input
Flexible budget left
Budget minus actual flexible spending
$620
Available
Safe to spend daily
Remaining flexible budget ÷ days remaining
$47
Guidance
Projected month end
Income minus fixed expectation and projected flexible pace
$310
Projection

Calculation logic

Useful guidance built from inspectable rules.

The application uses deterministic calculations. There is no hidden model generating financial advice.

01

Plan

Enter monthly income and budget amounts for fixed and flexible categories.

02

Record

Add actual spending as the month progresses.

03

Compare

Calculate planned-versus-actual totals and category variance.

04

Adjust for time

Compare flexible-spending progress with the percentage of the month elapsed.

05

Project

Estimate a month-end position using fixed obligations and the current flexible-spending pace.

Architecture

Intentionally small, portable, and inspectable.

The first release avoids unnecessary infrastructure so the core budgeting behavior can be tested before adding synchronization or integrations.

Current application architectureNo backend required
HTML interfaceSemantic form controls, templates, summaries, and dialogs
JavaScript stateMonthly budgets, calculation logic, validation, import, export, and UI updates
Browser storageVersioned local data model with migration from the earlier storage format
PWA layerWeb manifest and service worker for installability and offline access

Implementation evidence

Product decisions are visible in the code.

The public repository makes the application behavior inspectable rather than asking a reviewer to rely on screenshots alone.

AreaImplemented evidenceWhy it matters
Data modelVersioned store with up to 240 month records, normalized categories and items, and migration from the earlier local formatShows state design and backward-compatible thinking
PlanningCopy-forward duplicates the prior plan with fresh identifiers while resetting actual spending to zeroPreserves a usable monthly workflow instead of copying stale actuals
Decision supportFlexible-spending pace, daily available spending, calendar progress, and projected month-end balanceTurns entries into actionable context
Input safetyNumeric amounts are normalized to nonnegative values; imported data is validated and size-limitedReduces malformed local state and unsafe assumptions
PortabilityJSON backup and restore plus CSV history exportGives the user control over local data and reduces browser lock-in
AccessibilitySemantic labels, live status announcements, keyboard movement between amount fields, responsive layouts, and print supportMakes routine use more practical across input methods and devices

Selected design decisions

Build the smallest useful system before adding infrastructure.

  • Local first: prove the budgeting workflow without requiring users to create an account or send private financial entries to a backend.
  • Separate plan from actual: copying a month carries forward structure and budget amounts but intentionally resets actual spending.
  • Make the calendar part of the calculation: spending pace is more useful when compared with how much of the month has elapsed.
  • Keep the projection explainable: month-end guidance is derived from fixed expectations and observed flexible spending, not a black-box prediction.
  • Design an exit: backup, import, CSV export, and print reduce dependence on one browser session.

What this demonstrates

I can move from an operational problem to a working tool.

SOMA complements my enterprise implementation work. The SFPUC case shows how I operate inside a large controlled environment. SOMA shows that I can independently define requirements, model the workflow, implement the logic, design the user experience, and publish software another person can actually use.

Current maturity and limits

SOMA Budget Planner is a working static web application and an applied product case study, not a banking product or personalized financial-advice service. It does not connect to financial institutions, move money, synchronize across devices, authenticate users, or store data on a server. A companion spreadsheet and optional synchronization are potential future extensions after the core interaction model is validated.