Pennysense Tracker

A responsive expense tracking web app for individuals who want a fast and mobile-friendly way to log and review personal spending. Separate flows for desktop and mobile.

React (Vite)React RouterExpress.jsNode.jsMongoDB AtlasRender

Context

  • Full-stack dev — UI, form logic, routing, backend API, and MongoDB integration
  • Timeline: ~4 weeks (2025)
  • Team: Solo
  • React (Vite)
  • React Router
  • Express.js
  • Node.js
  • MongoDB Atlas
  • Render

Problem → Goals

Problem

  • People struggle to manage expenses across devices in a clean, intuitive UI.
  • Many trackers lack tailored mobile interactions or structured previews.

Goals

  • Fast add/view/update expense flows on all screen sizes.
  • Clear separation between form, history, and preview.
  • Mobile-first routing UX with persistent filters.

Solution

Pennysense uses a Vite-powered React frontend with mobile routing logic (React Router) and dynamic filtering. The Express backend exposes REST APIs and persists data to MongoDB Atlas. Deployed with Vercel (frontend) and Render (backend).

Highlights

  • Expense entry form with dynamic rows (date, category, amount, notes).
  • Desktop layout: inline form + history + preview panel.
  • Mobile layout: routed pages for form and preview.
  • Month/year filtering with controlled updates.
  • Toast notifications for feedback.
  • Express API + MongoDB Atlas persistence.

Screenshots

Desktop dashboard layout
Form, history, and preview side-by-side
Add expense on mobile
Add expense flow — mobile form
Expense preview on mobile
Preview view after selecting an item
Expense history panel
Filtered history showing monthly results

Results & Impact

  • Instant form responsiveness across screen sizes.
  • Smooth navigation without data loss after routing.
  • Fast Vite builds with clean separation of concerns.
  • Stable multi-device UX for logging and reviewing expenses.

What I’d improve next

  • Backend validation + stronger client-side schemas.
  • Edit/delete expenses and bulk actions.
  • Export filtered history to CSV/PDF.
  • User accounts with secure authentication.