Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Here's the PR content in markdown:
Add Feedback System, Progress Indicator, and Comprehensive Tests
Summary
Add Typeform-style feedback modal with 3-step flow (rating, improvements, text feedback)
Add progress indicator showing translation stages (uploading, translating, complete)
Add feedback button to footer
Add backend /feedback endpoint with email support
Add comprehensive test coverage for both backend and frontend
Changes
Backend:
New /feedback POST endpoint in app.py for submitting user feedback
Email support via SMTP when configured (falls back to console logging)
Pydantic model for feedback validation
Frontend Components:
FeedbackModal - 3-step modal with emoji rating, improvement chips, and text input
ProgressIndicator - Visual progress bar with stage indicators during translation
Updated Footer with feedback button
Frontend Tests (57 tests):
API client tests (getSheets, translateFile, submitFeedback)
Utility function tests (cn, formatFileSize, getFileExtension, isValidExcelFile, generateOutputFilename)
ProgressIndicator component tests
FeedbackModal component tests
Backend Tests (14 new tests):
/sheets endpoint tests (5 tests)
/feedback endpoint tests (9 tests)
Test plan
Run backend tests: python -m pytest tests/test_api.py -v (26 tests pass)
Run frontend tests: npm run test:run (57 tests pass)
Build frontend: npm run build (no TypeScript errors)
Manual test: Upload file and verify progress indicator appears during translation
Manual test: Click feedback button in footer and complete 3-step flow
Manual test: Verify feedback is logged to console (or sent via email if SMTP configured)