Skip to content

hanakassahun/expense-tracker

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 

Repository files navigation

Enhanced Expense Tracker Dashboard

A modern, feature-rich finance dashboard with expense tracking, analytics, and budget management built with React, Tailwind CSS, and Framer Motion.

Features

Core Functionality

  • Expense & Income Tracking: Add, edit, and delete financial transactions
  • Category Management: Organize transactions by custom categories
  • Real-time Analytics: Visual charts and insights into spending patterns
  • Budget Management: Set monthly budgets with progress tracking
  • Dark/Light Theme: Toggle between themes for comfortable viewing

Advanced Features

  • Recurring Transactions: Set up automatic recurring bills and income
  • Savings Goals: Track progress toward financial objectives
  • Multi-Account Support: Manage multiple bank accounts and balances
  • Multi-Currency Support: Handle different currencies (USD, EUR, GBP, JPY, CAD)
  • Smart Notifications: Budget alerts and transaction confirmations

Enhanced Analytics

  • Spending Trends: 7-day spending patterns with line charts
  • Category Breakdown: Pie charts showing expense distribution
  • Top Categories: Ranked spending analysis
  • Account Balances: Real-time account balance tracking

Data Management

  • Export/Import: JSON and CSV data export/import functionality
  • Backup & Restore: Automatic local storage with manual backup options
  • Data Analytics: Comprehensive data insights and statistics
  • Privacy First: All data stored locally, no external services

User Experience

  • Responsive Design: Mobile-first approach with touch-friendly interface
  • Smooth Animations: Framer Motion powered transitions
  • Keyboard Shortcuts: Quick actions for power users
  • Accessibility: High contrast and screen reader support

Getting Started

Prerequisites

  • Node.js 16+
  • npm or yarn

Installation

# Clone the repository
git clone expense-tracker
cd expenseProj

# Install dependencies
npm install

# Start development server
npm run dev

# Build for production
npm run build

Usage

  1. Add Transactions: Use the "Add Transaction" form to record expenses and income
  2. Set Budget: Configure your monthly budget in the Budget Progress card
  3. Create Goals: Set up savings goals with target amounts and dates
  4. Recurring Items: Set up automatic recurring transactions
  5. Export Data: Use the Data Manager to backup your financial data

Architecture

Tech Stack

  • Frontend: React 18 with Hooks
  • Styling: Tailwind CSS with custom components
  • Animations: Framer Motion for smooth transitions
  • Charts: Recharts for data visualization
  • Icons: Lucide React for consistent iconography
  • Date Handling: date-fns for date manipulation

Component Structure

src/
├── components/
│   ├── AddTransaction.jsx      # Transaction input form
│   ├── AnalyticsDashboard.jsx  # Charts and analytics
│   ├── BalanceCard.jsx         # Balance overview
│   ├── BudgetProgress.jsx      # Budget tracking
│   ├── DataManager.jsx         # Import/export functionality
│   ├── FilterPanel.jsx         # Search and filtering
│   ├── NotificationCenter.jsx  # User notifications
│   ├── RecurringTransactions.jsx # Recurring transaction management
│   ├── SavingsGoals.jsx        # Goal tracking
│   ├── SettingsPanel.jsx       # App configuration
│   └── TransactionList.jsx     # Transaction display
├── App.jsx                     # Main application component
└── index.css                   # Global styles and utilities

State Management

  • Local State: React useState for component-level state
  • Persistent Storage: localStorage for data persistence
  • Real-time Updates: Automatic data synchronization
  • State Sharing: Props drilling for component communication

Customization

Themes

  • Light Mode: Clean, professional appearance
  • Dark Mode: Easy on the eyes for low-light environments
  • Custom Colors: Extensible color scheme system

Styling

  • Tailwind Classes: Utility-first CSS approach
  • Custom Components: Reusable component classes
  • Responsive Breakpoints: Mobile, tablet, and desktop layouts
  • Animation Classes: Predefined motion utilities

Responsive Design

Breakpoints

  • Mobile: 320px - 768px (single column layout)
  • Tablet: 768px - 1024px (two column layout)
  • Desktop: 1024px+ (full feature layout)

Mobile Features

  • Touch-friendly buttons and inputs
  • Swipe gestures for navigation
  • Optimized spacing for small screens
  • Collapsible sections for better UX

Security & Privacy

Data Storage

  • Local Storage: All data stored in browser
  • No External APIs: Complete privacy and offline functionality
  • Data Encryption: Local encryption for sensitive information
  • Export Control: Full control over data export

Privacy Features

  • No data collection
  • No analytics tracking
  • No third-party services
  • Complete user control

Performance

Optimization

  • Lazy Loading: Components load on demand
  • Memoization: React.memo for expensive calculations
  • Efficient Rendering: Optimized re-render cycles
  • Bundle Splitting: Code splitting for better performance

Metrics

  • First Contentful Paint: < 1.5s
  • Largest Contentful Paint: < 2.5s
  • Cumulative Layout Shift: < 0.1
  • First Input Delay: < 100ms

Testing

Test Coverage

  • Unit Tests: Component functionality testing
  • Integration Tests: Feature workflow testing
  • E2E Tests: User journey testing
  • Accessibility Tests: Screen reader and keyboard navigation

Quality Assurance

  • ESLint: Code quality and consistency
  • Prettier: Code formatting
  • TypeScript: Type safety (optional)
  • Performance Monitoring: Bundle size and runtime metrics

Roadmap

Upcoming Features

  • Cloud Sync: Optional cloud backup and sync
  • Receipt Upload: Image capture and storage
  • Investment Tracking: Portfolio management
  • Tax Reporting: Annual tax summaries
  • Mobile App: Native mobile applications

Future Enhancements

  • AI Insights: Smart spending recommendations
  • Social Features: Family budget sharing
  • API Integration: Bank account connectivity
  • Advanced Analytics: Machine learning insights

Contributing

Development Setup

  1. Fork the repository
  2. Create a feature branch
  3. Make your changes
  4. Add tests if applicable
  5. Submit a pull request

Code Standards

  • Follow React best practices
  • Use TypeScript for type safety
  • Maintain consistent formatting
  • Write comprehensive documentation

License

This project is licensed under the MIT License - see the LICENSE file for details.

Acknowledgments

  • React Team: For the amazing framework
  • Tailwind CSS: For the utility-first CSS framework
  • Framer Motion: For smooth animations
  • Recharts: For beautiful data visualization
  • Lucide: For consistent iconography

Support

  • Issues: Report bugs via GitHub Issues
  • Discussions: Join community discussions
  • Documentation: Check the docs for help
  • Contributing: See CONTRIBUTING.md for guidelines

Built with ❤️ using modern web technologies

About

A modern expense tracker with budgeting, analytics, recurring transactions, and savings goals — built with React, Tailwind CSS, and Framer Motion.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors