Moment: Personal Finance Web App
A full-stack personal finance web app built with Node.js, Express, MongoDB, and React, connected to a Python FastAPI service for automatic expense sorting.
Why we built it
Moment was our six-person capstone project for the 2025 Coding Camp by DBS Foundation and Dicoding. Most budgeting apps fail because categorizing every coffee or grocery receipt by hand gets old after a few days. We wanted a web app where you can type a quick transaction note and let a machine learning model sort the spending category automatically.
What I worked on
I owned the core backend API and helped wire it up to the React dashboard:
- Built the REST API from scratch with Node.js, Express, and MongoDB.
- Set up stateless JWT authentication and route protection middleware.
- Created endpoints for daily income and expense logs, multi-account balances, and monthly budget summaries.
- Connected the Express backend to our ML team’s Python FastAPI service so raw transaction notes get classified with a predicted category and confidence score before saving to MongoDB.
- Wrote full Swagger (OpenAPI) documentation early on so the frontend and ML teammates could test endpoints without waiting on each other.
What I learned
Working in a six-person team taught me that clear API contracts matter way more than clever code. Getting the Swagger spec locked in during week one kept our React frontend and FastAPI service in sync and helped our team graduate with Distinction.