In development Data Analytics

ExpenseTracker

A Flask-based household budgeting app where admin sets income, users log shared expenses, and the system tracks spending with dashboards, reports, and charts.

Overview

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 -

Technology Stack

PythonFlaskPostgreSQLJavascriptChart.js