Skip to content

ExpenseFlow is a smart expense tracking web app that helps you monitor your spending, analyze your balance, and achieve your financial goals with ease.

License

Notifications You must be signed in to change notification settings

Renu-code123/ExpenseFlow

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

πŸ’Έ ExpenseFlow – Smart Expense Tracker

ExpenseFlow is a modern and responsive full-stack expense tracking web application designed to help users manage their finances efficiently. With a clean and elegant dark-themed UI, it allows users to monitor spending, analyze balance, and achieve their financial goals effortlessly.

The application features a robust Node.js/Express backend with MongoDB database, real-time synchronization, advanced analytics, and comprehensive security measures.


πŸ”— Quick Links


🧭 Table of Contents


✨ Features

Core Features

  • πŸ“Š Smart Dashboard – Displays total balance, spending trends, and updates.
  • πŸ’° Expense & Income Management – Add, edit, or remove transactions easily.
  • 🎯 Goal Tracking – Set saving targets and measure progress.
  • πŸ“ˆ Analytics View – Track your financial health visually.
  • πŸŒ™ Dark Mode UI – Sleek and eye-comfortable dark theme.
  • βš™οΈ Responsive Design – Optimized for desktop and mobile devices.
  • πŸ” PWA Ready – Manifest and service worker support for offline usage.

Advanced Features

  • πŸ”„ Real-time Sync – Cross-device synchronization with Socket.IO βœ…
  • πŸ’± Multi-currency Support – Automatic currency conversion and exchange rates βœ…
  • πŸ“± Receipt Management – OCR-powered receipt scanning and storage βœ…
  • πŸ”” Smart Notifications – Budget alerts, goal reminders, and security notifications βœ…
  • πŸ€– AI Categorization – Machine learning-powered expense categorization βœ…
  • πŸ“Š Advanced Analytics – Detailed spending insights and trends βœ…
  • πŸ”’ Security First – Rate limiting, input sanitization, and security monitoring βœ…
  • πŸ“€ Data Export – Export financial data in multiple formats βœ…
  • πŸ‘₯ Group Expense Management – Create groups and manage shared expenses βœ…
  • πŸ’Έ Expense Splitting – Split expenses among group members with payment tracking βœ…

πŸ–₯️ Overview

ExpenseFlow is a comprehensive full-stack expense tracking application built with modern web technologies. It combines a responsive frontend with a powerful backend API, providing users with a complete financial management solution.

Architecture Highlights

  • Frontend: HTML5, CSS3, JavaScript (Vanilla JS) with PWA capabilities
  • Backend: Node.js/Express.js with RESTful API design
  • Database: MongoDB with Mongoose ODM
  • Real-time: Socket.IO for live synchronization
  • Security: Helmet, rate limiting, input sanitization, and monitoring
  • File Storage: Cloudinary integration for receipt uploads
  • Notifications: Multi-channel notification system (email, push, SMS)

The app emphasizes:

  • User-centered design
  • Visual representation of financial data
  • Scalable architecture for future enhancements
  • Security and performance optimization
  • Cross-platform compatibility


πŸ€” Why to use ExpenseFlow?

ExpenseFlow is designed to simplify personal finance management by providing a clean, intuitive, and distraction-free interface. It helps users track expenses and income efficiently while gaining better visibility into their spending habits.

Whether you are a student, beginner, or someone learning frontend development, ExpenseFlow serves as:

  • A practical tool for daily expense tracking
  • A beginner-friendly project to understand real-world UI logic
  • A scalable base for adding backend, authentication, and analytics features

By using ExpenseFlow, users can build financial awareness while developers can strengthen their frontend and project-structuring skills.

✨ Features

  • Expense tracking & splitting
  • Budget goals
  • AI-based categorization
  • Email notifications
  • Real-time sync
  • Receipt management

πŸ› οΈ Tech Stack

