A Streamlit application for extracting and tracking financial transactions from bank email notifications.
- Extract transaction details from bank notification emails using regex pattern matching
- Track and visualize your spending habits over time
- Filter transactions by date range, type, and more
- Secure authentication with Google OAuth
This repository includes a GitHub Actions workflow that automatically creates and updates a HuggingFace Space with the same name as your repository. The Space will be a Streamlit app that mirrors this repository.
To use the HuggingFace sync feature, you'll need:
- A HuggingFace account
- A HuggingFace API token with write access
-
Get a HuggingFace API Token:
- Go to HuggingFace Settings → Access Tokens
- Create a new token with
writepermissions - Copy the token value
-
Add Repository Secrets in GitHub:
- Go to your GitHub repository → Settings → Secrets and Variables → Actions
- Add the following secrets:
HF_TOKEN: Your HuggingFace API tokenHF_USERNAME: Your HuggingFace username- Optional:
EMAIL_SECRETandGOOGLE_CLIENT_SECRETif your app needs them
-
Trigger the Workflow:
- The workflow will run automatically on every push to the main/master branch
- You can also manually trigger it from the Actions tab in GitHub
The workflow uses the official Hugging Face Spaces GitHub Action to:
- Check if your Hugging Face token works
- Create a Hugging Face Space with the same name as your GitHub repository
- Configure the Space with Streamlit as the SDK
- Deploy your code to the Space
- Set up any required secrets
If you encounter issues:
- Authentication Errors: Make sure your HF_TOKEN has write permissions and hasn't expired
- Permission Issues: Verify your Hugging Face account has permission to create Spaces
- Name Conflicts: Ensure no other Space with the same name already exists
- Missing Variables: Check that all required secrets are set in GitHub
To run this application locally:
# Clone the repository
git clone https://github.com/yourusername/Finance-Tracker.git
cd Finance-Tracker
# Install dependencies
pip install -r requirements.txt
# Run the Streamlit app
streamlit run app.pyThe application requires Google OAuth credentials to access Gmail:
- Create a Google Cloud project
- Enable the Gmail API
- Create OAuth credentials
- Download the credentials as
credentials.jsonand place it in the project root
This project is licensed under the MIT License - see the LICENSE file for details.