Domain Model - RoamView-Technologies/RoamView GitHub Wiki

5.5 Domain Model

classDiagram
    direction TB

    class Organization {
        name
    }
    class User {
        email
        role
    }
    class Site {
        name
        address
    }
    class Robot {
        serialNumber
        status
    }
    class Session {
        mode
        status
        startedAt
        endedAt
    }
    class Mesh {
        <<3D Map>>
        visibility
        version
        objectStorageKey
    }
    class Annotation {
        label
        severity
        position
    }
    class Measurement {
        type
        valueMeters
    }
    class InspectionReport {
        title
        generatedAt
    }
    class ScheduledInspection {
        runAt
        status
    }
    class InspectionJob {
        status
    }

    Organization "1" --> "*" User : employs
    Organization "1" --> "*" Site : owns
    Organization "1" --> "*" Robot : owns
    User "1" --> "0..*" Session : operates
    Site "1" --> "*" Session : hosts
    Site "1" --> "0..1" Robot : assigned
    Robot "1" --> "*" Session : performs
    Session "1" --> "0..1" Mesh : produces
    Mesh "0..1" --> "0..1" Mesh : previousVersion
    Mesh "1" --> "*" Annotation : has
    Mesh "1" --> "*" Measurement : has
    User "1" --> "*" Annotation : authors
    User "1" --> "*" Measurement : authors
    Session "1" --> "0..1" InspectionReport : generates
    Site "1" --> "*" ScheduledInspection : schedules
    Robot "1" --> "*" ScheduledInspection : target
    ScheduledInspection "1" --> "0..1" InspectionJob : creates
    InspectionJob "1" --> "0..1" Session : resultsIn
Loading

Core entities

Organization — Tenant that owns users, sites, and robots.

User — Signs in to RoamView. Role is User or On-Site Admin.

Site — Physical location. At most one robot is assigned to a site.

Robot — On-site unit. Runs an autonomous inspection or a live walkthrough.

Session — One walkthrough. Mode is autonomous or live walkthrough. Status moves from recording through processing to ready.

Mesh — 3D map from a session. Public or private. previousVersion links maps for compare-mesh-version. File bytes are in object storage; this entity holds the key.

Annotation / Measurement — Pins and distances on a generated mesh.

Inspection report — Summary of a session. PDF is in object storage.

Scheduled inspection / Inspection job — On-site admin books a run; that creates a job; the robot is notified; a completed job becomes a session.

⚠️ **GitHub.com Fallback** ⚠️