Category Technology Used
Frontend HTML5, CSS3, JavaScript (Vanilla JS)
Backend Node.js, Express.js
Database MongoDB with Mongoose ODM
Real-time Socket.IO
Authentication JWT (JSON Web Tokens)
File Storage Cloudinary
Security Helmet, Rate Limiting, Input Sanitization
OCR Tesseract.js
Email Nodemailer
Styling Tailwind CSS / Custom CSS
Version Control Git, GitHub
Deployment Vercel (Frontend), Railway/Heroku (Backend)
PWA Support manifest.json, sw.js

πŸ“‚ Folder Structure

ExpenseFlow/
β”‚
β”œβ”€β”€ public/                          # Frontend static files
β”‚   β”œβ”€β”€ index.html                   # Main HTML layout
β”‚   β”œβ”€β”€ expensetracker.css           # Styling and UI components
β”‚   β”œβ”€β”€ trackerscript.js             # Core JavaScript functionality
β”‚   β”œβ”€β”€ manifest.json                # PWA manifest
β”‚   β”œβ”€β”€ sw.js                        # Service Worker for offline caching
β”‚   β”œβ”€β”€ sw-notifications.js          # Push notification service worker
β”‚   β”œβ”€β”€ AboutUs.html                 # About page
β”‚   β”œβ”€β”€ PrivacyPolicy.html           # Privacy policy page
β”‚   β”œβ”€β”€ terms_service.html           # Terms of service
β”‚   └── finance-tips.html            # Financial tips page
β”‚
β”œβ”€β”€ models/                          # MongoDB data models
β”‚   β”œβ”€β”€ User.js                      # User authentication model
β”‚   β”œβ”€β”€ Expense.js                   # Expense transaction model
β”‚   β”œβ”€β”€ Budget.js                    # Budget management model
β”‚   β”œβ”€β”€ Goal.js                      # Financial goals model
β”‚   β”œβ”€β”€ Receipt.js                   # Receipt storage model
β”‚   β”œβ”€β”€ Notification.js              # Notification system model
β”‚   β”œβ”€β”€ CurrencyRate.js              # Currency exchange rates
β”‚   β”œβ”€β”€ SyncQueue.js                 # Real-time sync queue
β”‚   β”œβ”€β”€ CategoryPattern.js           # AI categorization patterns
β”‚   β”œβ”€β”€ AnalyticsCache.js            # Analytics data cache
β”‚   β”œβ”€β”€ MerchantDatabase.js          # Merchant information
β”‚   └── RecurringExpense.js          # Recurring transactions
β”‚
β”œβ”€β”€ routes/                          # API route handlers
β”‚   β”œβ”€β”€ auth.js                      # Authentication routes
β”‚   β”œβ”€β”€ expenses.js                  # Expense management routes
β”‚   β”œβ”€β”€ budgets.js                   # Budget management routes
β”‚   β”œβ”€β”€ goals.js                     # Goal tracking routes
β”‚   β”œβ”€β”€ receipts.js                  # Receipt upload routes
β”‚   β”œβ”€β”€ notifications.js             # Notification routes
β”‚   β”œβ”€β”€ analytics.js                 # Analytics routes
β”‚   β”œβ”€β”€ currency.js                  # Currency conversion routes
β”‚   β”œβ”€β”€ export.js                    # Data export routes
β”‚   β”œβ”€β”€ groups.js                    # Group expense routes
β”‚   β”œβ”€β”€ splits.js                    # Expense splitting routes
β”‚   β”œβ”€β”€ recurring.js                 # Recurring expense routes
β”‚   └── sync.js                      # Real-time sync routes
β”‚
β”œβ”€β”€ middleware/                      # Express middleware
β”‚   β”œβ”€β”€ auth.js                      # Authentication middleware
β”‚   β”œβ”€β”€ rateLimit.js                 # Rate limiting
β”‚   β”œβ”€β”€ rateLimiter.js               # Advanced rate limiting
β”‚   β”œβ”€β”€ sanitization.js              # Input sanitization
β”‚   β”œβ”€β”€ socketAuth.js                # Socket authentication
β”‚   β”œβ”€β”€ uploadMiddleware.js          # File upload handling
β”‚   β”œβ”€β”€ analyticsValidator.js        # Analytics validation
β”‚   β”œβ”€β”€ categorizationValidator.js   # Category validation
β”‚   β”œβ”€β”€ recurringValidator.js        # Recurring expense validation
β”‚   └── securityMonitor.js           # Security monitoring
β”‚
β”œβ”€β”€ services/                        # Business logic services
β”‚   β”œβ”€β”€ analyticsService.js          # Analytics processing
β”‚   β”œβ”€β”€ budgetService.js             # Budget calculations
β”‚   β”œβ”€β”€ categorizationService.js     # AI categorization
β”‚   β”œβ”€β”€ currencyService.js           # Currency conversion
β”‚   β”œβ”€β”€ emailService.js              # Email notifications
β”‚   β”œβ”€β”€ exportService.js             # Data export
β”‚   β”œβ”€β”€ fileUploadService.js         # File upload handling
β”‚   β”œβ”€β”€ notificationService.js       # Notification management
β”‚   β”œβ”€β”€ recurringService.js          # Recurring transactions
β”‚   β”œβ”€β”€ securityMonitor.js           # Security monitoring
β”‚   └── cronJobs.js                  # Scheduled tasks
β”‚
β”œβ”€β”€ server.js                        # Main server entry point
β”œβ”€β”€ package.json                     # Node.js dependencies
β”œβ”€β”€ .env.example                     # Environment variables template
β”œβ”€β”€ .gitignore                       # Git ignore rules
β”œβ”€β”€ README.md                        # Project documentation
β”œβ”€β”€ BACKEND.md                       # Backend documentation
β”œβ”€β”€ DATABASE.md                      # Database documentation
β”œβ”€β”€ TODO.md                          # Development tasks
β”œβ”€β”€ CONTRIBUTING.md                  # Contribution guidelines
β”œβ”€β”€ Code_of_conduct.md               # Code of conduct
└── LICENSE                          # MIT License

