| QR-01: p95 latency <400ms at 300 concurrent users |
Async FastAPI + asyncpg connection pool |
| QR-02: Availability >=99.5% over 30 days |
Scheduled health checks (availability.yml, GitHub Actions) |
| QR-03: Average accessibility score >=90 across primary pages |
Semantic markup / component structure in the Next.js frontend |
| QR-04: Average performance score >=90 across primary pages |
Next.js static/SSR rendering, code splitting |
| QR-05: Maintainability -- >=80% automated test coverage |
White-box unit testing (pytest, backend; Jest, frontend); object storage decoupled via boto3's S3-compatible interface (local MinIO, swappable for any S3-compatible provider) |
| QR-06: Reliability - 99.9% uptime, recovery within 5 minutes |
Azure App Service Health Check (rollback); same GitHub Actions monitor as QR-02 |
| QR-07: Security - user passwords never stored in plaintext or reversibly |
bcrypt one-way password hashing |