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
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.