A modern, user-friendly web application for tracking personal expenses and income in Indian Rupees (βΉ). Built with vanilla JavaScript and Firebase for real-time data synchronization.
- Transaction Management β Add, view, and delete income/expense transactions
- Real-time Balance β Automatic calculation of current balance
- Category System β 16 predefined categories with emoji icons
- Date Tracking β Record transactions with specific dates
- Search & Filter β Find transactions by description or category
- Export to CSV β Download transaction history for external analysis
- Billing Cycle Customization β Set custom billing periods (1st, 5th, 10th, 15th, 20th, or 25th)
- Period-based Reports β View income, expenses, and balance per billing period
- Historical Overview β Browse past billing periods with breakdowns
- Current Period Summary β Quick view of ongoing periodβs financial status
- User Authentication β Secure login/signup with Firebase Authentication
- Personal Data β Each user's transactions are private and isolated
- Responsive Design β Works seamlessly on desktop and mobile devices
- Real-time Sync β Changes reflect instantly across all devices
- Statistics Dashboard β View total transactions and average transaction amounts
- Frontend: HTML5, CSS3, JavaScript (ES6+)
- Backend & Services: Firebase Authentication, Firestore Database, Firebase Hosting
- Libraries: Font Awesome 6.4.0, Firebase SDK 9.22.0
expense-tracker/
βββ index.html # Main dashboard
βββ app.js # Application logic
βββ styles.css # Stylesheet
βββ auth.html # Login/Signup page
βββ auth.js # Authentication logic
βββ auth-styles.css # Auth page styles
βββ monthly-view.html # Monthly data view
βββ monthly-view.js # Monthly view logic
βββ monthly-styles.css # Monthly view styles
βββ firebase-config.js # Firebase config
βββ firebase.json # Hosting config
βββ .firebaserc # Firebase project settings
βββ assets/
β βββ screenshots/
β βββ authentication.png
β βββ dashboard.png
β βββ monthly-view.png
- Firebase Authentication required
- User isolation (private data per account)
- Firestore security rules
- HTTPS secure hosting
Optimized for:
- Desktop & laptops
- Tablets
- Mobile devices
- Modern web browser (Chrome, Firefox, Safari, Edge)
- Firebase account (for deployment)
-
Clone the repository
git clone <repository-url> cd expense-tracker
-
Update Firebase credentials
- Open
firebase-config.js - Replace with your Firebase project credentials
- Open
-
Run locally
- Option 1: Open
index.htmldirectly in browser - Option 2: Use a local server
python -m http.server 8000
- Access at
http://localhost:8000
- Option 1: Open
-
Create Firebase Project
- Go to Firebase Console
- Click "Add Project" and follow the wizard
-
Enable Authentication
- Navigate to Authentication β Sign-in method
- Enable Email/Password provider
-
Create Firestore Database
- Navigate to Firestore Database
- Click "Create Database"
- Start in production mode
- Set up security rules
-
Get Configuration
- Go to Project Settings β General
- Scroll to "Your apps" section
- Copy the Firebase config object
- Paste into
firebase-config.js
# Install Firebase CLI
npm install -g firebase-tools
# Login to Firebase
firebase login
# Initialize project (first time only)
firebase init
# Deploy to Firebase Hosting
firebase deployYour app will be live at: https://your-project-id.web.app
- π Food, π Groceries, π Utilities
- π Health, π‘οΈ Insurance, $ EMI/Credit
- πΉ Investment, π Transport, ποΈ Shopping
- π¬ Entertainment, π‘ Bills, π° Salary
- π Gift, $ Loan, π Other
- All Transactions β View complete transaction history
- Income Only β Filter to show only income entries
- Expense Only β Filter to show only expense entries
- Total Transactions β Count of all recorded transactions
- Average Transaction β Mean value of all transactions
- Balance β Current balance (Income - Expenses)
- Total Income β Sum of all positive transactions
- Total Expense β Sum of all negative transactions
The Monthly Data view provides comprehensive billing period analysis:
- Custom Billing Cycles β Choose when your billing period starts (1st, 5th, 10th, 15th, 20th, or 25th)
- Period Breakdown β See income, expenses, and balance for each period
- Historical Data β Access all past billing periods
- Quick Navigation β Click any period to view detailed transactions
Perfect for: Salary-based tracking, credit card bill management, and budget monitoring.
- Modern UI β Clean and intuitive interface
- Color-coded Transactions β Green for income, red for expenses
- Smooth Animations β Hover effects and transitions
- Loading States β Visual feedback during data operations
- Error Handling β User-friendly error messages
User Authentication (Firebase Auth)
β
Load User Transactions (Firestore)
β
Real-time Listener (Auto-sync)
β
User Actions (Add/Delete)
β
Update Firestore
β
Sync Across All Devices
| Browser | Support |
|---|---|
| Chrome/Edge | β Latest |
| Firefox | β Latest |
| Safari | β Latest |
| Mobile Browsers | β iOS Safari, Chrome Mobile |
- Budget setting and tracking
- Recurring transactions
- Data visualization with charts
- Multi-currency support
- Receipt attachment capability
- Advanced reporting features
- Dark mode theme
- Expense categories customization
For issues or questions:
- Firebase Console β Check for errors in Firebase Console
- Browser Console β Press F12 to view debugging information 3.. Common Issues β See [Firebase Deployment Guide]
Β© 2025 Hemanth. MIT License
This is a personal project. Feel free to fork and modify for your own use.
Built using Firebase and JavaScript