components
Application Components
Here is a list of the major functional components of the backend application, their responsibilities, and the primary source code directories where their logic is implemented.
1. Question authoring & Management
- Description: Handles the creation, versioning, and publishing of all questions. Supports various question types (MCQ, MRQ, etc.) and bulk import/export.
- Service:
backend/internal/services/questions.go - Handlers:
backend/internal/http/handler/questions_handlers.gobackend/internal/http/handler/questions_import.gobackend/internal/http/handler/questions_bulk.go
2. Evaluation authoring & Management
- Description: Manages the creation, versioning, and publishing of evaluations (the structure that holds questions). Includes validation logic for publishing.
- Service:
backend/internal/services/evaluation_service.go - Handlers:
backend/internal/http/handler/evaluation_core.gobackend/internal/http/handler/evaluation_versions.gobackend/internal/http/handler/evaluation_import.go
3. Evaluation Sections & Buckets
- Description: Organizes evaluations into logical sections or pages and manages dynamic question selection via "buckets" for randomized or weighted drawing of questions.
- Services:
backend/internal/services/sections/service.gobackend/internal/services/buckets/service.go
- Handlers:
backend/internal/http/handler/evaluation_sections.gobackend/internal/http/handler/evaluation_buckets.go
4. Assessment Runtime / Delivery
- Description: Manages the live execution of an assessment, including user sessions, recording answers, and enforcement of time limits and attempt counts.
- Service:
backend/internal/services/results_service.go - Handlers:
backend/internal/http/handler/evaluation_sessions.gobackend/internal/http/handler/submissions_candidate.go
5. Evidence & Verification
- Description: Manages the collection, storage, and review of evidence (files, media) attached to submissions. Includes integrity checking and storage tiering.
- Service:
backend/internal/services/results_service_evidence.go - Handlers:
backend/internal/http/handler/submissions_evidence.go
- Workers:
backend/internal/workers/evidence_integrity_worker.gobackend/internal/workers/evidence_storage_tier_worker.go
6. Submission Review & Approval
- Description: Provides workflows for reviewing candidate submissions, including manual marking, approval/rejection, and "four-eyes" review policies.
- Service:
backend/internal/services/results_service_submission_approval.gobackend/internal/services/results_service_submission_review.go
- Handlers:
backend/internal/http/handler/submissions_approval.gobackend/internal/http/handler/submissions_ratify.go
7. Assignments
- Description: Manages the assignment of evaluations to users, groups, or via public links. Handles scheduling, overrides, and invitation redemption.
- Service:
backend/internal/services/assignments_service.go - Handlers:
backend/internal/http/handler/assignments_handlers.gobackend/internal/http/handler/assignments_import.go
8. Reporting & Analytics
- Description: Aggregates and summarizes raw assessment data into optimized reporting tables for analytics, dashboards, and exports.
- Services:
backend/internal/services/reporting/service.go
- Handlers:
backend/internal/http/handler/reporting_projections.gobackend/internal/http/handler/reporting_evaluation_summary.gobackend/internal/http/handler/reporting_question_health.go
- Workers:
backend/internal/workers/reporting_projection_worker.gobackend/internal/workers/reporting_percentiles_worker.go
9. Results Remediation
- Description: Handles the process of correcting or adjusting scores and outcomes for submissions that have already been completed, ensuring audit-safe re-scoring.
- Service:
backend/internal/services/remediation/service.go - Handler:
backend/internal/http/handler/results_remediation_handlers.go
10. Programmes & Enrolments
- Description: Manages structured learning programs, their requirements, user enrolments, and automated progress tracking.
- Services:
backend/internal/services/programmes_service.gobackend/internal/services/programme_enrolment_service.gobackend/internal/services/programme_orchestrator.go
- Handler:
backend/internal/http/handler/programmes_programs.go - Worker:
backend/internal/workers/programme_assignments_worker.go
11. Claims & Disputes
- Description: Provides a formal workflow for candidates to challenge assessment results and for administrators to manage and resolve those disputes.
- Services:
backend/internal/services/claims_service.gobackend/internal/services/disputes_service.go
- Handlers:
backend/internal/http/handler/claims_handler.gobackend/internal/http/handler/disputes_handler.go
12. Glass Box (Audit View)
- Description: Provides a ledger-backed, read-only view of all historical events related to an entity (engagement, assignment, submission), ensuring full transparency.
- Service:
backend/internal/services/glassbox_service.go - Handler:
backend/internal/http/handler/glassbox_handler.go
13. Observations & Findings
- Description: Manages observational assessments where an observer records findings against a subject.
- Service:
backend/internal/services/subjects_service.gobackend/internal/services/observations_findings.go
- Handlers:
backend/internal/http/handler/subjects.gobackend/internal/http/handler/submissions_subjects.go
14. Compliance & Data Privacy
- Description: Manages data privacy tasks, such as DSAR exports, user data scrubbing ("forget me"), legal holds, and retention policies.
- Service:
backend/internal/services/compliance_service.go - Handlers:
backend/internal/http/handler/compliance_jobs.gobackend/internal/http/handler/compliance_lists.go
- Workers:
backend/internal/workers/privacy_jobs_worker.gobackend/internal/workers/retention_worker.gobackend/internal/workers/compliance_ledger_worker.go
15. Taxonomy & Skills
- Description: Manages the classification of content via tags, terms, and skill mappings.
- Service:
backend/internal/services/taxonomy_service.go - Handler:
backend/internal/http/handler/taxonomy_handlers.go
16. Content Packs
- Description: Handles the bundling and distribution of content (questions, evaluations) for portability between environments.
- Service:
backend/internal/services/content_packs_service.go - Handler:
backend/internal/http/handler/content_packs_handlers.go
17. Identity & Auth Sessions
- Description: Manages user authentication, session lifecycle, and MFA (step-up) proofs.
- Service:
backend/internal/services/auth_sessions.gobackend/internal/services/step_up_proofs.go
- Handlers:
backend/internal/http/handler/auth.go
- Worker:
backend/internal/workers/auth_sessions_cleanup_worker.go
18. Authorization (RBAC)
- Description: Manages Role-Based Access Control, defining what actions a user can perform based on their role and organization.
- Service:
backend/internal/services/authz/service.go - Handler:
backend/internal/http/handler/roles_handlers.go
19. Audit & Ledgering
- Description: Records a defensible trail of significant events within the system. Unlike basic logging, the ledger is append-only and cryptographically verifiable in some contexts.
- Service:
backend/internal/services/ledger_events.gobackend/internal/services/audit/service.go
- Handler: Not directly exposed; consumed by other services to record state changes.