نظرة عامة
ExpenseTracker
ExpenseTracker is a full-featured, multi-household budget management web application built with Flask. It allows families, groups, and organizations to track income, expenses, and budgets with role-based access control and real-time financial insights.
Key Concepts
| Concept | Description |
|---|---|
| Household | A family or group container (each has isolated data) |
| Users | Members of a household with different roles |
| Transactions | Income or expense entries |
| Budgets | Monthly spending limits (household and per-category) |
| Categories | Hierarchical income/expense classifications (200+ predefined) |
Multi-Device Support
| Device | OS | Status |
|---|---|---|
| Windows PC | Windows 10/11 | Fully Supported |
| MacBook | macOS 12+ | Fully Supported |
| Linux PC | Ubuntu/Debian | Fully Supported |
| Raspberry Pi | Raspberry Pi OS | Fully Supported |
| Mobile Browser | iOS/Android | Responsive |
Features
Core Features
| Feature | Description |
|---|---|
| Multi-Household | Complete data isolation between households |
| Role-Based Access | Admin and User roles |
| Transaction CRUD | Create, read, update, delete transactions |
| Hierarchical Categories | 200+ predefined categories with parent-child relationships |
| Monthly Budgets | Set monthly household income targets |
| Category Budgets | Set spending limits per category |
| Real-Time Insights | Projections, variance analysis, YTD calculations |
| Threaded Comments | Comment on transactions with nested replies |
User Features
| Feature | Description |
|---|---|
| User Profiles | Custom avatars and display names |
| Messaging | Internal user-to-user messaging |
| Transaction Comments | All household members can comment |
| Notifications | System notifications for comments and messages |
| Password Change | Secure password management |
Admin Features
| Feature | Description |
|---|---|
| User Management | Create, view, delete users |
| Category Management | Add, toggle, delete custom categories |
| Budget Setting | Set monthly household and category budgets |
| Backup Management | Create, download, restore database backups |
| Logs Viewer | View application, error, and access logs |
| Audit Trail | Track all user actions |
Reports & Analytics
| Feature | Description |
|---|---|
| Daily Reports | Transactions for a specific day |
| Weekly Reports | Transactions for a specific week |
| Monthly Reports | Full month summary with category breakdown |
| Yearly Reports | Full year summary with monthly breakdown |
| Custom Reports | Any date range you select |
| Export Formats | PDF, CSV, JSON, Excel |
| Cross-Household Reports | Reports across all households |
| Spending Variance | Track spending against averages |
| End-of-Month Projections | Forecast remaining balance |
| Year-to-Date Calculations | YTD income, expenses, remaining |
Security Features
| Feature | Description |
|---|---|
| CSRF Protection | Flask-WTF CSRF protection |
| Password Hashing | Werkzeug secure password hashing |
| Session Security | HttpOnly, SameSite cookies |
| Rate Limiting | Login attempt limiting |
| Role-Based Access | @role_required |
| Audit Logging | Track all user actions |
| XSS Protection | Jinja2 auto-escaping |
| SQL Injection Protection | SQLAlchemy ORM |
Technology Stack
| Layer | Technology | Version |
|---|---|---|
| Backend | Flask | 2.3.2 |
| ORM | SQLAlchemy | 3.0.5 |
| Database | SQLite (Dev) / PostgreSQL (Production) | - |
| Authentication | Flask-Login | 0.6.2 |
| Forms | Flask-WTF | 1.1.1 |
| Migrations | Flask-Migrate | 4.0.5 |
| Charts | Chart.js | 4.4.0 |
| Image Processing | Pillow | 10.1.0 |
| PDF Generation | reportlab | 4.0.4 |
| Excel Export | openpyxl | 3.1.2 |
| Frontend | HTML5, CSS3, JavaScript | - |
| Package Manager | uv / pip | - |
| Production Server | Gunicorn / Waitress | - |