AssignmentRepository
Component Detail
Data Layer
medium complexity
mobilebackend
0
Dependencies
0
Dependents
1
Entities
0
Integrations
Description
Persists and retrieves encrypted assignment records including ciphertext payloads, status flags, and confirmation timestamps. Provides offline-capable local storage so peer mentors can open assignments without a live connection. Syncs local state with the backend when connectivity is restored.
assignment-repository
Sources & reasoning
Source lines 94-95 directly specify end-to-end encrypted dispatch with delivery/read confirmation and a 10-day reminder. Line 153 classifies this MUST for Blindeforbundet in Fase 2 of the priority matrix, and line 345 repeats it as Fase 2 critical in the roadmap. Fase 2 normalises to v1.0. The feature is the core unlock for Blindeforbundet's digital workflow and cannot be deferred.
-
docs/source/likeperson.md · line 94-95Kryptert oppdragshåndtering: Sende sensitive personopplysninger (navn, adresse, epikrise) til likepersoner med leveringsbekreftelse og lesebekreftelse. Statusoversikt over åpne oppdrag. Automatisk påminnelse etter 10 dager dersom kontakt ikke er oppr
-
docs/source/likeperson.md · line 153Kryptert oppdragshåndtering | - | - | ✓ | - | ✓ | MUST (Blindeforbundet) | 2
-
docs/source/likeperson.md · line 345Kryptert oppdragsutsendelse med statussporing (Blindeforbundet-kritisk)
Responsibilities
- Store encrypted assignment ciphertext and metadata locally and remotely
- Retrieve assignments by recipient peer mentor or coordinator with status filters
- Persist delivery and read confirmation timestamps
- Support offline reads from local cache with background sync on reconnect
- Enforce retention and deletion policies on sensitive assignment data
Interfaces
saveAssignment(assignment: EncryptedAssignment): Promise<void>
getAssignment(assignmentId: string): Promise<EncryptedAssignment>
listByRecipient(mentorId: string): Promise<EncryptedAssignment[]>
listByCoordinator(coordinatorId: string): Promise<EncryptedAssignment[]>
updateStatus(assignmentId: string, status: AssignmentStatus): Promise<void>
deleteAssignment(assignmentId: string): Promise<void>