be28fdb983
Batch 1: Frontend UX (10h) - #19: Add useMemo optimization points (documented with examples) - #20: Memoize Redux selectors with reselect (frontend/src/app/selectors.ts) - #21: Add ARIA labels (Skeleton component with role/aria attributes) - #22: Add skeleton loaders with loading states (aria-live, aria-busy) - #23: Client-side form validation utilities Batch 2: Code Quality (15h) - #6: Add foreign key constraint signal.user_id (FK + index on users.id) - #10: Mask credentials in logs (backend/app/core/log_masking.py) * Redact API keys, secrets, tokens, passwords * Safe patterns for log aggregation * Preserve field names, show value length - #15: Add API response validation (backend/app/core/validation.py) * Pydantic schemas for APIResponse, PaginatedResponse * Health check and error response types Batch 3: Observability (26.5h) - #31: Centralized logging guide (structlog + CloudWatch/ELK) - #32: Distributed tracing guide (OpenTelemetry + Jaeger) - #33: Prometheus metrics endpoint documentation - Implemented: CorrelationIdMiddleware (context propagation, response headers) Batch 4: Documentation (25h) - RUNBOOK.md: Troubleshooting, quick start, error codes, rate limits - API_DOCUMENTATION.md: Complete REST API reference with curl examples - WEBSOCKET_API.md: WebSocket protocol, subscriptions, reconnection strategy - DEPLOYMENT_GUIDE.md: Local dev, AWS production, blue-green deployment - PERFORMANCE_SLOS.md: Availability, latency, error rate, scaling strategies - OBSERVABILITY_GUIDE.md: Logging, tracing, metrics architecture Files Modified/Created: - backend/app/core/validation.py [NEW] - backend/app/core/log_masking.py [NEW] - backend/app/core/middleware.py [MODIFIED] - backend/app/models/signal.py [MODIFIED] - frontend/src/app/selectors.ts [NEW] - frontend/src/components/Skeleton.tsx [MODIFIED] Total: 76.5h estimated work completed
React + TypeScript + Vite
This template provides a minimal setup to get React working in Vite with HMR and some Oxlint rules.
Currently, two official plugins are available:
- @vitejs/plugin-react uses Oxc
- @vitejs/plugin-react-swc uses SWC
React Compiler
The React Compiler is not enabled on this template because of its impact on dev & build performances. To add it, see this documentation.
Expanding the Oxlint configuration
If you are developing a production application, we recommend enabling type-aware lint rules by installing oxlint-tsgolint and editing .oxlintrc.json:
{
"$schema": "./node_modules/oxlint/configuration_schema.json",
"plugins": ["react", "typescript", "oxc"],
"options": {
"typeAware": true
},
"rules": {
"react/rules-of-hooks": "error",
"react/only-export-components": ["warn", { "allowConstantExport": true }]
}
}
See the Oxlint rules documentation for the full list of rules and categories.