Non-Functional Requirements
Non-Functional Requirements (NFR): Drop — Fintech Payment App{{PROJECT_NAME}}
Project:
Drop — Remittance + QR Payments{{PROJECT_NAME}} Version:1.0{{VERSION}} Date:2026-02-23{{DATE}} Author:John (AI Director){{AUTHOR}} Status: Draft | In Review | Approved Reviewers:Alem Bašić (CEO){{REVIEWERS}}
Document History
| Version | Date | Author | Changes |
|---|---|---|---|
| 0.1 | Initial |
1. NFR Overview
| Category | # Requirements | Highest Priority | Owner |
|---|---|---|---|
| Performance | |||
| Scalability | |||
| Availability | |||
| Security | Critical | ||
| Reliability | |||
| Usability | |||
| Compatibility | |||
| Maintainability | |||
| Compliance | |||
| Data |
2. Performance Requirements
| ID | Requirement | Metric | Target | Measurement Conditions | Measurement Method | Priority |
|---|---|---|---|---|---|---|
| NFR-P01 | Page load time (initial) | Time to Interactive | < 3 seconds | 4G connection, cold cache | Lighthouse / WebPageTest | Must Have |
| NFR-P02 | Page load time (subsequent) | Time to Interactive | < 1.5 seconds | Warm cache | Lighthouse | Must Have |
| NFR-P03 | API response time (standard) | p95 response time | < 500ms | Normal load ( |
APM tool / k6 | Must Have |
| NFR- |
API response time ( |
p95 response time | < |
Normal load | ||
| NFR- |
Database query time | p95 query time | < |
Normal load | Must Have | |
| NFR- |
File upload throughput | Upload speed | {{SIZE}}MB in < {{TIME}}s | Single user | Load testing | {{PRIORITY}} |
| NFR-P07 | Search response time | p95 response time | < 1 second | Normal load | APM tool | Should Have |
| NFR-P08 | Report generation | Completion time | < {{TIME}} seconds | Normal load | APM tool | Could Have |
| NFR-P09 | Core Web Vitals: LCP | Largest Contentful Paint | < 2.5 seconds | Mobile, 4G | Lighthouse | Must Have |
| NFR- |
< |
3. Scalability Requirements
| ID | Requirement | Metric | Measurement Method | Priority | ||||
|---|---|---|---|---|---|---|---|---|
| NFR-S01 | Concurrent users | Load testing ( |
Must Have | |||||
| NFR-S02 | Peak load handling | Requests per second | {{X}} RPS | {{X}} RPS | Load testing | Must Have | ||
| NFR- |
Data volume growth | Database |
||||||
| NFR- |
API rate limits | Max requests per |
Must Have | |||||
| NFR- |
File storage growth | Storage | {{X}}GB | Storage monitoring | Should Have | |||
| NFR-S06 | Auto-scaling response | Time to scale out under load | < 2 minutes | < 2 minutes | Cloud console metrics | Should Have | ||
| NFR-S07 | Geographic distribution | Regions supported | {{REGIONS}} | {{REGIONS}} | CDN configuration | {{PRIORITY}} |
4. Availability Requirements
| ID | Requirement | Target | Measurement Period | Exclusions | Priority |
|---|---|---|---|---|---|
| NFR-A01 | System uptime SLA | ≥ {{99. |
Monthly rolling | Scheduled maintenance |
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 frequency | Ongoing | Must Have | ||
| NFR-A07 | Backup retention | {{X}} days rolling | Ongoing | N/A | Must Have |
| NFR-A08 | Disaster recovery test | Pass DR drill | Annually | N/A | Should Have |
SLA Calculation Reference:
| Uptime % | Annual Downtime | Monthly Downtime |
|---|---|---|
| 99.9% | 8.7 hours | 43.8 minutes |
| 99.5% | 43.8 hours | 3.6 hours |
| 99.0% | 87.6 hours | 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 | Measurement Method | Priority |
|---|---|---|---|---|---|
| NFR-SEC01 | Authentication method | 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 Prevention | All inputs sanitized server-side; parameterized |
Must Have | |
| NFR-SEC07 | XSS prevention | Injection Prevention | CSP |
OWASP ZAP / DAST | 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 | Secret management | Secrets | No secrets in code/git; use env vars or vault | Code scan + git history check | Must Have |
| NFR-SEC13 | Role-based access control | Authorization | Principle of least privilege; no role escalation | Code review + penetration test | Must Have |
| NFR-SEC14 | Security headers | HTTP Security | HSTS, X-Frame-Options, X-Content-Type-Options | securityheaders.com scan | Must Have |
| NFR-SEC15 | Vulnerability scanning | Operations | Automated scan in CI; critical issues block deploy | CI pipeline | Should Have |
| NFR-SEC16 | Penetration testing | Operations | Third-party report | Should Have |
6. Reliability Requirements
| ID | Requirement | Metric | Target | Measurement Method | Priority |
|---|---|---|---|---|---|
| NFR-R01 | Application error rate | 5xx errors / total requests | < 0.1% | Must Have | |
| NFR-R02 | |||||
| NFR-R03 | Average |
Incident |
|||
| NFR-R04 | Must Have | ||||
| NFR-R05 | Data integrity | Zero data corruption events | 0 incidents | Database integrity checks | Must Have |
| NFR-R06 | Transaction integrity | Atomic transactions | ACID compliance | Database tests | Must Have |
| NFR-R07 | Graceful degradation | Partial failure handling | Non-critical features fail gracefully; core stays up | Chaos testing | Should Have |
| NFR-R08 | Health check endpoint | System |
Must Have |
7. Usability Requirements
| ID | Requirement | Target | Measurement Method | 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 | Manual testing | Should Have | ||
| NFR-U06 | Mobile responsiveness | Fully functional on 375px–1440px width | Manual + automated | Must Have |
| NFR-U07 | Color contrast | ≥ 4.5:1 for normal text; ≥ 3:1 for large text | Contrast checker | Must Have |
| NFR-U08 | Onboarding completion | {{X}}% of new users complete onboarding | Analytics | Should Have |
| NFR-U09 | Help / documentation | All key features documented in-app or in help center | 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+ |
Must Have |
| NFR-C03 | Must Have | |||
| NFR-C04 | OS | Windows 10+, macOS 12+, Ubuntu 20.04+ | Must Have | |
| NFR-C05 | Screen resolutions | Responsive | 375px to 2560px width | Must Have |
| NFR-C06 | Minimum device specs | Performance | Works on mid-range 2020+ devices | Should Have |
| NFR-C07 | Third-party integrations | API | Must |
|
| NFR-C08 | Email |
Gmail, Outlook, Apple Mail, mobile clients | Should Have |
9. Maintainability Requirements
| ID | Requirement | Metric | Target | Measurement Method | Priority |
|---|---|---|---|---|---|
| NFR-M01 | Test coverage | % of code covered by automated tests | ≥ 80% overall; |
CI coverage |
Must Have |
| NFR-M02 | Must Have | ||||
| NFR-M03 | Should Have | ||||
| NFR-M04 | Should Have | ||||
| NFR-M05 | Should |
||||
| NFR-M06 | Feature flag support | Ability to disable features without deploy | Available for all major features | Code review | Could Have |
| NFR-M07 | Logging completeness | Log coverage for operations | All external calls, errors, and user mutations logged | Log review | Must Have |
| NFR-M08 | Monitoring observability | Dashboards for key metrics | Dashboards for error rate, response time, uptime | Monitoring tool | Must Have |
10. Compliance Requirements
| ID | Regulation | Applicability | Requirement | Technical Implementation | Priority |
|---|---|---|---|---|---|
| NFR-COMP01 | GDPR |
Lawful |
Must Have | ||
| NFR-COMP02 | GDPR — Cookie consent | {{YES — if using tracking cookies}} | Explicit consent before non-essential cookies | Cookie consent banner; opt-in only tracking | Must Have |
| NFR-COMP03 | GDPR — Data |
Yes | Collect only data necessary for stated purpose | BA review of | |
| Must Have | |||||
| NFR-COMP04 | |||||
| NFR-COMP05 | {{PCI- |
||||
| NFR-COMP06 | |||||
| Norwegian Personvernloven | Legal review | Must Have | |||
| NFR- |
|
Must Have |
11. Data Requirements
| ID | Requirement | Category | Target | Implementation | Priority |
|---|---|---|---|---|---|
| NFR-D01 | Data retention — user data | Retention | Scheduled deletion job |
Must Have | |
| NFR-D02 | Data retention — |
Retention | Application logs: 90 days; Audit logs: |
Log rotation policy | Must Have |
| NFR-D03 | Must Have | ||||
| NFR-D04 | Must Have | ||||
| NFR-D05 | Integrity | Database constraints; no orphaned records | DB schema + integration tests | Must Have | |
| NFR-D06 | PII identification | Privacy | All PII fields identified and documented | Data dictionary | Must Have |
| NFR-D07 | Data export | Portability | User can export their data in machine-readable format (GDPR |
Export API endpoint | Must Have |
| NFR-D08 | Data |
Privacy | Anonymize user data in non-production environments | Dev/staging data scripts | Must Have |
| NFR-D09 | Archival strategy | Retention | Data older than {{X}} years archived to cold storage | Archive schedule | Should Have |
12. NFR Testing & Verification Plan
| NFR Category | Testing Method | Tools | Frequency | Pass Criteria |
|---|---|---|---|---|
| Performance | All NFR-P targets met | |||
| Scalability | Stress testing | k6 | Pre-launch | System gracefully handles 2× peak load |
| Security | CI (SAST), Pre-launch (DAST+Pentest), Annual | No critical/high vulnerabilities unresolved | ||
| Accessibility | Automated + manual | axe-core, manual screen reader | Per sprint |
|
| Availability | Ongoing + annual | |||
| Compliance | Legal review + audit | Manual + |
Pre-launch + annual | All compliance items verified |
Approval
| Role | Name | Date | Signature |
|---|---|---|---|
| Author | |||
| Reviewer | |||
| Tech Lead | |||
| Business Analyst | |||
| Product Owner | |||
| AI Director (John) | |||