Full-stack application for tracking and analyzing grocery receipts from multiple supermarkets to support healthier shopping habits.
- PDF upload with drag & drop interface
- Automated German grocery receipt parsing
- Real-time processing status tracking
- Structured data extraction (items, totals, store info)
- Document management dashboard
- Search and filter capabilities
Backend: FastAPI, PostgreSQL, SQLModel, Alembic Frontend: React, TypeScript, TanStack Router, TanStack Query Processing: PyPDF2, regex-based text extraction UI: Tailwind CSS, Radix UI components
- RESTful API with background task processing
- Type-safe database models and API schemas
- Reactive frontend with optimistic updates
- Secure file storage and user isolation
# Backend
cd backend
uv sync
uv run alembic upgrade head
uv run uvicorn app.main:app --reload
# Frontend
cd frontend
npm install
npm run devPOST /api/v1/pdf/upload- Upload PDF filesGET /api/v1/pdf/documents- List user documentsGET /api/v1/pdf/documents/{id}- Get document detailsPOST /api/v1/pdf/search- Search documentsDELETE /api/v1/pdf/documents/{id}- Delete document