work

case study

MyBudgetory

A personal finance tracker with monthly analytics, budgets and debt reminders

Solo — design & full-stack · May 2025-Current · personal

overview

MyBudgetory is a personal finance app for logging income and expenses, setting category budgets, tracking recurring payments and money lent or owed, and seeing where the month went. I built it with Next.js, MongoDB and custom JWT auth, added AI quick-logging and monthly advice through Groq, and wrapped it as an Android app with Capacitor.

problem

Most of my spending is small, frequent and informal: UPI payments, cash, splitting a bill, lending a friend money. Spreadsheets and bank apps don't capture that well, and the part that slips most often is money other people owe you, because asking for it is awkward.

I wanted one place to log a transaction in a few seconds, see the month clearly, and send a polite reminder for a debt without writing the message myself.

approach

  1. 01I built the backend in Next.js over MongoDB (Mongoose models for transactions, budget goals, recurring transactions, debts, assets and net worth), with custom JWT auth and bcrypt-hashed passwords. Transaction fields are encrypted with AES-256-CBC on the server before they are stored.
  2. 02The dashboard shows monthly income, expenses, savings rate and insights such as spending velocity and a what-if simulator, and a calendar page colours each day by spend in four tiers. Charts use Highcharts, Chart.js and Recharts.
  3. 03For debts and loans, a WhatsApp button builds a wa.me link with a prefilled reminder that includes the person's name, the remaining amount in rupees and the reason, so sending a nudge is one tap. The bill-split page does the same per participant using their phone number.
  4. 04Quick Log sends a short typed or spoken note to Groq and turns it into structured transactions or loans with a title, amount, category, type, date and payment mode. A separate prompt writes a month-end review with concrete goals from last month's totals.
  5. 05Transactions made offline go into a localStorage queue and sync automatically when the connection comes back, which matters for the Capacitor Android shell that loads the deployed site.

features

Monthly analytics

Income, expenses, savings rate, category breakdowns, trend lines and a spend heat-map calendar.

Budget goals

Per-category monthly limits with a gauge that moves from green to red as you approach the cap.

WhatsApp debt nudges

One tap opens WhatsApp with a prefilled reminder for money lent or owed.

AI Quick Log

Type or speak a note and it becomes structured transactions or loans.

Recurring payments

Track subscriptions, rent, salary and EMIs, log them on demand, and pause without deleting.

Export and offline sync

Export or import transactions as JSON, and log offline with automatic sync later.

challenges

Reminders without a messaging backend

Sending WhatsApp messages through an API needs a business account and templates. I used wa.me deep links with URL-encoded prefilled text instead, so the user sends the message from their own WhatsApp and nothing extra runs on the server.

Turning free text into records

AI output has to become valid transactions. The Quick Log prompt restricts categories to the app's own list, and the server caps amounts and input length before anything is saved.

outcome

MyBudgetory is live at mybudgetory.justtayyabkhan.com (mybudgetory.vercel.app redirects there) and is available as an Android app built from the same deployment.

stack

Next.jsTypeScriptReactMongoDB AtlasMongooseCustom JWT (jsonwebtoken + bcryptjs)Tailwind CSSFramer MotionHighchartsChart.jsRechartsGroqCapacitor (Android)

contact

Have something worth building?

Open to freelance. Fastest response on WhatsApp ↗ — usually within the hour.

tayyabkhangk4734@gmail.com

next project

TrackR