Mike Maeda
Back to projects

Apr 2026

Expense Tracker

PythonFlaskJavaScriptSQLiteREST APIsOAuthVercel
Problem

Personal budgeting tools are either bloated or insecure. I built a focused, deployable platform with real authentication, budget alerts, and a relational data model.

What I built

A full-stack personal expense tracker with a Python/Flask backend and a JavaScript frontend, built and shipped entirely on my own. It supports Google OAuth with a graceful fallback to username/password login, budget tracking with automated email alerts, CSV export, and over 20 REST API endpoints backed by a normalized SQLite database. It's deployed live on Vercel. One tradeoff I made knowingly: Vercel's serverless environment means SQLite storage is temporary, which is fine for a demo but not for a real long-lived app, a production version would need to move to something like Postgres. I'd rather state that limitation clearly than pretend it isn't there.

Impact
  • Implemented Google OAuth, fallback login, budget tracking, email alerts, and CSV export.
  • Built 20+ REST endpoints backed by a normalized SQLite database.
  • Deployed live while clearly documenting the serverless SQLite tradeoff.