FinTrack is a full-stack (MERN ecosystem) personal finance application built to help users seamlessly monitor their financial health. From checking macro budgets using the golden budgeting rule to deep-diving into granular transaction statements, FinTrack simplifies wealth management with modern UX principles and robust server-side security.
- Token-Based Security: Fully integrated JWT (JSON Web Tokens) encryption handles secure account provisioning and client verification.
- Protected Route Boundaries: Global navigation filters check for local authorizations, protecting inner view dashboards from unauthorized endpoints.
- Seamless Exits: Single-click logic clears state data tokens instantly, ensuring clean desktop and mobile application logouts.
- Macro Metric Tiles: Instantly query cumulative statistics for Total Income, Total Expenses, and Net Balance margins.
- Smart Month-to-Month Rollover Engine: Automatically checks chronological transitions on a user's first login of a new month. If a net positive balance remains from the preceding month, an interactive modal triggers to help users strategically redeploy those leftover savings.
- Dynamic 50-30-20 Budget Tracker: Live tracking automatically measures categorical distributions against the golden rules of budgeting (50% Needs, 30% Wants, 20% Savings). Integrates directly with the rollover engine to dynamically modify base targets with extra allocated funds without artificially bloating actual income metrics.
- Predictive Expense Forecasting Banner: Outfitted with an automated processing layer that analyzes historical transaction records. It utilizes a 3-month moving average algorithm to project upcoming baseline expenses into a clean, modern UI dashboard banner.
- Visual Spending Categorization: Clean, color-coded donut graphs illustrate active resource distribution for fast overview analysis.
- About Us Page: A dedicated credits section highlighting the project architecture and team contributions.
- Smart Query Engine: Search transaction logs instantly by descriptor strings, or segment entries using relational category types and specific date range guidelines.
- Automated Toolsets: Advanced support integrations built for handling document receipt parsing via AI Scanning alongside transactional bulk spreadsheet Import/Export workflows.
| Layer | Component | Description |
|---|---|---|
| Frontend | React.js (v18+) | State-driven user interface architecture |
| React Router DOM | Declarative client-side routing and gatekeeping closures | |
| Tailwind CSS | Utility-first styling Engine for responsive layouts | |
| React Icons | Consistent semantic icon interfaces | |
| Backend | Node.js & Express.js | Event-driven structural API processing environment |
| Database | MongoDB Atlas | Distributed cloud-hosted document database schemas |
| Security | JSON Web Tokens (JWT) | Stateless secure payload exchange protocols |
| Bcrypt.js | Cryptographic hashing for local database authentication keys |
- Manan Joshi — Lead Developer & Architect (Core Maintainer)
- Designed the system architecture, built the React frontend, developed the Node/Express APIs, and maintained the entire project codebase.
- Vanshika Monga — Project Contributor
- Assisted with project documentation, presentation structuring, and system testing.
- Sandeep Singh — Project Contributor
- Contributed to UI/UX conceptualization and requirement gathering.
- Mayank Sharma — Project Contributor
- Contributed in the project documentation and presented crafty ideas.
Finance_Management-Minor-Project/
├── backend/
│ ├── models/ # Mongoose Schemas (User, Transaction, Goal)
│ ├── routes/ # Express API Endpoints (Auth, Ledger)
│ ├── middleware/ # JWT Validation Security layers
│ ├── .env # LOCAL SEED SECRETS (Excluded from Git)
│ └── server.js # Core API Bootstrapper script
├── src/ # Front-End Application layers
│ ├── components/ # Reusable Layout elements (Navbar, UI Blocks)
│ ├── pages/ # View Route Panels (Dashboard, History, Login)
│ ├── App.js # Core Router and Context Provisioning
│ └── index.js # DOM root compilation entry point
├── .gitignore # File shield array configurations
└── README.md # Repository documentation index
Follow these precise sequential routines to replicate and execute this ecosystem seamlessly across varying system terminals:
Open your terminal and run the following commands to copy the project to your local machine and step inside the folder:
git clone [https://github.com/Manan-Joshi750/Finance_Management-Minor-Project.git](https://github.com/Manan-Joshi750/Finance_Management-Minor-Project.git)
cd Finance_Management-Minor-ProjectOpen an active shell window tracking the server subsystem root:
cd backend
npm installCreate a new file explicitly labeled .env directly within the backend/ directory path and anchor your local environmental keys inside it:
MONGO_URI=mongodb+srv://<your_username>:<your_copied_atlas_password>@cluster0.tai2ci5.mongodb.net/fintrack?retryWrites=true&w=majority
PORT=5000
JWT_SECRET=your_custom_cryptographic_signing_key_stringFire up the active database processing engine thread:
npm run dev(Or fallback to npm start if nodemon tooling distributions aren't mapped locally inside the dependencies collection).
Spawn a completely separate parallel shell instance running natively out of the fundamental source root:
npm install
npm startThe workspace automation scripts will execute initialization protocols and instantiate your default system browser viewport directed straight to your frontend development port: http://localhost:3000.
This repository complies with precise environment asset separation logic rules. Core application secrets are dynamically extracted from environment runtimes, guaranteeing zero cloud exposure vectors for underlying infrastructure layers.
Database Whitelists: Ensure current remote network ISP endpoints are appropriately whitelisted within the MongoDB Atlas Network Administration panel.
Secret Management: If an environment signature leak ever occurs within historical commit tracking points, actively drop database user references instantly inside MongoDB Atlas management consoles to revoke the access vector immediately.