Data Models
Business data architecture — 46 entities across 1 models
Core Entities (30)
The central operational record representing a peer mentoring interaction — a visit, phone call, group session, or any contact between a peer...
A sensitive, encrypted dispatching record used by Blindeforbundet coordinators to securely send personal information (name, address, medical...
A persisted JWT access or refresh token record associated with a user session. Tracks token value, expiry, issuer (email/password, BankID, V...
A generated compliance report conforming to Bufdir (Norwegian Directorate for Children, Youth and Family Affairs) grant reporting requiremen...
A next-of-kin or caregiver record associated with a contact — particularly important for organizations like Barnekreftforeningen and NHF who...
A digital peer mentor certification record linked to a user and the course that issued it. Tracks issuance date, expiry date, and current st...
A person being supported by a peer mentor — the primary beneficiary of the peer mentoring program. Contacts have personal details, associate...
A training course available for peer mentor enrollment — covering peer mentor certification courses, career workshops, and continuing educat...
A join record linking a user to a course with enrollment status (registered, waitlisted, attended, withdrawn). Used for capacity enforcement...
A file attachment linked to an activity record — event invitations, photographs, screenshots, or PDF documents uploaded as supporting eviden...
A group activity record representing gatherings such as training sessions, group meetings, and community activities that involve multiple at...
A join record linking a user to an event, tracking both pre-registration intent and actual post-event attendance. Supports the two-phase att...
A financial claim submitted by a peer mentor for reimbursement — covering mileage, toll, parking, transit, or other out-of-pocket costs incu...
A local chapter or branch within an organization — the primary operational unit for peer mentors and coordinators. Up to 1,400 local associa...
A structured mentorship or career workshop session specific to Blindeforbundet's group mentoring program. Stores session metadata (title, da...
A freeform text note created by a peer mentor or coordinator and linked to a specific contact. Provides qualitative context about a contact ...
A push notification or in-app alert record delivered to a specific user, covering assignment dispatches, approval status changes, certificat...
A top-level member organization within the platform (NHF, Blindeforbundet, HLF, Barnekreftforeningen). Organizations own their own labels, s...
An extended profile for users who serve as peer mentors (likepersoner), supplementing the base user record with mentoring-specific fields su...
A photographic record of a physical receipt attached to an expense claim. Stored as a compressed image in object storage with a metadata rec...
A referral token record created when a peer mentor shares a membership recruitment link. Tracks the referring peer mentor, the unique token,...
An intermediate organizational tier between the national organization and local associations. Represents one of the 9 regional groupings use...
A bundled reimbursement claim grouping one or more expenses submitted by a peer mentor for coordinator or automated approval. Tracks the ove...
An approval decision record for a reimbursement claim, capturing whether the decision was automatic (threshold-based) or manual (coordinator...
A scheduled notification record generated by the scenario-based reminder engine. Covers automatic follow-up reminders (10-day no-contact), c...
Represents an active authenticated session for a user, tracking login method, device, and session lifetime. Sessions are created on successf...
A platform account representing any individual who interacts with the system across all four organizations. Users can hold multiple roles ac...
A join record representing an awarded badge for a specific user, including the timestamp of earning, optional metadata about the earning con...
A join record binding a user to a specific role within a specific organization and optionally a specific local association. Supports multi-a...
A join record linking a user to a mentor program session with per-day attendance tracking. Supports the structured multi-day workshop format...
Configuration (10)
A classification category for activities defining the nature of the interaction (e.g., home visit, phone call, group event, online meeting)....
A digital achievement badge definition with trigger conditions, display asset URL, and eligibility criteria. Badges are awarded to peer ment...
A classification for the nature of an expense claim — mileage, toll, parking, transit, or other — with associated validation rules and mutua...
A curated external URL resource configured by the organization and accessible from the app's Resources section. Peer mentors can access link...
Configuration record defining the assignment count tiers that trigger honorarium payments for peer mentors within a local association (e.g.,...
User-level configuration for which notification types and reminder scenarios are enabled. Allows users to opt in or out of non-critical remi...
A key-value terminology override that allows each organization to customize the language used throughout the app. Since NHF, Blindeforbundet...
Defines the four access levels in the system: Peer Mentor, Coordinator, Organization Administrator, and Global Administrator. Roles drive al...
User-specific and organization-level configuration preferences including notification toggles, language, accessibility options, and calendar...
A structured conversation-starter card or practical resource in the digital peer mentor toolbox. Cards have title, body text, optional media...
Derived Data (2)
A pre-computed annual impact summary for a peer mentor covering the prior calendar year — total hours, contacts supported, activity count, s...
A team or coordinator-level activity report record aggregating activity data across peer mentors in a local association. Distinct from bufdi...
Audit & Tracking (3)
An immutable log of status transitions for an assignment — dispatched, delivered, read, acknowledged, completed, cancelled. Each record capt...
An immutable, append-only record of significant system events — authentication events, data access, approval decisions, role changes, and se...
An immutable audit trail of status transitions for a peer mentor — active, paused, suspended, deactivated. Each record captures the new stat...
External Entities (1)
Entity Relationships (64)
| From | Type | To | Description |
|---|---|---|---|
| activity | One-to-Many | document | An activity can have multiple file attachments (invitations, photos, PDFs) as supporting evidence |
| activity | One-to-Many | expense | An activity may have associated travel and out-of-pocket expenses registered against it |
| activity_type | One-to-Many | activity | An activity type classifies many activities and determines required fields and Bufdir mappings |
| assignment | One-to-Many | assignment_status_log | An assignment has an immutable log of all status transitions from dispatch through completion |
| badge | One-to-Many | user_badge | A badge definition can be awarded to many users who meet its trigger criteria |
| certification | One-to-Many | reminder | A certification generates expiry reminder records at configured lead times (30 days, 7 days before e |
| contact | One-to-Many | activity | A contact (person being supported) is the subject of many activities registered by peer mentors |
| contact | One-to-Many | assignment | A contact may be the subject of multiple encrypted assignments dispatched to different peer mentors |
| contact | One-to-Many | caregiver | A contact can have multiple caregivers or next-of-kin associated with them |
| contact | One-to-Many | note | A contact is the subject of many notes capturing qualitative context from interactions |
| course | One-to-Many | certification | A course issues certifications to users who successfully complete it |
| course | One-to-Many | course_enrollment | A course has many enrollment records tracking registration and attendance per participant |
| event | One-to-Many | event_attendee | An event has many attendee records tracking registration and attendance |
| expense | One-to-Many | receipt | An expense claim can have one or more receipt photo attachments as proof of payment |
| expense_type | One-to-Many | expense | An expense type classifies each expense claim and drives validation and mutual-exclusion rules |
| local_association | One-to-Many | activity | A local association owns all activities registered by its members, enabling team reports and Bufdir |
| local_association | One-to-Many | event | A local association hosts many group events within its scope |
| local_association | One-to-Many | honorarium_threshold | A local association configures its own honorarium threshold tiers for assignment-count-based compens |
| local_association | One-to-Many | peer_mentor | A local association has many peer mentors operating within it |
| local_association | One-to-Many | user_organization_role | A local association scopes user role assignments for coordinators and peer mentors operating within |
| mentor_program_session | One-to-Many | workshop_participant | A mentor program session has many participant records tracking attendance per session day |
| organization | One-to-Many | activity_type | An organization defines and owns the set of activity types available to its members |
| organization | One-to-Many | badge | An organization defines its own badge catalog and recognition program for peer mentors |
| organization | One-to-Many | bufdir_report | An organization generates multiple Bufdir compliance reports across reporting periods |
| organization | One-to-Many | course | An organization manages its own catalog of training courses and certification programs |
| organization | One-to-Many | expense_type | An organization configures the available expense types and their validation rules for its peer mento |
| organization | One-to-Many | external_resource | An organization curates its own list of external resource links for peer mentors |
| organization | One-to-Many | integration | An organization can have multiple external system integrations (accounting, portals) configured inde |
| organization | One-to-Many | local_association | An organization owns all its local associations directly, supporting direct org-to-association queri |
| organization | One-to-Many | organization_label | An organization owns a set of terminology overrides customizing app labels throughout the platform |
| organization | One-to-Many | region | An organization has multiple regional groupings that aggregate local associations |
| organization | One-to-Many | report | An organization has many team and coordinator-level operational reports generated within it |
| organization | One-to-Many | toolbox_card | An organization maintains its own library of talking cards and toolbox content for peer mentors |
| organization | One-to-Many | user_organization_role | An organization has many user role assignments scoped to it |
| peer_mentor | One-to-Many | annual_summary | A peer mentor profile links to its annual summaries enabling quick lookup for the Wrapped feature |
| peer_mentor | One-to-Many | assignment | A peer mentor is the recipient of many encrypted assignments dispatched by coordinators |
| peer_mentor | One-to-Many | certification | A peer mentor profile is directly associated with its certifications for fast expiry status lookups |
| peer_mentor | One-to-Many | peer_mentor_status_log | A peer mentor has a full history of status transitions (active, paused, suspended, deactivated) |
| region | One-to-Many | local_association | A region contains multiple local associations (chapters/branches) |
| reimbursement | One-to-Many | expense | A reimbursement claim bundles multiple individual expense line items for approval |
| reimbursement | One-to-Many | reimbursement_approval | A reimbursement claim can have multiple approval records (e.g., initial auto-approval followed by ma |
| role | One-to-Many | user_organization_role | A role can be assigned to many users across organizations |
| session | One-to-Many | auth_token | A session may be associated with one or more token records (access + refresh pair) |
| user | One-to-Many | activity | A user (peer mentor or coordinator acting as proxy) registers many activities |
| user | One-to-Many | annual_summary | A user has one annual summary per calendar year computed by the batch aggregation job |
| user | One-to-Many | assignment | A coordinator (user) dispatches many encrypted assignments to peer mentors |
| user | One-to-Many | auth_token | A user can have multiple JWT tokens (access and refresh) active simultaneously across devices |
| user | One-to-Many | certification | A user (peer mentor) can hold multiple certifications across different courses and renewal cycles |
| user | One-to-Many | course_enrollment | A user can enroll in multiple courses across their mentoring career |
| user | One-to-Many | event | A user (peer mentor or coordinator) creates and owns group events |
| user | One-to-Many | event_attendee | A user can be registered as an attendee for multiple events |
| user | One-to-Many | note | A user (peer mentor or coordinator) authors many notes about contacts |
| user | One-to-Many | notification | A user receives many notifications over their session lifetime |
| user | One-to-Many | notification_setting | A user has multiple notification setting records — one per scenario type — controlling which alerts |
| user | One-to-One | peer_mentor | A user who serves as a peer mentor has exactly one extended peer mentor profile |
| user | One-to-Many | recruitment_referral | A user (peer mentor) generates referral tokens and has their conversion outcomes tracked |
| user | One-to-Many | reimbursement | A user (peer mentor) submits many reimbursement claims over their active period |
| user | One-to-Many | reimbursement_approval | A coordinator (user) makes many manual approval decisions on reimbursement claims |
| user | One-to-Many | reminder | A user has many scheduled reminders generated by the scenario evaluation engine |
| user | One-to-Many | session | A user can have multiple active sessions across different devices |
| user | One-to-One | setting | A user has exactly one settings record containing all their personal preferences |
| user | One-to-Many | user_badge | A user earns many badges over their peer mentoring career |
| user | One-to-Many | user_organization_role | A user can have multiple role assignments across different organizations and associations |
| user | One-to-Many | workshop_participant | A user can participate in multiple mentor program workshop sessions |