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.
- π Live Demo
- π Backend Documentation
- ποΈ Database Documentation
- βοΈ Getting Started
- π Report a Bug
- β¨ Request a Feature
- β¨ Features
- π₯οΈ Overview
- [π€ Why to use ExpenseFlow?](#-Why to use ExpenseFlow?)
- π οΈ Tech Stack
- π Folder Structure
- π How to Run Locally
- πΈ Screenshots
- π§© Future Enhancements
- π― Learning Outcomes
- π€ Contributing
- π§Ύ License
- π©βπ» Author
- π¬ Quote
- π Show Some Love
- π 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.
- π 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 β
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.
- 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
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.
- Expense tracking & splitting
- Budget goals
- AI-based categorization
- Email notifications
- Real-time sync
- Receipt management
| 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 |
| Nodemailer | |
| Styling | Tailwind CSS / Custom CSS |
| Version Control | Git, GitHub |
| Deployment | Vercel (Frontend), Railway/Heroku (Backend) |
| PWA Support | manifest.json, sw.js |
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
Follow these simple steps to set up and view the project on your local machine π
git clone https://github.com/Renu-code123/ExpenseFlow-expensetracker.gitcd ExpenseFlow-expensetrackerSimply open the expenseTracker.html file in your browser.
Or run a live development server using:
npx live-server
Smart Money Management β Take control of your finances with our intuitive expense tracker.
- π 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
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
Contributions are always welcome! If youβd like to improve ExpenseFlow, follow these steps π
-
Fork the repository
-
Create a new branch
git checkout -b feature-name
-
Commit your changes
git commit -m "Added a new feature" -
Push to your branch
git push origin feature-name
-
Open a Pull Request
This project is licensed under the MIT License β see the LICENSE file for details.
Renu Kumari Prajapati π Information Technology Student | π» Frontend Developer | π Open Source Enthusiast
π« Connect with me:
- GitHub: @Renu-code123
βSmart money management begins with awareness β track it, plan it, and grow it with ExpenseFlow.β
If you found this project useful, donβt forget to β Star the repository! Letβs build smarter tools for financial awareness together π