An intelligent automation system that extracts, validates, and manages client data from multiple sources (HTML forms, email files, and invoice documents) with human-in-the-loop oversight. The platform eliminates manual data entry while maintaining accuracy through supervised approval workflows, centralizing all client and financial data in Google Sheets.
The TechFlow Automation Platform addresses the challenge of processing diverse client data sources by combining AI-powered extraction with human oversight. The system automatically scans for new documents, extracts structured data using LLMs, and presents results in an intuitive dashboard where users can review, edit, approve, or reject extractions before they're saved to Google Sheets.
- Multi-Format Data Extraction: Processes HTML contact forms, EML email files, and HTML invoices
- AI-Powered Intelligence: Uses OpenAI GPT models for adaptive extraction across varying document structures
- Human-in-the-Loop Workflow: No data is persisted without explicit human approval
- Real-Time Dashboard: WebSocket-powered live updates when new items are ready for review
- Confidence Scoring: AI-generated confidence scores help prioritize manual review
- Validation & Warnings: Automatic validation of email formats, phone numbers, and invoice calculations
- Google Sheets Integration: Approved data automatically syncs to organized spreadsheets
- Error Resilience: Graceful handling of malformed files and API failures
There are 2 diagrams.
Both are explained in the Report.
For setup instructions, see SETUP.md.
- Frontend Dashboard: http://localhost:3000
- Backend API: http://localhost:8000
- API Documentation: http://localhost:8000/docs
See USER_GUIDE.md for detailed usage instructions.
- Scan for Files: Click "Scan for New Files" to discover unprocessed documents
- Review Extractions: View extracted data with confidence scores and warnings
- Edit if Needed: Click "Edit" to modify any field values
- Approve or Reject: Approve to save to Google Sheets, or reject to discard
- Monitor Progress: Real-time notifications when new items are ready for review
- FastAPI - Modern async web framework
- Pydantic - Data validation and settings
- BeautifulSoup4 - HTML parsing
- OpenAI SDK - AI-powered extraction
- gspread - Google Sheets integration
- Redis - PubSub for real-time events
- WebSocket - Real-time updates
- structlog - Structured logging
- Next.js 14 - React framework
- TypeScript - Type safety
- TanStack Query - Server state management
- shadcn/ui - Component library
- Tailwind CSS - Styling
- WebSocket - Real-time updates
The project uses automated code quality checks:
Backend (Python):
- pre-commit hooks run on every commit
- Checks: Black formatting, Ruff linting, trailing whitespace
- Runs unit tests (integration tests excluded for speed)
- Setup:
cd backend && pre-commit install
Frontend (TypeScript):
- Husky hooks run on every commit
- Checks: ESLint, TypeScript compilation
- Runs tests on pre-push
- Automatically configured via npm install
docker compose run --rm backend pytest # Run all tests
docker compose run --rm backend pytest --cov=app # Run with coverage
docker compose run --rm backend pytest tests/integration/ # Run integration tests onlycd frontend
npm test # Run all tests
npm run test:coverage # Run with coverage- File Discovery: System scans configured directories for new files
- Extraction: Files are parsed using hybrid approach:
- AI-powered extraction attempted first (intelligent, handles variations)
- Rule-based parsing as fallback if AI fails or confidence is low
- Validation: Extracted data is validated (email format, calculations, etc.)
- Queue: Valid extractions are added to pending queue
- Notification: WebSocket notifies frontend of new items
- Review: User reviews extraction in dashboard
- Approval: User approves, edits, or rejects extraction
- Persistence: Approved data is written to Google Sheets
- Completion: Item is removed from queue
For issues or questions:
- Check SETUP.md for setup troubleshooting
- Review USER_GUIDE.md for usage help
- Check API documentation at http://localhost:8000/docs
- Review logs in
backend/logs/directory