πŸš€ How to Run Locally

Follow these simple steps to set up and view the project on your local machine πŸ‘‡

1️⃣ Clone the Repository

git clone https://github.com/Renu-code123/ExpenseFlow-expensetracker.git

2️⃣ Navigate into the Project Folder

cd ExpenseFlow-expensetracker

3️⃣ Open the HTML File

Simply open the expenseTracker.html file in your browser.

Or run a live development server using:

npx live-server

πŸ“Έ Screenshots

image image

🏠 Dashboard Preview

Smart Money Management – Take control of your finances with our intuitive expense tracker.


🧩 Future Enhancements

  • πŸ”— Add backend for real-time data persistence (Firebase or Node.js)
  • πŸ“Š Integrate charting tools like Chart.js for expense visualization
  • 🧾 Introduce login/authentication system
  • πŸ’‘ Add category filters for detailed analysis
  • πŸ“± Improve PWA support for full offline functionality

🎯 Learning Outcomes

By building this project, you’ll learn:

  • 🎨 Responsive UI design using CSS
  • 🧠 DOM manipulation using vanilla JavaScript
  • πŸ“‚ Managing and displaying dynamic user data
  • βš™οΈ Working with manifests and service workers
  • πŸ—οΈ Structuring a scalable frontend project

🀝 Contributing

Contributions are always welcome! If you’d like to improve ExpenseFlow, follow these steps πŸ‘‡

  1. Fork the repository

  2. Create a new branch

    git checkout -b feature-name
  3. Commit your changes

    git commit -m "Added a new feature"
  4. Push to your branch

    git push origin feature-name
  5. Open a Pull Request


🧾 License

This project is licensed under the MIT License – see the LICENSE file for details.


πŸ‘©β€πŸ’» Author

Renu Kumari Prajapati πŸŽ“ Information Technology Student | πŸ’» Frontend Developer | 🌍 Open Source Enthusiast

πŸ“« Connect with me:


πŸ’¬ Quote

β€œSmart money management begins with awareness β€” track it, plan it, and grow it with ExpenseFlow.”


🌟 Show Some Love

If you found this project useful, don’t forget to ⭐ Star the repository! Let’s build smarter tools for financial awareness together πŸ’œ


About

ExpenseFlow is a smart expense tracking web app that helps you monitor your spending, analyze your balance, and achieve your financial goals with ease.

Topics

Resources

License

Code of conduct

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 27