Skip to main content
StackRoleYearStatus
Vue.js 3, TypeScript, Chart.js, Tailwind CSSFrontend Developer2023Live
Personal Finance Tracker Architecture Diagram - Hero Preview by Ancel Ajanga.

Personal Finance Tracker

A modern web application for tracking personal income and expenses with visual analytics

Personal Finance Tracker — A modern web application for tracking personal income and expenses with visual analytics is a technical case study on ancel.co.ke documenting architecture, trade-offs, and outcomes. To turn raw numbers into clear spending insights, I built a client-side Vue 3 app that keeps calculations and UI in sync and degrades gracefully when storage or rendering fails. Ancel Ajanga wrote this case study from hands-on delivery experience in Kenya.

Written by Ancel AjangaSoftware Engineer at Maxson Programming Limited
Frontend Developer
2 months (2023)
Live
Vue.js 3
TypeScript
Chart.js
Tailwind CSS
View full tech stack

A creative frontend experiment exploring modern UI patterns and data visualization techniques. This project demonstrates Vue 3's Composition API, reactive state management, and interactive charting capabilities for personal finance tracking.

The Problem

People struggle to track spending habits and understand where their money goes. Traditional spreadsheets are cumbersome and don't provide visual insights. This project explores how modern frontend frameworks can create intuitive, visually engaging financial tracking experiences.

To turn raw numbers into clear spending insights, I built a client-side Vue 3 app that keeps calculations and UI in sync and degrades gracefully when storage or rendering fails.

The Solution

I built a Vue 3 application with Chart.js for data visualization, using the Composition API for logic reuse and Vue's reactivity system for real-time financial calculations. The project demonstrates modern UI patterns, smooth animations, and responsive design principles.

Key Technical Terms

  • Composition API:In this tracker, reusable logic (totals, category sums) lives in composables so the same calculations drive both the list and the charts; that supports the goal of a single source of truth and a maintainable codebase.
  • Reactive state:Income and expenses are reactive so adding or editing a transaction immediately updates totals and pie charts without manual refresh; that keeps the experience instant and aligned with the project's focus on clarity.
  • Client-side persistence:Data is stored in localStorage so the app works offline and across sessions; for this project that avoids a backend while making loss of data (e.g. cleared storage) a known failure mode we handle with clear UX.

The Impact

This creative experiment showcases modern frontend development practices, demonstrating Vue 3's capabilities for building interactive, data-driven applications. Users can track spending patterns with visual feedback, exploring how modern UI patterns enhance financial tracking experiences.

95+

Lighthouse performance score

Outcomes

  • Clean, intuitive user interface
  • Real-time expense tracking
  • Visual analytics for spending patterns
  • Mobile-responsive design

Failure Modes & Resilience

LocalStorage full or unavailable: the app checks for quota and write errors and shows a clear message so users know data may not persist. Chart render failure: Chart.js is wrapped so a broken config or missing data does not crash the page; we fall back to a simple table or message. Invalid or missing input: form validation and reactive defaults prevent NaN or empty totals; the UI stays consistent.

Outcome & Future Potential

This creative experiment showcases modern frontend development practices, demonstrating Vue 3's capabilities for building interactive, data-driven applications. Users can track spending patterns with visual feedback, exploring how modern UI patterns enhance financial tracking experiences.

95+

Performance

Lighthouse performance score

Project Gallery

Personal Finance Tracker Architecture Diagram - Gallery Image 1 by Ancel Ajanga.