A modern, feature-rich personal finance tracker built with vanilla HTML, CSS, and JavaScript. Track your income, expenses, set budgets, and gain insights into your spending habits with a beautiful, responsive interface.
๐ Live Demo: https://nextgendev2029.github.io/OJT_2025_MoneyMate/
- Transaction Management: Add, view, and delete income/expense transactions
- Real-time Balance: Automatic calculation of total balance, income, and expenses
- Local Storage: All data persists in browser's localStorage
- Responsive Design: Works seamlessly on desktop, tablet, and mobile devices
- Accessibility: ARIA labels, keyboard navigation, and screen reader support
- Budget Tracking: Set monthly budgets for different categories with visual alerts
- Smart Alerts: Get notified when you're approaching or exceeding budget limits
- Recurring Transactions: Automatically add monthly recurring bills
- Transaction Editing: Edit any transaction with pre-populated form
- Bulk Operations:
- Select multiple transactions with checkboxes
- Delete selected transactions
- Delete all transactions with confirmation
- Undo/Redo: Mistake-proof with transaction history management
- Search & Filter: Quickly find transactions with debounced search
- Sorting: Sort by date or amount (ascending/descending)
- Pagination: Clean display with 10 transactions per page
- Interactive Charts:
- Pie chart with hover effects and distinct pastel colors
- Line chart with clickable data points and tooltips
- Dark theme support for charts
- Data Export: Download your data as JSON or CSV
- Dark/Light Theme: Toggle between themes with smooth transitions
- Modern UI/UX:
- Glassmorphism effects
- Gradient backgrounds with animated patterns
- Glow effects on hover
- Smooth animations and transitions
- Finance-themed background patterns
- A modern web browser (Chrome, Firefox, Safari, Edge)
- No server or build tools required!
- Clone or download this repository
- Open
index.htmlin your web browser - Start tracking your finances!
# If you want to run a local server (optional)
# Using Python 3
python -m http.server 8000
# Using Node.js
npx serve
# Then open http://localhost:8000- Fill in the transaction form:
- Select type (Income/Expense)
- Enter amount in rupees
- Choose category
- Select date
- Add description (optional)
- Mark as recurring if it's a monthly transaction
- Click "Add Transaction"
- Click the โ๏ธ (edit) icon next to any transaction
- Form will populate with transaction data
- Modify any field
- Click "Update Transaction"
- Click "Cancel" to exit edit mode
- Click "Select" button in Transaction History
- Checkboxes appear next to each transaction
- Select multiple transactions
- Click "Delete Selected (X)" to remove selected items
- Or click "Delete All" to remove all transactions
- Confirmation dialog appears before deletion
- Click "Add Budget" button
- Select category
- Enter monthly limit
- Save
- Scroll to the "Spending Insights" section
- Pie Chart:
- View category breakdown with pastel colors
- Hover over slices to see them pop out
- Each slice shows category name, amount, and percentage
- Line Chart:
- Check 7-day spending trends
- Hover over data points to see tooltips
- Click on points to view detailed information
- Click "Export JSON" for complete data backup
- Click "Export CSV" for spreadsheet-compatible transaction list
money-mate/
โโโ index.html # Main dashboard page
โโโ about.html # About us page
โโโ contact.html # Contact page
โโโ styles/
โ โโโ main.css # Main styles with glassmorphism
โ โโโ theme.css # Dark/light theme styles
โโโ js/
โ โโโ app.js # Main application entry point
โ โโโ modules/
โ โโโ storage.js # localStorage management
โ โโโ transactions.js # Transaction CRUD operations
โ โโโ budgets.js # Budget management
โ โโโ charts.js # Canvas chart rendering with interactions
โ โโโ ui.js # UI interactions and modals
โ โโโ theme.js # Theme management
โ โโโ export.js # Data export (JSON/CSV)
โโโ demo-data.json # Sample data for testing
โโโ README.md
- โ ES6 modules for code organization
- โ Class-based architecture
- โ Separation of concerns (MVC-like pattern)
- โ Event-driven programming
- โ CSS Grid for complex layouts
- โ Flexbox for component alignment
- โ Mobile-first responsive design
- โ Media queries for different screen sizes
- โ ARIA labels and roles
- โ Keyboard navigation support
- โ Screen reader friendly
- โ Skip links and semantic HTML
- โ localStorage for data persistence
- โ JSON serialization/deserialization
- โ Data caching strategy
- โ Debounced search input
- โ Efficient DOM manipulation
- โ Pagination for large datasets
- โ Canvas API for performant charts
- Add income transaction
- Add expense transaction
- Edit transaction
- Delete single transaction
- Bulk select and delete transactions
- Delete all transactions
- Undo/redo operations
- Set budget and verify alerts
- Search transactions
- Filter by type and category
- Sort transactions
- Navigate pagination
- Toggle dark/light theme
- Test chart interactions (hover, click)
- Export JSON and CSV
- Test on mobile device
- Test keyboard navigation
- Verify data persists after page reload
- Check responsive design on different screen sizes
- Test glassmorphism and glow effects
- โ Chrome 90+
- โ Firefox 88+
- โ Safari 14+
- โ Edge 90+
Run Lighthouse audit in Chrome DevTools:
- Performance: Target 90+
- Accessibility: Target 95+
- Best Practices: Target 90+
- SEO: Target 90+
- Light Theme: Finance-themed with green (growth), blue (trust), gold (wealth)
- Dark Theme: Purple/indigo accents with smooth transitions
- Balance Cards: Individual gradient colors with matching glow effects
- Charts: Pastel colors for better visibility
- Glassmorphism: Frosted glass effect on cards and sections
- Hover Animations: Lift, scale, and glow effects
- Gradient Backgrounds: Animated multi-color gradients
- Background Patterns: Subtle finance-themed patterns
- Smooth Transitions: All interactions have smooth animations
Edit CSS variables in styles/main.css:
:root {
--primary: #0891b2;
--success: #10b981;
--danger: #ef4444;
/* ... */
}Edit colors array in js/modules/charts.js:
this.colors = [
'#FFB6C1', // Pastel Pink
'#89CFF0', // Baby Blue
// ... add more colors
];Edit the category options in js/app.js in the updateCategoryOptions() method
- Service Worker for offline functionality
- Import data from JSON/CSV
- Multi-currency support
- Advanced analytics and reports
- Data backup to cloud
- Budget recommendations using AI
- Bill reminders and notifications
- Category-wise spending goals
- Monthly/yearly financial reports
- Data visualization improvements
- Mobile app version
- Clean, readable code with comments
- Consistent naming conventions
- Modular architecture
- Error handling
- No external dependencies
- Follows ES6+ best practices
This is a learning project, but suggestions are welcome!
Free to use for learning purposes.
Tuhin Mondal
- Roll No: PST-25-0308
- Email: tuhinrock121@gmail.com
Shelly Chahar
- Roll No: PST-25-0246
- Email: shellychahar57@gmail.com
Institution: Polaris School of Technology
Program: B.Tech CSE - 1st Year (2025 Sem1C)
Project Type: OJT Product Development
- Built as part of On-the-Job Training (OJT) project
- Special thanks to our mentors and instructors
- Inspired by modern finance management applications
Happy Tracking! ๐ธ
Empowering Financial Freedom, One Transaction at a Time


