A modern, feature-rich expense tracking application built with Streamlit and SQLite. Track personal and group expenses, analyze spending patterns, and manage budgets with an intuitive interface.
- Add, edit, and delete transactions (expenses/income)
- Dashboard with spending analytics and visualizations
- Monthly budget tracking (overall and per category)
- Advanced filtering by date, category, and transaction type
- Interactive charts and financial insights
- Split expenses with friends and family
- Equal or custom amount splitting
- Track who paid and who owes
- Settlement tracking and history
- Group expense dashboard
- Daily/Weekly/Monthly/Yearly trends
- Category-wise expense breakdown
- Interactive charts with Plotly
- Spending pattern analysis
- Budget utilization tracking
- Dark/Light theme support
- Responsive design
- Interactive dashboards
- Real-time updates
- Intuitive navigation
- Frontend: Streamlit
- Backend: Python
- Database: SQLite
- Authentication: Passlib (bcrypt)
- Visualization: Plotly
- Data Processing: Pandas
streamlit==1.37.1
pandas==2.2.2
plotly==5.23.0
passlib[bcrypt]==1.7.4
python-dateutil==2.9.0.post0
- Clone the repository:
git clone https://github.com/Naveen0030/ExpenSync.git
cd ExpenSync- Create and activate a virtual environment:
# Windows
python -m venv venv
venv\Scripts\activate
# Linux/macOS
python3 -m venv venv
source venv/bin/activate- Install dependencies:
pip install -r requirements.txt- Run the application:
streamlit run streamlit_app.pyThe application will automatically create the database file (expense_tracker.db) when first run.
- Register a new account with your email
- Log in with your credentials
- Session management handles authentication state
- Click "Add Transaction" in the navigation
- Fill in transaction details (amount, category, date, etc.)
- Choose between expense or income
- Add optional details like payment method and tags
- Navigate to "Group Expenses"
- Create new group expenses
- Split amounts equally or custom
- Track and settle payments
- View group expense history
- View spending trends
- Analyze category-wise expenses
- Track budget utilization
- Export data as needed
- Set monthly budgets
- Track overall and category-wise budgets
- View budget utilization progress
- Get insights on spending patterns
- Data is stored locally in SQLite database
- Automatic database creation and schema management
- Support for data import/export
- Secure password hashing
- Password hashing using bcrypt
- Email format validation
- Input validation and sanitization
- Secure session management
The application uses the following main tables:
users: User account informationtransactions: Individual financial transactionsbudgets: Monthly budget settingsgroup_expenses: Shared expense recordsgroup_expense_shares: Individual shares in group expenses
Feel free to:
- Report bugs
- Suggest features
- Submit pull requests
- Streamlit for the amazing framework
- The Python community for excellent libraries
- Contributors and users of this project