Non-Functional Requirements
Non-Functional Requirements (NFR): {{PROJECT_NAME}}Drop — Fintech Payment App
Project:
{{PROJECT_NAME}}Drop — Remittance + QR Payments Version:{{VERSION}}1.0 Date:{{DATE}}2026-02-23 Author:{{AUTHOR}}John (AI Director) Status:Draft | In Review |Approved Reviewers:{{REVIEWERS}}Alem Bašić (CEO)
Document History
| Version | Date | Author | Changes |
|---|---|---|---|
| 0.1 | Initial |
1. NFR Overview
| Category | # Requirements | Highest Priority | Owner |
|---|---|---|---|
| Performance | John (Tech |
||
| Scalability | Must Have | ||
| Availability | Must Have | John / DevOps | |
| Security | Critical | ||
| Reliability | Must Have | ||
| Usability | Should Have | ||
| Compatibility | Must Have | ||
| Maintainability | Should Have | ||
| Compliance | Critical | ||
| Data | Must Have |
2. Performance Requirements
| ID | Requirement | Metric | Target | Measurement Conditions | Priority | |
|---|---|---|---|---|---|---|
| NFR-P01 | Page load time (initial) | Time to Interactive | < 3 seconds | 4G connection, cold cache | Lighthouse |
Must Have |
| NFR-P02 | ||||||
| API response time (standard) | p95 response time | < 500ms | Normal load ( |
APM |
Must Have | |
| NFR- |
API response time ( |
p95 response time | < |
Normal load | ||
| NFR- |
Database query time | p95 query time | < |
Normal load | Must Have | |
| NFR- | ||||||
| Core Web Vitals: LCP | Largest Contentful Paint | < 2.5 seconds | Mobile, 4G | Lighthouse | Must Have | |
| NFR- |
< |
3. Scalability Requirements
| ID | Requirement | Metric | Priority | ||||
|---|---|---|---|---|---|---|---|
| NFR-S01 | Concurrent users | ||||||
| Load testing | Must Have | ||||||
| NFR- | Database |
Must Have | |||||
| NFR- |
API rate limits | Max requests per |
Must Have | ||||
| NFR- |
< 1GB on Fly.io persistent volume | Storage monitoring | Should Have | ||||
4. Availability Requirements
| ID | Requirement | Target | Exclusions | Priority | |
|---|---|---|---|---|---|
| NFR-A01 | System uptime SLA | ≥ |
Monthly rolling | Scheduled maintenance (advance notice) | Must Have |
| NFR-A02 | Scheduled maintenance window | Max |
Monthly | Must Have | |
| NFR-A03 | Maintenance |
≥ |
Per event | Emergency patches: |
Must Have |
| NFR-A04 | RPO (Recovery Point Objective) | Max |
Per incident | Must Have | |
| NFR-A05 | RTO (Recovery Time Objective) | System restored within |
Per incident | Must Have | |
| NFR-A06 | Database backup |
Ongoing | Must | ||
SLA Calculation Reference:
| Uptime % | Monthly Downtime | |
|---|---|---|
| 99.9% | 43.8 minutes | |
| 99.5% | 3.6 hours | |
| 99.0% | 7.3 hours |
5. Security Requirements
Context: Drop is a fintech app handling real money flows. Security is Critical priority. See security/drop-security-rapport.md for full audit (score: 57/100 pre-Phase 0.5; target: 80/100 post-hardening).
| ID | Requirement | Category | Target / Standard | Priority | |
|---|---|---|---|---|---|
| NFR-SEC01 | Authentication |
Auth | Code review + |
Must Have | |
| NFR-SEC02 | Password |
Auth | Must Have | ||
| NFR-SEC03 | Must Have | ||||
| NFR-SEC04 | Must Have | ||||
| NFR-SEC05 | Must Have | ||||
| NFR-SEC06 | Input validation | Injection |
All inputs sanitized server-side; parameterized |
Must Have | |
| NFR-SEC07 | XSS prevention | Injection |
CSP |
OWASP ZAP |
Must Have |
| NFR-SEC08 | Must Have | ||||
| NFR-SEC09 | Must Have | ||||
| NFR-SEC10 | Audit logging | Compliance | All auth events, |
Must Have | |
| NFR-SEC11 | Must Have | ||||
| NFR-SEC12 | |||||
| Penetration testing | Operations | Third-party report | Should Have |
6. Reliability Requirements
| ID | Requirement | Metric | Target | Priority | |
|---|---|---|---|---|---|
| NFR-R01 | Application error rate | 5xx errors / total requests | < 0.1% | Must Have | |
| NFR-R02 | |||||
| NFR-R03 | Average recovery time |
Incident |
|||
| NFR-R04 | Must Have | ||||
| NFR-R05 | |||||
| Health check |
System |
GET /api/health returns 200 |
Must Have |
7. Usability Requirements
| ID | Requirement | Target | Priority | |
|---|---|---|---|---|
| NFR-U01 | New user completes |
Usability testing | Must Have | |
| NFR-U02 | Usability testing | Must Have | ||
| NFR-U03 | Must Have | |||
| NFR-U04 | Manual testing | Must Have | ||
| NFR-U05 | ||||
| Content audit | Should Have |
8. Compatibility Requirements
| ID | Requirement | Category | Target | Priority |
|---|---|---|---|---|
| NFR-C01 | Web browsers | Browser | Chrome 100+, Firefox 100+, Safari 16+, Edge 100+ | Must Have |
| NFR-C02 | Mobile browsers | Browser | Safari iOS 15+, Chrome Android 100+ (primary platform) | Must Have |
| NFR-C03 | Must Have | |||
| NFR-C04 | ||||
| API | ||||
| Should Have |
9. Maintainability Requirements
| ID | Requirement | Metric | Target | Priority | |
|---|---|---|---|---|---|
| NFR-M01 | Test coverage | % |
≥ 80% overall; |
CI coverage |
Must Have |
| NFR-M02 | Must Have | ||||
| NFR-M03 | Should Have | ||||
| NFR-M04 | Should Have | ||||
| NFR-M05 | |||||
| Must Have |
10. Compliance Requirements
| ID | Regulation | Applicability | Requirement | Technical Implementation | Priority | |
|---|---|---|---|---|---|---|
| NFR-COMP01 | GDPR (EU) | Lawful |
Must Have | |||
| NFR-COMP02 | GDPR — | |||||
| Yes | Collect only data necessary for stated purpose | BA review of |
Must Have | |||
| NFR-COMP03 | PSD2 (EU) | Yes — payment initiation | PISP/AISP registration with Finanstilsynet; or operate under bank partner licence | Finanstilsynet registration | Must Have | |
| NFR-COMP04 | ||||||
| NFR-COMP05 | No card |
|||||
| NFR-COMP06 | DORA (EU) | Yes | ICT risk management; incident reporting framework | Incident report template; business continuity | Should Have | |
| NFR-COMP07 | Norwegian Personvernloven | Legal review | Must Have | |||
| NFR- |
/learning-opportunity on violations |
Must Have |
11. Data Requirements
| ID | Requirement | Category | Target | Implementation | Priority |
|---|---|---|---|---|---|
| NFR-D01 | Data retention — user data | Retention | Scheduled deletion job (GDPR Art.17) | Must Have | |
| NFR-D02 | Data retention — audit logs | Retention | Log rotation policy | Must Have | |
| NFR-D03 | Must Have | ||||
| NFR-D04 | Must Have | ||||
| NFR-D05 | |||||
| Portability | User can export their data | ||||
| Data | export |||||
| Should Have |
12. NFR Testing & Verification Plan
| NFR Category | Testing Method | Tools | Frequency | Pass Criteria |
|---|---|---|---|---|
| Performance | All NFR-P targets met | |||
| Security | ||||
| Availability | Ongoing |
|||
| Compliance | Legal review + audit | Manual + |
Pre-launch + annual | All compliance items verified |
| Reliability | Unit + integration tests | Vitest (db.test.ts) | Per commit | Zero failed integrity tests |
Approval
| Role | Name | Date | Signature |
|---|---|---|---|
| Author | John (AI Director) | 2026-02-23 | Approved |
| (AI) | |||
| Tech Lead | John | 2026-02-23 | |
| Approved | |||
| AI Director (John) | John | 2026-02-23 | Approved |
| Alem Bašić | TBD |