Implement the four core frontend pages for the DAK Zweitmeinungs-Portal:
- DashboardPage: KPI cards, weekly stacked bar chart, fallgruppen donut chart, year selector
- CasesPage: filterable/searchable paginated table with detail slide-out and inline ICD editing
- ImportPage: CSV upload with preview/confirm, ICD Excel upload, import history log
- IcdPage: reuses CasesPage with pending-icd-only filter
Also adds shadcn/ui components (table, select, tabs, skeleton, scroll-area) and
new TypeScript types for import log and ICD import responses.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Task 19: TypeScript types for all API entities, axios client with JWT
refresh interceptor, auth service, AuthContext provider, ProtectedRoute
- Task 20: Login page with MFA support, Register page with invitation
token support, German labels, zod validation
- Task 21: Responsive sidebar with role-aware navigation, header with
user dropdown, AppLayout with Sheet for mobile, full React Router setup
with placeholder pages for all routes
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Scaffold the DAK Zweitmeinungs-Portal frontend with:
- Vite 7.3 + React 19 + TypeScript 5.9
- Tailwind CSS v4 with @tailwindcss/vite plugin
- shadcn/ui (new-york style, neutral base color) with button, input, label, card components
- Path alias @/* -> src/* configured in tsconfig and vite
- API proxy: /api/* -> http://localhost:8000
- Core deps: react-router-dom, axios, recharts
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Initialize project structure with backend/app/ package layout
- Add FastAPI app with CORS middleware and health check endpoint
- Add Pydantic Settings config with DB, JWT, SMTP, and app settings
- Add SQLAlchemy database engine and session management
- Add requirements.txt with all dependencies (FastAPI, SQLAlchemy, Alembic, etc.)
- Add .env.example template and .gitignore
- Add empty frontend/ and backend test scaffolding
- Include project specification and design/implementation plans
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>