Skip to main content

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.go
    • backend/internal/http/handler/questions_import.go
    • backend/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.go
    • backend/internal/http/handler/evaluation_versions.go
    • backend/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.go
    • backend/internal/services/buckets/service.go
  • Handlers:
    • backend/internal/http/handler/evaluation_sections.go
    • backend/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.go
    • backend/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.go
    • backend/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.go
    • backend/internal/services/results_service_submission_review.go
  • Handlers:
    • backend/internal/http/handler/submissions_approval.go
    • backend/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.go
    • backend/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.go
    • backend/internal/http/handler/reporting_evaluation_summary.go
    • backend/internal/http/handler/reporting_question_health.go
  • Workers:
    • backend/internal/workers/reporting_projection_worker.go
    • backend/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.go
    • backend/internal/services/programme_enrolment_service.go
    • backend/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.go
    • backend/internal/services/disputes_service.go
  • Handlers:
    • backend/internal/http/handler/claims_handler.go
    • backend/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.go
    • backend/internal/services/observations_findings.go
  • Handlers:
    • backend/internal/http/handler/subjects.go
    • backend/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.go
    • backend/internal/http/handler/compliance_lists.go
  • Workers:
    • backend/internal/workers/privacy_jobs_worker.go
    • backend/internal/workers/retention_worker.go
    • backend/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.go
    • backend/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.go
    • backend/internal/services/audit/service.go
  • Handler: Not directly exposed; consumed by other services to record state changes.