Skip to content

Milestone: M3 — Issuing Functionality | SOW Reference: FR8 | Requirement Clarity: ✅ Clear (auth success/fail-rate scope still to confirm — see M3 README) | Dev Status: 🟡 Partially prototyped Moved from docs/requirements/tasks/POC/05-status-dashboard.md — unmodified below.

M3-10 Status Dashboard Tasks

🎯 VNF SDK Reference Implementation

PRIMARY REFERENCE: vnf-wallet-sdk-nodejs-main/

All status dashboard tasks MUST follow the official VNF SDK sample application patterns

Key Reference Files: - Exchange Tracking: packages/sdk/src/api/entities/VCLExchange.ts - Status tracking patterns - Submission Results: packages/sdk/src/api/entities/VCLSubmissionResult.ts - Result tracking - Offer Management: packages/sdk/src/api/entities/VCLOffers.ts - Offer status tracking - Frontend Dashboard: packages/sample-app/src/screens/MeinScreen.tsx - UI patterns for status display

Overview

Implementation of real-time credential status tracking dashboard with search, filter, and export capabilities for monitoring credential lifecycle using VNF SDK status tracking patterns.

Backend Tasks

Dashboard Data Service

  • Task: Create comprehensive dashboard data aggregation
  • Create dashboard.service.ts
  • Implement credential status aggregation queries
  • Add real-time statistics calculation (total, sent, claimed, expired)
  • Create performance metrics tracking (processing times, success rates)

Search and Filter API

  • Task: Implement advanced search and filtering
  • Create credential-search.service.ts
  • Add search by employee name, email, company, job title
  • Implement date range filtering (upload date, credential date, expiration)
  • Add status filtering with multiple selection support
  • Create pagination for large result sets

Export Service

  • Task: Generate reports and data exports
  • Create export.service.ts
  • Implement CSV export for credential data
  • Add PDF report generation for compliance
  • Create Excel export with multiple sheets (summary, details, errors)
  • Add email delivery for large exports

Real-time Updates

  • Task: WebSocket integration for live dashboard updates
  • Create dashboard-websocket.gateway.ts
  • Implement real-time credential status updates
  • Add live processing progress broadcasts
  • Create notification system for critical events

Dashboard Controller

  • Task: Create dashboard API endpoints
  • Create dashboard.controller.ts
  • Implement statistics endpoints
  • Add search and filter endpoints
  • Create export endpoints with async processing

Frontend Tasks

Main Dashboard Component

  • Task: Create comprehensive credential status dashboard
  • Create CredentialDashboard.tsx
  • Display key metrics cards (total, sent, claimed, expired)
  • Add status distribution charts (pie chart, bar chart)
  • Implement real-time updates via WebSocket

Credential List Component

  • Task: Searchable and filterable credential list
  • Create CredentialList.tsx
  • Implement data table with sorting and pagination
  • Add inline status indicators with color coding
  • Create expandable rows for detailed credential information

Search and Filter Panel

  • Task: Advanced search and filtering interface
  • Create SearchFilter.tsx
  • Add text search with autocomplete suggestions
  • Implement date range picker for filtering
  • Create multi-select status filter dropdown
  • Add saved search functionality

Analytics Charts

  • Task: Visual analytics and reporting charts
  • Create DashboardCharts.tsx
  • Implement credential status distribution pie chart
  • Add timeline chart for credential processing over time
  • Create success rate trends and performance metrics
  • Add interactive chart filtering

Export Interface

  • Task: Data export and reporting interface
  • Create ExportPanel.tsx
  • Add export format selection (CSV, PDF, Excel)
  • Implement custom date range and filter selection for exports
  • Show export progress and download links
  • Add scheduled export functionality

Dashboard Features

Key Metrics Display

interface DashboardMetrics {
  totalCredentials: number;
  credentialsSent: number;
  credentialsClaimed: number;
  credentialsExpired: number;
  successRate: number;
  averageClaimTime: number;
  processingRate: number;
}

Status Tracking

enum CredentialStatus {
  UPLOADED = 'uploaded',
  PROCESSING = 'processing',
  GENERATED = 'generated',
  SENT = 'sent',
  DELIVERED = 'delivered',
  OPENED = 'opened',
  CLAIMED = 'claimed',
  EXPIRED = 'expired',
  FAILED = 'failed'
}

Search Filters

interface SearchFilters {
  searchText?: string;
  status?: CredentialStatus[];
  dateRange?: {
    startDate: Date;
    endDate: Date;
  };
  company?: string;
  uploadBatch?: string;
}

API Endpoints

Dashboard Data

GET /api/v1/issuer/dashboard/metrics
GET /api/v1/issuer/dashboard/statistics
GET /api/v1/issuer/dashboard/charts/status-distribution
GET /api/v1/issuer/dashboard/charts/timeline

Search and Filter

GET /api/v1/issuer/credentials/search
POST /api/v1/issuer/credentials/filter
GET /api/v1/issuer/credentials/autocomplete

Export

POST /api/v1/issuer/exports/csv
POST /api/v1/issuer/exports/pdf
POST /api/v1/issuer/exports/excel
GET /api/v1/issuer/exports/{exportId}/download
GET /api/v1/issuer/exports/history

WebSocket Events

dashboard:metrics-update - Real-time metrics updates
dashboard:credential-update - Individual credential status changes
dashboard:batch-complete - Batch processing completion
dashboard:export-ready - Export file ready for download

Dependencies & Assumptions

Prerequisites

  • WebSocket infrastructure setup
  • Chart.js or similar charting library
  • Export libraries (csv-writer, pdfkit, exceljs)
  • Real-time data synchronization

Cross-team Dependencies

  • Dashboard UI/UX designs and wireframes
  • Export format specifications
  • Performance requirements for large datasets

Acceptance Criteria

  • Display real-time credential status metrics and statistics
  • Search credentials by multiple criteria with autocomplete
  • Filter credentials by status, date range, and other attributes
  • Export credential data in CSV, PDF, and Excel formats
  • Show credential processing timeline and success rates
  • Handle large datasets (10,000+ credentials) with pagination
  • Provide real-time updates without page refresh
  • Support saved searches and custom dashboard views

Estimated Timeline

Week 7: 5 days - Day 1-2: Dashboard data service and API endpoints - Day 3: Search, filter, and export backend services - Day 4-5: Frontend dashboard components and charts

Blockers & Risks

  • Risk: Performance with large datasets requiring optimization
  • Dependency: WebSocket infrastructure for real-time updates
  • Risk: Export generation time for large datasets
  • Blocker: Chart library selection and integration
  • Risk: Browser memory usage with real-time updates