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

Β 

History

849 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

πŸ’Έ ExpenseFlow

The Ultimate Full-Stack Smart Expense Tracker

License PRs Welcome Stars

ExpenseFlow is a modern, responsive expense tracking web application designed to help users manage their finances efficiently.
With a clean, elegant dark-themed UI and smart features like analytics, goals, and an AI-powered chatbot, ExpenseFlow makes money management simple and intuitive. 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

  • πŸ“Š Smart Dashboard – Displays total balance, income, expenses, and recent activity
  • πŸ’° Expense & Income Management – Add, edit, or delete transactions easily
  • 🎯 Goal Tracking – Set financial goals and monitor progress visually
  • πŸ“ˆ Analytics View – Understand spending patterns through insights
  • πŸ€– Finance Chatbot – Get instant help, tips, and app guidance
  • πŸŒ™ Dark Mode UI – Sleek, eye-friendly dark-themed interface
  • βš™οΈ Responsive Design – Works seamlessly on desktop and mobile
  • πŸ” PWA Ready – Offline access using service workers and manifest

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 βœ…

πŸ€– Chatbot Feature

ExpenseFlow includes an interactive chatbot to enhance user experience and accessibility.

πŸ’‘ What the Chatbot Can Do:

  • 🧭 Guide users on how to use the app
  • πŸ’¬ Answer common finance-related questions
  • πŸ“Š Explain dashboard data and features
  • 🎯 Help users understand goal tracking
  • ❓ Provide instant assistance without leaving the page

The chatbot improves usability by acting as a virtual finance assistant, making ExpenseFlow more beginner-friendly and engaging. 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.

The app emphasizes:

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

πŸ€” Why ExpenseFlow?

Managing personal finances shouldn't be complicated. ExpenseFlow is designed to simplify money management through a clean, distraction-free interface, helping users gain total visibility into their spending habits.

For Users

  • Build Financial Awareness: Track every penny with ease and visualize where your money goes.
  • Goal Oriented: Don't just track; save. Set milestones and watch your progress in real-time.
  • Smart Automation: Use OCR to scan receipts and AI to categorize expenses, saving you time.

For Developers

  • Real-World Logic: A perfect example of managing complex DOM states in Vanilla JavaScript.
  • Scalable Architecture: A solid foundation demonstrating how to bridge a PWA frontend with a robust Node.js/MongoDB backend.
  • Modern Tooling: Deep dive into Socket.io for real-time sync and Tesseract.js for browser-based machine learning.

πŸ› οΈ Tech Stack

Category Technologies
Frontend HTML5, CSS3, JavaScript (Vanilla JS), Tailwind CSS
Backend Node.js, Express.js
Database MongoDB with Mongoose ODM
Real-time & Sync Socket.IO
Authentication JWT (JSON Web Tokens)
Intelligence & OCR Tesseract.js (OCR), AI-based Categorization Logic
Storage & Media Cloudinary (Receipt Management)
Communication Nodemailer (Email Alerts), Multi-channel Push Notifications
Security Helmet.js, Rate Limiting, Input Sanitization
PWA Support Web App Manifest, Service Workers (sw.js)
DevOps & Deployment Docker, Vercel, Railway, Git/GitHub

πŸ—οΈ System Architecture

graph TD
    subgraph Client_Side [Frontend - PWA]
        A[Vanilla JS UI] --> B[Service Worker / Offline Cache]
        A --> C[Socket.IO Client]
        A --> D[Tesseract.js - OCR]
    end
    subgraph Backend_Services [Node.js / Express]
        C <--> E[Socket.IO Server]
        A -- REST API --> F[Express Routes]
        F --> G{Auth Middleware}
        G --> H[Business Logic / Services]
    end
    subgraph External_Cloud [Data & Storage]
        H --> I[(MongoDB Atlas)]
        H --> J[Cloudinary - Receipts]
        H --> K[Nodemailer - Alerts]
    end
    style Client_Side fill:#f0f7ff,stroke:#007acc
    style Backend_Services fill:#f0fff4,stroke:#28a745
    style External_Cloud fill:#fff9f0,stroke:#d4a017
Loading

πŸ“‚ Folder Structure

