Skip to content

idarshan181/ExpenseTracker-MUN

Repository files navigation

ExpenseVision - Expense Tracker

ExpenseVision – Smart Financial Management Made Simple

ExpenseVision is a web-based application designed to help users efficiently manage their finances by tracking income, expenses, and spending habits in a structured and intuitive way. Whether it's daily expenses, monthly bills, or long-term savings, this tool provides real-time insights, categorized spending analysis, and seamless transaction tracking to ensure users stay financially aware and in control.

With features like automated transaction logging, smart budgeting tools, and goal-based financial planning, ExpenseVision makes managing money effortless. Users can visualize their spending trends, set savings goals, and track their progress without the hassle of manual calculations. The platform is built with a user-friendly interface, ensuring a smooth experience while prioritizing data privacy and security. Whether you're an individual looking to improve your personal finance habits or someone managing shared expenses, ExpenseVision simplifies the process, helping you spend smarter, save better, and plan for the future with confidence.

📸 Screenshots

Login Page

Login Page

Dashboard View (Dark & Light Mode)

Light Mode Dashboard Dark Mode Dashboard

Transactions View (Dark & Light Mode)

Light Mode Transactions Dark Mode Transactions

🚀 Features

✅ Completed

[✅] User authentication via GitHub & Google
[✅] Dashboard with financial insights
[✅] Categorized expense tracking
[✅] Monthly transaction trends
[✅] Responsive UI with Shadcn components [✅] Historical Transactions with Filtering
[✅] Category management with CRUD operations
[✅] Customizable category hierarchy
[✅] Real-time category updates for all users

⏳ To Be Completed

[⏳] Recurring Expense Reminders
[⏳] Budgeting Tips & Alerts
[⏳] Budgeting and notifications for budgeting
[⏳] Advanced Financial Goal Setting
[⏳] Detailed Financial Reports\

🛠️ Tech Stack

  • Frontend: Next.js 15 (TypeScript, App Router), TailwindCSS, Shadcn
  • Backend: Fastify
  • Database: PostgreSQL with Prisma ORM
  • Authentication: Auth.js (NextAuth)
  • Deployment: Vercel (Auto-deploys enabled)
  • Security/Monitoring: Arcjet

📋 Prerequisites

  • Node.js & PNPM installed
  • PostgreSQL database set up

🔧 Installation & Setup

1. Clone the repository

git clone https://github.com/idarshan181/ExpenseTracker-MUN.git
cd ExpenseTracker-MUN

2. Install dependencies

pnpm install

3. Generate Prisma client

pnpm dlx prisma generate

4. Run the development server

pnpm run dev

📁 Project Structure

├── prisma
│   └── schema.prisma
├── public/
│   ├── logos/
│   ├── screenshots/
├── src/
│   ├── app/
│   │   ├── (mainLayout)/
│   │   │   ├── budgets/
│   │   │   ├── dashboard/
│   │   │   ├── reports/
│   │   │   ├── transactions/
│   │   ├── actions.ts
│   │   ├── api/
│   │   │   ├── auth/
│   │   │   ├── arcjet/
│   │   │   ├── uploadthing/
│   │   ├── data/
│   │   ├── login/
│   │   ├── onboarding/
│   │   ├── utils/
│   ├── components/
│   │   ├── Dashboard/
│   │   ├── Sidebar/
│   │   ├── Transactions/
│   │   ├── forms/
│   │   ├── general/
│   │   ├── ui/
│   ├── hooks/
│   ├── lib/
│   └── types/
├── commitlint.config.ts
├── components.json
├── eslint.config.mjs
├── lint-staged.config.js
├── next-env.d.ts
├── next.config.ts
├── package.json
├── pnpm-lock.yaml
├── postcss.config.mjs
├── README.md
└── tsconfig.json

📝 Environment Variables (.env)

Create a .env file in the root directory and include the following variables:

AUTH_SECRET=
AUTH_GITHUB_ID=
AUTH_GITHUB_SECRET=
AUTH_GITHUB_CALLBACK_URL=
AUTH_GOOGLE_ID=
AUTH_GOOGLE_SECRET=
AUTH_GOOGLE_CALLBACK_URL=
DATABASE_URL=
UPLOADTHING_TOKEN=
ARCJET_KEY=

🚀 Deployment

The project is automatically deployed using Vercel. No CI/CD pipeline is currently configured.

🏃‍♂️ Running in Production

pnpm run build
pnpm start

🤝 Contribution Guidelines

🚀 How to Contribute

  1. Fork the repository.
  2. Create a new branch following the commit convention structure:
git checkout -b <type>/<scope>

Examples:

git checkout -b feat/dashboard
git checkout -b feat/analytics
git checkout -b fix/hydration
  1. Make your changes and commit using the proper commit message format.
  2. Push to your branch:
git push origin <type>/<scope>
  1. Submit a pull request for review.

🚨 Note: Only the repository owner can merge due to Vercel's hobby limitations.
💡 Always create a new branch for each feature or fix before submitting a pull request.


Commit Message Format

Please follow the commit message convention as enforced by Husky and Commitlint based on Conventional Commits:

git commit -m "<type>(<scope>): <subject>"

type (Choose from the following):

  • build: Changes that affect the build system or external dependencies
  • chore: General maintenance tasks
  • ci: Changes to CI/CD configuration
  • docs: Documentation updates
  • feat: New features
  • fix: Bug fixes
  • perf: Performance improvements
  • refactor: Code changes that neither fix a bug nor add a feature
  • revert: Reverting previous commits
  • style: Code style changes (formatting, missing semi-colons, etc.)
  • test: Adding or updating tests

scope (Optional)

A specific area of the codebase affected (e.g., auth, dashboard).

subject

A short, descriptive message (in lowercase, no period at the end).

Example:

git commit -m "feat(auth): add Google OAuth support"
git commit -m "fix(dashboard): resolve incorrect expense calculation"
git commit -m "docs(readme): update contribution guidelines"

Please follow the commit message convention as enforced by Husky and Commitlint:

git commit -m "feat/fix/chore/subject: message"
  • feat: For new features
  • fix: For bug fixes
  • chore: For maintenance or minor tasks
  • subject: A short description of the changes
  • message: A brief explanation of the commit

📄 License

This project is for educational purposes only and does not include a formal license.


For any questions or contributions, feel free to open an issue or submit a PR!

About

Expense Tracker MUN helps users efficiently manage finances by tracking income, expenses, and spending habits with real-time insights, budgeting tools, and goal-based financial planning.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors