The Ultimate Full-Stack Smart Expense Tracker
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.
- π Live Demo
- π Backend Documentation
- ποΈ Database Documentation
- π‘οΈ Setup & Security
- βοΈ Getting Started
- π Report a Bug
- β¨ Request a Feature
- β¨ Features
- π€ Chatbot Feature
- π οΈ Tech Stack
- π Folder Structure
- π How to Run Locally
- πΈ Screenshots
- π§© Future Enhancements
- π― Learning Outcomes
- π€ Contributing
- π§Ύ License
- π©βπ» Author
- π 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
- π 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 includes an interactive chatbot to enhance user experience and accessibility.
- π§ 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
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.
- 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.
- 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.
| 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 |
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
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
Choose the setup that matches your development needs:
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:
- Open the project in VS Code.
- Navigate to the
public/folder. - Right-click
index.htmland select "Open with Live Server".
Note: Backend features like OCR, Cloudinary uploads, and Database persistence will not work in this mode.
Ideal for working on API routes, MongoDB integration, or Socket.io features.
- Prerequisites: Node.js (v16+), MongoDB (Local or Atlas).
- Steps:
- Clone the repo:
git clone https://github.com/Renu-code123/ExpenseFlow.git
cd ExpenseFlow- Install Dependencies:
npm install
- Environment Variables: Create a
.envfile 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- Start the Server:
npm startThe app will be live at http://localhost:5000.
Ideal for testing the production environment without installing local dependencies.
- Prerequisites: Docker Desktop installed.
- Steps:
- Build and Run:
docker compose up -d- Check Status:
docker compose ps- Stop the App:
docker compose downExpenseFlow 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.jsintegration.
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
π Thanks to all the amazing contributors who are helping build and improve ExpenseFlow!
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
| Name | Role |
|---|---|
| Renu Kumari Prajapati | Project Admin |
| Harshit Singh | Mentor |
β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 π