MoneyMate — Personal Finance App
Turns ~1,500 raw bank transactions into a live budget — and matches real payroll tax to the penny.
A mobile-first finance app that runs from a single dependency-free HTML file.
A Python pipeline parses bank statements and a Chase CSV export, keyword-categorizes
~1,500 transactions, detects recurring subscriptions, and reconciles the running
balance exactly. Ships with a 2026 Maryland payroll-tax engine that handles the
F-1 nonresident (FICA-exempt) case — validated to the cent against real pay stubs —
plus budgeting, savings goals, analytics, and pay-stub reconciliation.
Temp Card Tracker
Catches bad roster data before it can cause a billing error.
A full-stack app that replaces juggling multiple Google Sheets for
temporary room-access key cards. A one-way ETL pipeline cleans a messy
multi-tab roster, a reference-set classifier resolves free-text cells
(fuzzy staff matching, broken date formats, junk detection), and a
data-quality report flags bad entries before they cause billing errors.
Workout Analytics & Recommendation Engine
4,500+ rows of raw data → progression insights and real-time weight/rep targets.
An end-to-end ETL pipeline processing 4,500+ rows of strength-training
data into a relational SQLite database — surfacing progression trends,
stall detection, and volume insights across 161 sessions via 7 interactive
Plotly dashboards. A Flask REST API on Railway serves a real-time engine
that prescribes weight/rep targets using Epley's e1RM and double-progression logic.
UMBC Parking Management System
Eliminates 100% of double-booking conflicts under concurrent load.
A production-hardened relational database that automates campus parking
operations — from real-time sensor ingestion and permit enforcement to
automated citation billing. Eliminates 100% of double-booking conflicts
under concurrent load using per-spot advisory locks, and ships as a
one-command Docker stack (PostgreSQL + Streamlit + pgAdmin) that
auto-loads its schema and seed data on boot.
Demo login password: admin