Service Layer medium complexity backend
0
Dependencies
0
Dependents
7
Entities
0
Integrations

Description

Backend service that transforms accumulated activity logs, participant counts, and engagement summaries into the standardized Bufdir report format required by Norwegian government funding agencies. It orchestrates data aggregation across the reporting period and produces a structured output document. Eliminates the manual reporting burden by automating the Bufdir compliance format.

Feature: Bufdir Report Generation

bufdir-report-generator-service

Sources & reasoning

Line 46 establishes Bufdir reporting as a universal must-have across all four orgs. Line 144 confirms MUST HAVE with Phase 2 placement. Line 342 places it explicitly in Phase 2 (v1.0). Blueprint assigns v1.0, consistent with Phase 2 mapping. Generation is architecturally separate from export to allow report preview before submission.

  • docs/source/likeperson.md · line 46
    Alle fire organisasjoner mottar Bufdir-tilskudd og bruker mye tid på rapportering. Ønsket er det samme: trykk på én knapp og få ut det Bufdir trenger.
  • docs/source/likeperson.md · line 144
    Bufdir-rapportering (eksport, admin) | ✓ | ✓ | ✓ | ✓ | ✓ | MUST HAVE | 2
  • docs/source/likeperson.md · line 342
    Bufdir-rapportering og eksport med ett klikk (kun i Admin Web Portal; mobilen bidrar med selve aktivitetsregistreringen)

Responsibilities

  • Aggregate activity records and participant counts for a given org and date range
  • Map internal data structures to the official Bufdir report schema fields
  • Validate completeness of required Bufdir fields before finalizing the report
  • Generate the report document in the required output format (PDF or structured data)
  • Persist generated report metadata for audit and re-download purposes

Interfaces

generateReport(orgId: string, params: BufdirReportParams): Promise<BufdirReport>
validateReportData(data: BufdirReportData): ValidationResult
getReportPreview(orgId: string, params: BufdirReportParams): Promise<BufdirReportSummary>
exportReport(reportId: string, format: 'pdf' | 'json'): Promise<Buffer>