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