This project allows users to analyze PDF invoices interactively using Streamlit and Plotly. The app extracts transactions from the uploaded PDF, categorizes expenses automatically, and displays interactive tables and charts to visualize spending patterns. Perfect for personal finance tracking or simple financial data analysis.
- Upload PDF invoices and extract transactions automatically.
- Categorize expenses into Transport, Grocery, Phone/Internet, Bemol, and Others.
- Interactive bar chart showing total spending by category.
- Interactive pie chart showing percentage distribution of expenses.
- List all transactions for each category.
- Fully containerized with Docker for easy deployment.
- Python 3.9+ for backend and data processing.
- Streamlit for building the interactive web application.
- Pandas for data manipulation and analysis.
- pdfplumber for PDF extraction.
- Plotly Express for interactive visualizations.
- Docker for containerization and deployment.
- Python 3.9+
- Streamlit
- Pandas
- pdfplumber
- Plotly
-
Clone the repository:
git clone https://github.com/your-username/invoice-analysis.git cd invoice-analysis -
Using Docker (recommended):
# Build the Docker image docker build -t invoice-analysis . # Run the container docker run -p 8501:8501 invoice-analysis
Open your browser and go to:
http://localhost:8501 -
Using a Python virtual environment (optional):
# Create and activate virtual environment python -m venv venv source venv/bin/activate # Linux/Mac venv\Scripts\activate # Windows # Install dependencies pip install -r requirements.txt # Run the app streamlit run app.py
Contributions are welcome! Feel free to submit pull requests or report issues on the Issues page.
- Fork the project.
- Create a branch for your feature (
git checkout -b feature/new-feature). - Commit your changes (
git commit -am 'Add new feature'). - Push to the branch (
git push origin feature/new-feature). - Create a Pull Request with a detailed description of your changes.
This project is licensed under the MIT License.


