Skip to content

SSravani14/BudgetTracker

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

3 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸ“Š Personal Budget Tracker

A sophisticated, modern web-based expense tracking application built with vanilla JavaScript that helps users manage their personal finances, track income/expenses, and visualize spending patterns with interactive charts.

πŸš€ Live Demo

Access the application: https://yourusername.github.io/BudgetTracker

✨ Features

πŸ’° Financial Management

  • βœ… Add Income - Track salary, freelance, investments, gifts
  • βœ… Add Expenses - Track food, transportation, housing, entertainment, etc.
  • βœ… Automatic Savings Calculation - Net savings = Income - Expenses
  • βœ… Transaction History - View all past transactions
  • βœ… Delete Transactions - Remove mistakes easily

πŸ“Š Monthly Breakdown

  • βœ… Monthly Navigation - Browse through different months
  • βœ… Monthly Totals - Income, expenses, and savings per month
  • βœ… Monthly Transactions - All transactions for selected month
  • βœ… Month Comparison - Compare spending across months

πŸ“ˆ Data Visualization

  • βœ… Interactive Charts - Pie chart showing expense breakdown by category
  • βœ… Real-time Updates - Charts update automatically when data changes
  • βœ… Category Analysis - See which categories you spend most on

πŸ’Ύ Data Persistence

  • βœ… SQLite Database - Real database with tables and relationships
  • βœ… Local Storage Backup - Database automatically saved to browser storage
  • βœ… Export/Import - Full database backup and restore functionality

🎯 Key Features

Overall Summary (All Time)

  • Total Income - Sum of all income transactions ever recorded
  • Total Expenses - Sum of all expense transactions ever recorded
  • Net Savings - Overall savings (Total Income - Total Expenses)

Monthly Breakdown

  • Monthly Navigation - Use arrow buttons to browse different months
  • Monthly Totals - See income, expenses, and savings for specific months
  • Monthly Transactions - View all transactions for the selected month
  • Automatic Organization - Transactions are automatically organized by month

πŸ› οΈ Technical Implementation

Frontend Technologies

  • HTML5 - Semantic markup and structure
  • CSS3 - Modern styling with Flexbox/Grid, animations, responsive design
  • Vanilla JavaScript (ES6+) - No frameworks, pure JavaScript
  • Chart.js - Interactive data visualizations
  • SQL.js - SQLite database in the browser
  • Font Awesome - Icons and visual elements

Architecture Patterns

  • Class-based Architecture - ES6 classes for organization
  • Dual Storage System - SQLite with Local Storage fallback
  • Event-driven - Event listeners for user interactions
  • Error Handling - Robust error handling with fallback modes

Key JavaScript Features Used

  • βœ… ES6 Classes - Object-oriented programming
  • βœ… Async/Await - Modern asynchronous programming
  • βœ… Array Methods - map(), filter(), reduce(), find()
  • βœ… Date Manipulation - Custom date handling
  • βœ… SQL Queries - Database operations with SQL
  • βœ… Error Handling - Try-catch blocks and user feedback
  • βœ… Form Validation - Input validation and user guidance

🎨 UI/UX Design

Design Principles

  • Modern & Clean - Minimalist design with beautiful gradients
  • Responsive - Works on desktop, tablet, and mobile
  • Intuitive - Easy to use with clear visual hierarchy
  • Accessible - Good contrast and readable fonts

Visual Elements

  • Gradient Backgrounds - Beautiful blue-purple gradients
  • Card-based Layout - Clean, organized information display
  • Interactive Elements - Hover effects and smooth transitions
  • Color-coded Data - Green for income, red for expenses, blue for savings

πŸ“± Responsive Design

  • Mobile-first Approach - Optimized for mobile devices
  • Flexible Grid Layouts - Adapts to different screen sizes
  • Touch-friendly - Large buttons and easy navigation
  • Cross-browser Compatible - Works on all modern browsers

πŸ”§ Development Setup

Local Development

# Clone the repository
git clone https://github.com/yourusername/BudgetTracker.git
cd BudgetTracker

# Start a local server (required for ES6 modules)
python3 -m http.server 8000

# Access the application
open http://localhost:8000

Why HTTP Server?

  • ES6 Modules require HTTP protocol (not file://)
  • CORS Policy prevents direct file access
  • Chart.js needs proper loading environment

πŸ“Š Data Flow

  1. User Input β†’ Form submission with transaction details
  2. Data Validation β†’ Check required fields and data types
  3. Database Storage β†’ Save to SQLite database with unique ID
  4. UI Update β†’ Refresh summary cards and transaction lists
  5. Chart Update β†’ Re-render expense breakdown chart
  6. Monthly Update β†’ Update monthly summary if applicable

🎯 Use Cases

Personal Finance Tracking

  • Track daily expenses and income
  • Monitor spending patterns
  • Calculate monthly savings
  • Set and track financial goals

Budget Analysis

  • See which categories consume most budget
  • Compare monthly spending trends
  • Identify areas for cost reduction
  • Plan future expenses

Financial Planning

  • Historical data for budgeting
  • Visual representation of spending
  • Monthly progress tracking
  • Goal setting and monitoring

πŸš€ GitHub Pages Deployment

Setup Instructions

  1. Fork or clone this repository
  2. Enable GitHub Pages in repository settings
  3. Set source to "Deploy from a branch"
  4. Select branch as "main" and folder as "/ (root)"
  5. Access your app at https://yourusername.github.io/BudgetTracker

File Structure for GitHub Pages

BudgetTracker/
β”œβ”€β”€ index.html              # Landing page
β”œβ”€β”€ simple-tracker.html     # Main application
β”œβ”€β”€ README.md              # Documentation
└── .gitignore             # Git ignore file

πŸ“ˆ Project Status

  • βœ… Core Functionality - Complete and working
  • βœ… Monthly Summary - Recently added and functional
  • βœ… Data Visualization - Charts working perfectly
  • βœ… Responsive Design - Mobile-friendly
  • βœ… Data Persistence - SQLite database working
  • βœ… User Experience - Clean, intuitive interface
  • βœ… GitHub Pages Ready - Optimized for hosting

πŸŽ‰ Ready to Use!

The Simple Tracker is fully functional and ready for daily use. It provides everything needed for personal expense tracking with a beautiful, modern interface and powerful monthly analysis features.

Start tracking your finances today! πŸš€

πŸ“„ License

This project is open source and available under the MIT License.

🀝 Contributing

Contributions, issues, and feature requests are welcome! Feel free to check the issues page.

πŸ“ž Support

If you have any questions or need help, please open an issue on GitHub.


Built with ❀️ using vanilla JavaScript, HTML5, CSS3, and SQLite

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published