Expense Tracker Demo

Next.js - Prisma - PostgreSQL - React

Built a public full-stack finance tracker demo to showcase backend API design, relational data modeling, transaction CRUD, account transfers, and ledger-based balance analytics using synthetic data.

Project Positioning

Public portfolio-ready full-stack demo

Built as a sanitized showcase version of a personal finance application, focusing on backend capability and safe public presentation.

CRUD API Account Transfer Prisma Schema Synthetic Data

What The App Demonstrates

Full-stack scope with a clean public data model

Core Flows 3

Income, expense, and transfer transactions

Main Backend Areas 4

Schema, API, validation, and overview logic

Primary Routes 7

Accounts, categories, overview, and transaction endpoints

Portfolio Goal Full-Stack

Show frontend plus backend delivery in one project

Problem Framing

Portfolio-safe product adaptation

The original idea came from a personal finance tracking use case, but the public repository needed to avoid exposing private financial behavior. I redesigned the project into a sanitized demo with synthetic accounts, categories, and transactions.

Engineering Goal

Demonstrate backend ownership

The project was intentionally scoped to prove full-stack capability through API routes, validation rules, database structure, and ledger-based calculations rather than through static UI alone.

Backend Design Highlights

What makes this more than a frontend showcase

Area Implementation Focus Why It Matters
Schema Design Accounts, categories, transactions, and app settings in Prisma Shows relational modeling and clear entity boundaries
Transaction API CRUD routes for income, expense, and transfer operations Shows endpoint design and structured payload handling
Validation Logic Server-side checks for account validity, category matching, and transfer rules Shows business-rule ownership on the backend
Overview Calculation Balances and dashboard metrics derived from a transaction ledger Shows analytical logic beyond basic CRUD

Ledger Logic

Balances are derived from transaction history, so transfers move money between accounts without changing total funds.

Public Demo Safety

Dummy data and generic account structures make the repo safe to share while still preserving technical depth.

Developer Experience

README onboarding explains Prisma, PostgreSQL setup, environment variables, schema sync, and demo seeding.

Project Outcome

  • Converted a privacy-sensitive personal app idea into a publishable repository for portfolio use.
  • Showed full-stack capability through Prisma schema design, API route implementation, and frontend integration.
  • Created a recruiter-friendly project that demonstrates backend reasoning, not only interface presentation.