Studio-defined account-registration questions (signup step two + admin review) #90

Closed
opened 2026-07-23 12:58:36 +00:00 by thatguygriff · 0 comments
Owner

Summary

Let the studio admin define account-registration questions that every new student must answer during signup, and surface each student's answers in the admin portal.

Requirements

  • Studio admin can author custom registration questions.
  • Questions are required on a second step of registration, after the student sets their name and password.
  • The admin student view shows a Registration Information section containing each student's answers.

Approach

Extend the existing Registration domain (which already stores answers polymorphically and is account-aware) rather than build a parallel system:

  • us_questions gains a scope column (offering | account) and a nullable offering_id; account answers reuse us_question_answers with registration_type = 'account'.
  • Authoring reuses the Offerings → Questions page via an "Account signup (all registrations)" scope (studio-admin only).
  • The [us_student_register] form becomes two steps (progressive enhancement; works without JS). Required answers are validated before the account is created; applies to all signup paths (invite, group link, self-approval).
  • StudentHistory::registrationInfo() powers a new Registration Information section on the student detail screen.

Requires a plugin version bump (1.0.0 → 1.1.0) so the schema migration runs.

## Summary Let the studio admin define **account-registration questions** that every new student must answer during signup, and surface each student's answers in the admin portal. ## Requirements - Studio admin can author custom registration questions. - Questions are **required on a second step** of registration, after the student sets their name and password. - The admin student view shows a **Registration Information** section containing each student's answers. ## Approach Extend the existing `Registration` domain (which already stores answers polymorphically and is `account`-aware) rather than build a parallel system: - `us_questions` gains a `scope` column (`offering` | `account`) and a nullable `offering_id`; account answers reuse `us_question_answers` with `registration_type = 'account'`. - Authoring reuses the **Offerings → Questions** page via an "Account signup (all registrations)" scope (studio-admin only). - The `[us_student_register]` form becomes two steps (progressive enhancement; works without JS). Required answers are validated before the account is created; applies to all signup paths (invite, group link, self-approval). - `StudentHistory::registrationInfo()` powers a new **Registration Information** section on the student detail screen. Requires a plugin version bump (1.0.0 → 1.1.0) so the schema migration runs.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: Unsupervised/unsupervised-scheduler#90