Skip to content

Repository files navigation

GetMoneyPlanner Logo

GetMoneyPlanner

Your personal financial command center — built for the modern web.

Next.jsTypeScriptMongoDBDeployed on VercelLicense: Source-Available

🌐 Live Demo · 🐛 Report Bug · ✨ Request Feature


📖 Overview

GetMoneyPlanner is a production-grade, full-stack personal finance management application. It lets users track income and expenses, set and monitor financial goals, manage monthly budgets, and gain insights through rich data visualizations — all secured with enterprise-grade authentication including TOTP-based 2FA.

Built with a focus on real-world usability, security, and performance.

⚠️This is NOT open-source software. The source code is available for viewing and learning purposes only. See the License section for details.


📸 Screenshots

DashboardTransactions
DashboardTransactions
GoalsProfile
GoalsProfile

✨ Features

💰 Financial Management

  • Transaction Tracking — Log income and expenses with categories, notes, and date filters
  • Budget Management — Set monthly spending limits and get real-time usage alerts
  • Financial Goals — Create savings goals with progress tracking and milestone notifications
  • Multi-currency Support — USD, EUR, GBP, INR, BDT, and more

📊 Dashboard & Analytics

  • Interactive Charts — Bar, donut, and line charts powered by Recharts
  • Income vs Expense Overview — Monthly and yearly breakdowns
  • PDF Export — Export transaction history and reports via jsPDF
  • Excel Export — Download spreadsheets using SheetJS

🔐 Authentication & Security

  • Credentials Auth — Secure email/password login with bcrypt hashing
  • OAuth — Sign in with Google or GitHub via NextAuth.js
  • TOTP 2FA — Time-based One-Time Password using Speakeasy & QR codes
  • Active Session Management — View and revoke sessions by device and location
  • Password Reset — Secure email-based reset flow with time-limited tokens

📧 Email Notifications

  • Transaction Alerts — Instant email on new transactions
  • Budget Alerts — Notified when nearing or exceeding budget limits
  • Goal Milestones — Emails at 25%, 50%, 75%, and 100% goal completion
  • Security Alerts — Unusual activity and new session notifications
  • Customizable Preferences — Toggle each notification type individually

🎨 UI/UX

  • Dark / Light Mode — System-aware theme with smooth transitions
  • Fully Responsive — Mobile-first design, optimized for all screen sizes
  • Framer Motion Animations — Page transitions, stagger effects, micro-interactions
  • Password Strength Meter — Real-time visual feedback on registration

🛠️ Tech Stack

LayerTechnology
FrameworkNext.js 16 (App Router)
LanguageTypeScript
StylingTailwind CSS v4
DatabaseMongoDB Atlas + Mongoose
AuthNextAuth.js v4
2FASpeakeasy + QRCode
EmailNodemailer (Gmail SMTP)
ChartsRecharts
AnimationsFramer Motion
FormsReact Hook Form + Zod
PDF ExportjsPDF + AutoTable
Excel ExportSheetJS (xlsx)
DeploymentVercel

🚀 Getting Started

Prerequisites

  • Node.js >=18
  • MongoDB Atlas account
  • Gmail account (for SMTP email)
  • Google & GitHub OAuth apps (optional)

Installation

# 1. Clone the repository
git clone https://github.com/2000Deba/GetMoneyPlanner.git
cd GetMoneyPlanner
# 2. Install dependencies
npm install
# 3. Set up environment variables
cp .env.example .env.local
# 4. Run the development server
npm run dev

Open http://localhost:3000 in your browser.


🔧 Environment Variables

Create a .env.local file in the root directory:

# AppNEXTAUTH_URL=http://localhost:3000NEXTAUTH_SECRET=your_nextauth_secret_here# MongoDBMONGODB_URI=mongodb+srv://<user>:<password>@cluster.mongodb.net/getmoneyplanner# OAuth (optional)GOOGLE_CLIENT_ID=your_google_client_idGOOGLE_CLIENT_SECRET=your_google_client_secretGITHUB_CLIENT_ID=your_github_client_idGITHUB_CLIENT_SECRET=your_github_client_secret# Email (Gmail SMTP)SMTP_HOST=smtp.gmail.comSMTP_PORT=587SMTP_USER=your_gmail@gmail.comSMTP_PASS=your_gmail_app_password# AdminADMIN_EMAIL=admin@yourdomain.com

Note: For Gmail, use an App Password, not your regular password.


🔒 Security

  • Passwords hashed with bcrypt (never stored in plain text)
  • TOTP 2FA secrets encrypted before storage
  • Session tokens signed with NEXTAUTH_SECRET
  • Password reset tokens are single-use and expire in 1 hour
  • Rate limiting on sensitive API routes
  • HTTP-only cookies for session management

🚢 Deployment

This project is optimized for Vercel deployment.

# Install Vercel CLI
npm i -g vercel
# Deploy
vercel --prod

Set all environment variables in your Vercel project dashboard under Settings → Environment Variables.

⚠️ Deploying this software without explicit written permission from the author is a violation of the license terms.


🤝 Contributing

Contributions are welcome for educational improvement of the project.

  1. Fork the repository (study/learning only)
  2. Create your feature branch (git checkout -b feature/AmazingFeature)
  3. Commit your changes (git commit -m 'Add AmazingFeature')
  4. Push to the branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

By contributing, you agree that your contribution may be used under the terms of this project's license. See LICENSE for full details.


📄 License

This project is licensed under a Custom Source-Available License.

✅ AllowedView and study the source code for learning
✅ AllowedFork on GitHub (learning/study only)
✅ AllowedSubmit contributions via Pull Request
❌ ProhibitedDeploy to any server or platform
❌ ProhibitedRedistribute or resell
❌ ProhibitedUse commercially or in client projects
❌ ProhibitedRebrand or claim as your own work

See the full LICENSE file for complete terms.

For permission requests: deep2000seal@gmail.com


👨‍💻 Author

Debasish Seal


Made with ❤️ by Debasish Seal

⭐ Star this repo if you find it helpful!

© 2026 Debasish Seal. All rights reserved.

About

GetMoneyPlanner — A production-grade full-stack personal finance manager — track income, expenses, budgets & goals with 2FA security, email alerts, and rich analytics.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages