- Add TranslationLog model to track translation API usage per task
- Integrate Dify API actual price (total_price) into translation stats
- Display translation statistics in admin dashboard with per-task costs
- Remove unused Export and Settings pages to simplify frontend
- Add GET /api/v2/admin/translation-stats endpoint
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Redesign LoginPage with minimal professional style
- Remove animated gradient backgrounds and floating orbs
- Remove marketing claims (99% accuracy, enterprise-grade)
- Center login form with clean card design
- Add multi-language support (zh-TW, en-US)
- Create LanguageSwitcher component in sidebar
- Add en-US.json translation file
- Persist language preference in localStorage
- Remove unused top header bar with search
- Move language switcher to sidebar user section
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Backend cleanup:
- Remove ocr_service_original.py (legacy OCR service, replaced by ocr_service.py)
- Remove preprocessor.py (unused, functionality absorbed by layout_preprocessing_service.py)
- Remove pdf_font_manager.py (unused, never referenced by any service)
Frontend cleanup:
- Remove MarkdownPreview.tsx (unused component)
- Remove ResultsTable.tsx (unused, replaced by TaskHistoryPage)
- Remove services/api.ts (legacy API client, migrated to apiV2)
- Remove types/api.ts (legacy types, migrated to apiV2.ts)
API migration:
- Add export rules CRUD methods to apiClientV2
- Update SettingsPage.tsx to use apiClientV2
- Update Layout.tsx to use only apiClientV2 for logout
This reduces ~1,500 lines of redundant code and unifies the API client.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Changes:
- Add uploadFile() method to apiClientV2 for single file uploads
- Update UploadPage to use apiClientV2 instead of apiClient
- Change upload logic to iterate files and collect task IDs
- Add navigation to /login after logout in Layout component
Fixes:
- 403 Forbidden error on file upload (token mismatch between V1/V2 APIs)
- Logout button not redirecting to login page after clearing auth
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
Frontend Features:
- Add ProtectedRoute component with token expiry validation
- Create AdminDashboardPage with system statistics and user management
- Create AuditLogsPage with filtering and pagination
- Add admin-only navigation (Shield icon) for ymirliu@panjit.com.tw
- Add admin API methods to apiV2 service
- Add admin type definitions (SystemStats, AuditLog, etc.)
Token Management:
- Auto-redirect to login on token expiry
- Check authentication on route change
- Show loading state during auth check
- Admin privilege verification
Backend Testing:
- Add pytest configuration (pytest.ini)
- Create test fixtures (conftest.py)
- Add unit tests for auth, tasks, and admin endpoints
- Add integration tests for complete workflows
- Test user isolation and admin access control
Documentation:
- Add TESTING.md with comprehensive testing guide
- Include test running instructions
- Document fixtures and best practices
Routes:
- /admin - Admin dashboard (admin only)
- /admin/audit-logs - Audit logs viewer (admin only)
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
Complete redesign of frontend interface with focus on usability, visual hierarchy, and professional appearance:
**Design System:**
- Implemented clean blue color theme (#3B82F6) with professional palette
- Created consistent spacing, shadows, and typography system
- Added reusable utility classes (page-header, section, status-badge-*)
- Removed excessive gradients and decorative effects
**Layout Architecture:**
- Redesigned main layout with 256px sidebar navigation
- Sidebar includes logo, navigation with descriptions, and user profile
- Main content area with search bar and scrollable content
- Replaced horizontal navigation with vertical sidebar pattern
**Page Redesigns:**
1. LoginPage: Split-screen design with branding (left) and clean form (right)
- Feature highlights with icons and statistics
- Mobile responsive design
- Professional gradient background with subtle pattern
2. UploadPage: Added 3-step visual progress indicator
- Better file organization with summary and status badges
- Clear action bar with confirmation message
- Improved file list presentation
3. ProcessingPage: Enhanced progress visualization
- Large progress bar with percentage display
- 4-column stats grid (Completed, Processing, Failed, Total)
- Clean file status list with processing times
4. ResultsPage: Improved 5-column layout (2 for list, 3 for preview)
- Added stats cards for accuracy, processing time, and text blocks
- Better preview panel with detailed metrics
- Export and translate action buttons
5. ExportPage: Better organization with 2-column layout
- Visual format selection with icons (TXT, JSON, Excel, Markdown, PDF)
- Improved form controls and option organization
- Sticky preview sidebar showing current configuration
**Component Updates:**
- Updated Button component with proper variants
- Enhanced Card component with hover effects
- Maintained FileUpload component functionality
- Added lucide-react for modern iconography
**Technical Improvements:**
- Fixed Tailwind CSS v4 compatibility issues with @apply
- Removed decorative animations in favor of functional ones
- Improved accessibility with proper labels and ARIA attributes
- Better color contrast and readability
This redesign transforms the interface from a basic layout to a professional, enterprise-ready application with clear visual hierarchy and excellent usability.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>