Skip to content

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.

Notifications You must be signed in to change notification settings

idarshan181/ExpenseTracker-MUN

Repository files navigation

Expense Tracker

Expense Tracker MUN – Smart Financial Management Made Simple

Expense Tracker MUN 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, Expense Tracker MUN 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, Expense Tracker MUN 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

⏳ To Be Completed

[⏳] Historical Transactions with Filtering
[⏳] Recurring Expense Reminders
[⏳] Budgeting Tips & Alerts
[⏳] Budgeting and notifications for budgeting
[⏳] Advanced Financial Goal Setting
[⏳] Multi-user Collaboration
[⏳] 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

No packages published