Author: Kaylee Faherty & Haotian Qian
Class: CS5610 Web Development – Northeastern University
Deployed App: https://rmd-tracker.onrender.com
Design Document: View Design Document
Narrated Demo: View Narrated Demo
RMD Tracker is a full-stack web application designed to help financial advisors manage Required Minimum Distributions (RMDs) for their clients. Once a client reaches age 73, the IRS requires a minimum annual withdrawal from their retirement accounts or they face a penalty. At small offices this process is often managed manually in shared spreadsheets, which can create inconsistencies when multiple staff members track completion differently.
RMD Tracker centralizes this workflow into a single dashboard where advisors and their staff can manage clients, track accounts across multiple custodians, calculate total RMD obligations, and monitor fulfillment status across their entire book of business. Account distribution settings carry over year to year, so advisors only need to verify and update amounts rather than re-enter everything from scratch.
- Username: demo@rmdtracker.com
- Password: password123
- Frontend: React with Hooks, React Bootstrap
- Backend: Node.js + Express
- Database: MongoDB (Native Node.js Driver)
- Authentication: Passport
- Deployment: Render
- Node.js v20.19+
- MongoDB Atlas account
- Clone the repository:
git clone https://github.com/Fahertyk-NU/rmd-tracker.git
cd rmd-tracker- Install server dependencies:
cd server
npm install- Create a
.envfile in theserverfolder:
MONGO_URI=your_mongodb_connection_string
SESSION_SECRET=your_secret_here
- Seed the database:
node seed.js- Install client dependencies:
cd ../client
npm install- Start the development servers:
In one terminal (server):
cd server
npm run devIn another terminal (client):
cd client
npm run dev-
Open http://localhost:5173 in your browser.
-
Log in using the demo credentials above.
Kaylee Faherty: Claude Sonnet (Anthropic, claude-sonnet-4-6) was used throughout this project as a learning guide and coding assistant. It was used to explain concepts, talk through architectural decisions, troubleshoot errors, and suggest approaches as I built out the Express/MongoDB backend, React frontend, and CSS. All generated code was carefully reviewed, tested, and understood before being committed. Key prompts included project planning, setting up the Express/MongoDB architecture, implementing CRUD routes, designing the RMD status logic and aggregation pipeline, and building the accounts by company workflow view. I also used it to work through accessibility improvements (color contrast, keyboard navigation, semantic HTML structure), establish a consistent design and typography system, and incorporate findings from usability testing and peer code review. I tested and verified everything myself before including it, rather than accepting suggestions outright. Domain knowledge and all financial services concepts came from my own professional experience.
Haotian Qian: Claude was used throughout this project as a learning guide and coding assistant. It was used to explain concepts, discuss design and implementation decisions, troubleshoot issues, and suggest approaches while I worked on the client CRUD functionality and usability improvements. I used it to help debug issues such as date-of-birth formatting and navigation behavior, and to think through improvements like adding clearer success feedback after editing a client. All code and suggestions were carefully reviewed, tested, and understood before being committed.