Crew Inductions & QR Sign-Off

Crew Inductions & QR Sign-Off

Phase Planning includes a fully digital crew induction system. Every crew member assigned to a project can acknowledge and sign off on phase plan documents — eliminating paper-based induction sheets and ensuring a complete audit trail for health and safety compliance.

Authentication Methods

Three authentication methods are supported when a crew member opens the induction link:

  1. Tenant User (Staff Login) — the crew member signs in with their email and password, authenticated against the tenant database. The system validates that the user is assigned to the project crew before allowing sign-off.
  2. Freelancer Node — freelancers authenticate against their own Freelancer Node PostgreSQL database. Sign-off data is written to both the tenant database and the freelancer's node database using dual-DB tracking. Each record stores a synced_to_node_at timestamp and a sync_failed flag to ensure data integrity across both systems.
  3. Guest — for crew members without system accounts, a dropdown lists assigned crew with privacy-redacted names (e.g., "John S."). No login is required. The system validates that the selected name matches a crew membership record for the project.

QR Code Generation

Each phase plan document generates a unique QR code containing a signed token. The token payload includes the phase_plan_id, tenant_id, expires_at (set to the project end date or 30 days from generation, whichever comes first), and a random nonce for uniqueness.

The token format is base64(json).signature16chars, signed using HMAC-SHA256 with the application key. The resulting QR code URL follows the pattern:

{tenant-subdomain}.nexusrms.io/induction/{signedToken}

Crew members scan the QR code with their mobile device to open the induction sign-off page directly in their browser.

Sign-Off Data Captured

When a crew member completes the induction sign-off, the following data is recorded:

Field Description
Signature Method How the sign-off was completed: qr_code, manual, or digital_signature
Signature Data Base64 PNG of the drawn signature, stored to S3 at signatures/{document_number}/{userId}_{random}.png
GPS Location Latitude and longitude captured at decimal 8 precision
Acknowledgement Boolean confirmation that the crew member understands the phase plan contents
Comments Optional free-text field for crew comments or questions
Audit Trail IP address and user agent string recorded automatically

Induction Tracking Panel

The phase plan Show page displays an induction tracking panel showing the number of crew who have signed versus the total assigned crew, along with a completion percentage and circular progress indicator. Below the summary, a list of unsigned crew members is displayed so project managers can follow up directly.

Automated Reminders

The system sends push notifications to unsigned crew members using the PhasePlanInductionReminderNotification. Reminders prompt crew to complete their sign-off before the project start date.

Completion & Duplicate Prevention

When all assigned crew members have signed off (100% completion), the system automatically sets the induction_completed_at timestamp on the phase plan document. This timestamp confirms that the entire crew has been inducted.

Duplicate sign-offs are prevented using an updateOrCreate operation keyed on the crew_member_id. If a crew member signs again, their existing record is updated rather than creating a duplicate entry.

Was this article helpful?