ExpenseFlow/
β”œβ”€β”€ public/                 # 🌐 FRONTEND (Client-Side PWA)
β”‚   β”œβ”€β”€ index.html          # Main Entry Point
β”‚   β”œβ”€β”€ expensetracker.css  # Global Styles & UI Components
β”‚   β”œβ”€β”€ trackerscript.js    # Core Frontend Logic & DOM
β”‚   β”œβ”€β”€ manifest.json       # PWA Configuration
β”‚   β”œβ”€β”€ sw.js               # Offline Caching Service Worker
β”‚   β”œβ”€β”€ sw-notifications.js # Push Notification Logic
β”‚   └── components/         # Static Pages (About, Privacy, Tips)
β”‚
β”œβ”€β”€ models/                 # πŸ—„οΈ BACKEND: MongoDB Schema Definitions
β”‚   β”œβ”€β”€ User.js             # User Auth & Profile
β”‚   β”œβ”€β”€ Expense.js          # Transaction Records
β”‚   β”œβ”€β”€ Goal.js             # Financial Targets
β”‚   └── ...                 # Analytics, Receipts, & Recurring Models
β”‚
β”œβ”€β”€ routes/                 # πŸ›£οΈ BACKEND: API Endpoints (REST)
β”‚   β”œβ”€β”€ auth.js             # Login & Registration
β”‚   β”œβ”€β”€ expenses.js         # CRUD Operations
β”‚   β”œβ”€β”€ receipts.js         # OCR & Image Processing
β”‚   └── ...                 # Analytics, Sync, & Group Routes
β”‚
β”œβ”€β”€ middleware/             # πŸ›‘οΈ BACKEND: Security & Processing
β”‚   β”œβ”€β”€ auth.js             # JWT Verification
β”‚   β”œβ”€β”€ rateLimit.js        # DDoS Protection
β”‚   └── uploadMiddleware.js # Cloudinary/Multer Handling
β”‚
β”œβ”€β”€ services/               # βš™οΈ BACKEND: Business Logic & Third-Party
β”‚   β”œβ”€β”€ emailService.js     # Nodemailer Integration
β”‚   β”œβ”€β”€ analyticsService.js # Data Aggregation Logic
β”‚   └── cronJobs.js         # Automated Task Scheduling
β”‚
β”œβ”€β”€ server.js               # πŸš€ Main Entry Point (Express & Socket.io)
β”œβ”€β”€ .env.example            # Environment Variable Template
β”œβ”€β”€ docker-compose.yml      # Docker Orchestration
β”œβ”€β”€ package.json            # Node.js Dependencies
└── README.md               # Project Documentation

πŸš€ How to Run Locally

Choose the setup that matches your development needs:

Frontend-Only Mode (UI/UX Work)

Ideal if you only want to work on the styling or the Vanilla JS interface.

  • Prerequisites: A browser and a local server extension (like VS Code Live Server).
  • Steps:
    1. Open the project in VS Code.
    2. Navigate to the public/ folder.
    3. Right-click index.html and select "Open with Live Server".

Note: Backend features like OCR, Cloudinary uploads, and Database persistence will not work in this mode.

Full-Stack Mode (Complete Development)

Ideal for working on API routes, MongoDB integration, or Socket.io features.

  • Prerequisites: Node.js (v16+), MongoDB (Local or Atlas).
  • Steps:
  1. Clone the repo:
git clone https://github.com/Renu-code123/ExpenseFlow.git
cd ExpenseFlow
  1. Install Dependencies:
npm install
  1. Environment Variables: Create a .env file in the root directory based on .env.example:
PORT=5000
MONGO_URI=your_mongodb_connection_string
JWT_SECRET=your_secret_key
CLOUDINARY_URL=your_cloudinary_link
  1. Start the Server:
npm start

The app will be live at http://localhost:5000.

Docker Mode (Containerized)

Ideal for testing the production environment without installing local dependencies.

  • Prerequisites: Docker Desktop installed.
  • Steps:
  1. Build and Run:
docker compose up -d
  1. Check Status:
docker compose ps
  1. Stop the App:
docker compose down

πŸ“± Progressive Web App (PWA)

ExpenseFlow is engineered to function as a native application across all platforms.

  • Offline Access: Utilizing sw.js, the application caches essential assets, allowing users to view their dashboard even without an internet connection.
  • Installation:
    • Desktop: Click the "Install" icon in the address bar.
    • Mobile: Select "Add to Home Screen" from your browser menu.
  • Background Sync: Transactions made offline are queued and synchronized automatically once the connection is restored.
  • Push Notifications: Stay updated with budget alerts and goal reminders via the sw-notifications.js integration.

πŸ“Έ 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

All Contributors

πŸ’– Thanks to all the amazing contributors who are helping build and improve ExpenseFlow!


🧾 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:


πŸ§‘β€πŸ’» Core Team

Name Role
Renu Kumari Prajapati Project Admin
Harshit Singh Mentor

πŸ’¬ 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 45