Skip to content

4.2 Non-Functional Requirements

Table of Contents

4.2.1 Performance


NFR-1.1: Response Time

  • Landing page load: 2 seconds (3G or better)
  • Monaco editor initialization: 3 seconds
  • Code execution results: 5 seconds (standard exercises)
  • API responses: 1 second (login, save, submit)
  • Search/filtering: 2 seconds

NFR-1.2: Throughput

  • Concurrent users: 1,000+ without degradation
  • Simultaneous code executions: 500+
  • Peak submissions: 10,000/hour

NFR-1.3: Resource Utilization

  • Client memory: ≤ 500MB
  • Monaco editor: ≤ 200MB
  • Database queries: 100ms (95% of operations)
  • CDN cache hit rate: 90%+

NFR-1.4: Rendering Performance

  • Interactive elements response: 100ms
  • Animation frame rate: 60 FPS
  • Roadmap rendering (100 nodes): 1.5 seconds

4.2.2 Availability


NFR-2.1: System Uptime

  • Annual uptime: 99.5% (~43.8 hours downtime)
  • Maintenance windows: ≤ 4 hours/month (low-usage periods)

NFR-2.2: Service Availability

  • Core features: 24/7 availability
  • AI hints: 95% uptime
  • Leaderboards: 98% uptime

NFR-2.3: Geographic Availability

  • Global accessibility with focus on Arabic-speaking regions

NFR-2.4: Graceful Degradation

  • AI unavailable → pre-generated hints available
  • Execution service down → lessons & content accessible

4.2.3 Scalability


NFR-3.1: Horizontal Scalability

  • Stateless architecture for seamless load balancing
  • Connection pooling for efficient resource management

NFR-3.2: User Growth

  • Year 1: 50,000 users
  • Year 3: 200,000 users (without major changes)

NFR-3.3: Content Scalability

  • Launch: 500 lessons, 5,000 exercises
  • Future: 2,000 lessons, 20,000 exercises
  • Support new languages without refactoring

NFR-3.4: Database Scalability

  • PostgreSQL with read replicas
  • Quarterly query plan reviews

4.2.4 Reliability


NFR-4.1: Error Rate

  • System error rate: < 0.5%
  • Code execution failures: < 1% (system errors only)

NFR-4.2: Data Integrity

  • ACID compliance for progress data (Atomicity, Consistency, Isolation, Durability)
  • Daily backups with 30-day point-in-time recovery

NFR-4.3: Fault Tolerance

  • No single point of failure
  • Database failover: 60 seconds automatic

NFR-4.4: Data Consistency

  • Leaderboards: eventual consistency within 5 minutes
  • User profiles: immediate consistency
  • Cache invalidation: 30 seconds

4.2.5 Interoperability


NFR-5.1: API Standards

  • RESTful design with standard HTTP methods
  • JSON responses with consistent structure
  • OpenAPI/Swagger documentation

NFR-5.2: Third-Party Integration

  • OAuth 2.0 (Google, GitHub)
  • Webhook support with JSON payloads

NFR-5.3: Data Exchange

  • Export formats: JSON, CSV
  • Version-control compatible storage

NFR-5.4: Browser Compatibility

  • Chrome, Firefox, Safari, Edge (latest versions)
  • Browsers released within 2 years

NFR-5.5: Mobile Compatibility

  • Responsive: 320px–2560px
  • Native notifications (FCM/APNs)

4.2.6 Usability


NFR-6.1: Learnability

  • Account setup → first lesson: 5 minutes
  • Interactive tutorial: < 10 minutes

NFR-6.2: UI Design

  • Material Design principles
  • Arabic (RTL) and English (LTR) support
  • 3 font size options

NFR-6.3: Accessibility

  • Keyboard navigation (tab, arrows, enter)
  • ARIA labels and semantic HTML
  • Color-blind modes with alternative indicators

NFR-6.4: Error Handling

  • User-friendly messages (Arabic/English)
  • Contextual help tooltips
  • Searchable help center accessible from all pages

NFR-6.5: Localization

  • Full Arabic/English localization
  • Language switching without progress loss
  • Regional date, time, and number formatting

NFR-6.6: Responsiveness

  • Immediate visual feedback
  • Progress indicators for operations > 1 second

4.2.7 Maintainability


NFR-7.1: Code Quality

  • Test coverage: ≥ 80% (critical components)
  • Peer review required before merge

NFR-7.2: Documentation

  • API docs with examples and schemas
  • Architecture diagrams (system, database, data flow)
  • Code comments for complex logic

NFR-7.3: Modularity

  • Reusable, independently testable components
  • Versioned migration scripts

NFR-7.4: Logging & Monitoring

  • Centralized logs with 90-day retention
  • Automated alerts for critical errors

NFR-7.5: Deployment

  • Automated CI/CD pipelines
  • Rollback capability: 10 minutes

4.2.8 Recovery


NFR-8.1: Backup & Restore

  • Daily full + 6-hour incremental backups
  • 30-day point-in-time recovery
  • Weekly integrity verification

NFR-8.2: Disaster Recovery

  • Semi-annual testing
  • RTO: 4 hours
  • RPO: ≤ 1 hour data loss

NFR-8.3: Failure Detection

  • Alert within 2 minutes of critical failure

NFR-8.4: Data Recovery

  • Individual account restoration
  • Checksum validation with automatic rollback

NFR-8.5: Service Recovery

  • Resume after maintenance: 5 minutes
  • Automatic session restoration
  • Clear incident messaging

NFR-8.6: Transaction Recovery

  • Automatic completion or manual review
  • Transaction log maintenance