Skip to content
Β 
Β 

Latest commit

Β 

History

332 Commits

Folders and files

NameName
Last commit message
Last commit date
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸ’Έ 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.

Resources

Code of conduct

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages