TrackIt is a full-stack expense tracking application built with Next.js, TypeScript, TailwindCSS, and MongoDB.
It allows users to register, verify their email, log in, and manage their expenses with accounts and categories.
- 🔐 Authentication – Signup & Login with email verification
- 📧 Email Verification – Secure account activation via Gmail (SMTP / App Password)
- 🏦 Accounts Management – Add multiple accounts (Bank, Wallet, etc.)
- 🗂️ Categories – Organize expenses into categories
- 💸 Expense Tracking – Add, edit, and delete expenses
- 📊 Dashboard – Track spending visually
- 👤 Profile Management – Edit profile & change password
- Frontend: Next.js 14 (App Router) + TypeScript + TailwindCSS
- Backend: Next.js API Routes
- Database: MongoDB (Mongoose ODM)
- Auth & Security: JWT + bcrypt + Nodemailer (Gmail SMTP)
- Deployment: Vercel
git clone https://github.com/yourusername/trackit.git
cd trackitnpm installCreate a .env.local file in root:
# Mongo
MONGODB_URI=
# NextAuth
NEXTAUTH_URL=
NEXTAUTH_SECRET=
ENCRYPTION_KEY=
JWT_SECRET=
BASE_URL=https://trackit.mayankaggarwal.me
EMAIL_USER=
EMAIL_PASS=npm run dev- Push code to GitHub
- Import project into Vercel
- Add environment variables in Vercel Dashboard → Settings → Environment Variables
- Deploy 🚀
TrackIt uses Nodemailer + Gmail SMTP for sending verification emails. If you face issues on Vercel:
- Use App Password instead of your Gmail password.
- Or switch to Resend / SendGrid (recommended for production).
Contributions, issues, and feature requests are welcome!
- Fork the repo
- Create a branch:
git checkout -b feature/your-feature- Commit changes:
git commit -m "Added new feature"- Push to branch:
git push origin feature/your-feature- Create a Pull Request