Beneficiary Toaster
Overview
The Digi-Vrtti one-click scholarship is a web-based application that enables beneficiaries to discover and apply for available benefits. Users authenticate with their credentials to access personalized services. Before viewing benefits, users must upload required Verifiable Credentials (VC) / Documents, which can be imported from their e-wallet. The system displays document status with visual indicators: green checkmarks for uploaded documents and yellow warnings for missing documents.
After uploading documents, users can explore the benefit catalog and view detailed information. Clicking "Proceed to Apply" opens a pre-filled application form populated with data from their profile.
System Capabilities
User Persona: Beneficiary (End User)
Splash Screen
Purpose: Enables multilingual access and easy onboarding
Features:
Language selection (default: English)
Registration and login buttons
User Authentication
Purpose: Secures access to personalized services
Login: Username and password authentication
Registration: New account creation with basic details
System generates username automatically
Redirects to login after registration
Terms and Conditions: Displayed on first login
Accept to continue, deny to log out
Home Screen – User Dashboard
Purpose: Manage personal information and document status
Features:
Display personal details and document status
Document status indicators:
Missing documents
Uploaded documents
Expired documents
Document actions:
View in JSON format
Preview original VC image
Delete with confirmation
Document Management and Scanning
Purpose: Simplify document collection and reduce physical paperwork dependency
Features:
Scan & Upload option (opens camera)
Upload, re-upload functionality
Automatic document status updates
Success and error handling
Explore Benefits
Purpose: Deliver personalized benefit recommendations
Tabbed View:
My Benefits: Shows benefits based on Eligibility SDK results
All Benefits: Full catalog with filters:
Gender
Income Range
Caste
Features:
Search bar
Pagination
View Details: Full description, eligibility, required documents
Document preview (JSON & VC image)
"Proceed to Apply" button
Benefit Application Workflow
Purpose: Improve accuracy and prevent ineligible submissions
Application Flow:
Expired Document Check: Alerts if required documents are expired; prevents proceeding until valid documents are uploaded
Eligibility Check: Verifies user eligibility via SDK
If eligible: Redirects to pre-filled application form
If not eligible: Shows error and blocks access
Form Submission: Users fill missing details and submit
Redirects to "My Application" upon success
My Application
Purpose: Enable self-service tracking of benefit application status
Features:
List of submitted applications
View detailed status and form data
Profile Management
Purpose: Provide transparency and control over personal data
Features:
View and edit personal information (Name, DOB, Income, etc.)
Import documents from digital e-wallet
Track document status
Logout
Purpose: Maintain account security and session control
Access: Via navbar menu
Action: Redirects to login screen
User Persona: Beneficiary Admin
Field Management Capabilities
Dynamic Field Creation: Create custom form fields without code deployment
Field Type Support: Text, numeric, date, boolean, and dropdown field types
Field Attributes Configuration: Set required, editable, and ordering properties
Dropdown Options Management: Dynamic addition/removal of dropdown options with name-value pairs
Field Validation: Client-side validation for all field properties
Field Editing: In-place editing of existing field configurations
Usage-Aware Deletion: Prevents deletion of fields currently used in mappings
Field Ordering: Numeric ordering system for form field display sequence
Document Configuration Capabilities
Document Type Definition: Configure multiple document types with metadata
VC Schema Management: Define verifiable credential field schemas using JSON
Real-time JSON Validation: Validate VC field schema structure as user types
Multiple Document Support: Manage multiple document configurations simultaneously
Document Metadata: Track document names, labels, types, and subtypes
Bulk Configuration Save: Save all document configurations in single operation
Dynamic Configuration Management: Add/remove document configurations on-demand
Field Mapping Capabilities
Many-to-Many Relationships: Map single fields to multiple document types
Dynamic VC Field Loading: Automatically load VC fields based on document selection
Transformation Rules: JSON-based field value transformation and normalization
Core Field Integration: Include hardcoded system fields (firstName, lastName, dob, middleName)
Nested Mapping Structure: Complex document mapping within field mappings
Mapping Validation: Comprehensive validation of all mapping relationships
Visual Mapping Confirmation: Real-time display of completed mappings
Bulk Mapping Operations: Save all field mappings simultaneously
Security & Data Protection
Encryption Overview
Algorithm
Uses AES-256-GCM (Advanced Encryption Standard, 256-bit key, Galois/Counter Mode) for all encryption operations
Provides both strong data privacy and tamper detection
Scope of Encryption
All sensitive database fields (e.g., user documents, application data) are always encrypted
Dynamic/custom field values can be individually configured for encryption
If a field is marked as "encrypted" in its configuration, its values are automatically encrypted before storage and decrypted on access
Encryption and decryption are handled transparently by backend services and helpers
Key Management
Encryption keys are 32-byte, base64-encoded values, provided via environment variables (
ENCRYPTION_KEY)Each encryption operation uses a unique, random initialization vector (IV) for enhanced security
Configurable Field-Level Security
Custom fields support a flexible
isEncryptedattributeAdministrators can enable or disable encryption for each field as needed, allowing fine-grained control over which data is protected
Key Rotation
Key rotation is supported to maintain strong security
The project provides a script (
scripts/key-rotation.ts) that allows you to re-encrypt all sensitive data with a new encryption keyTo rotate keys: set the current and new keys as environment variables, run the script, and update your system to use the new key after successful completion
This process ensures all encrypted data remains protected if a key change is required
Last updated
