๐ŸŽฌ Simulate:

Register

Create your SkillsLao TVET learner account

At least one of email or mobile phone is required โ€” must match the roster record
+856
Laos number only
๐Ÿ“ Spec notes โ€” UC-IDP.01 / SCR-IDP.43 (fields, actions, requirements)
Identity
  • Screen: SCR-IDP.43 โ€” Register
  • Use case: UC-IDP.01 โ€” Register as Learner
Brief description

First step of registration โ€” captures applicant type (TVET Student / External Learner). TVET path: captures institution, faculty, major, student_id, and contact (email and/or mobile) for roster matching; system verifies roster after Continue โ€” if matched, OTP sent to the contact; if not matched, AF-6A (claim recorded as pending, PA notified, user continues); if the matched roster record is already linked to another account, AF-6B (inline message, re-enter details). External Learner path: skips roster check and proceeds to Register Authentication (SCR-IDP.01).

Fields
  • learner_type "Applicant Type" โ€” enum [tvet, external] ยท default: tvet ยท required ยท always visible
  • institution_id "Institution" โ€” enum lookup.Institute.id ยท required when learner_type==tvet ยท visible when learner_type==tvet ยท cascades: clears faculty_id + major_id on change
  • faculty_id "Faculty" โ€” enum lookup.Faculty.id ยท required when learner_type==tvet ยท visible when learner_type==tvet ยท options filtered by institution_id; cleared when institution_id changes
  • major_id "Major" โ€” enum lookup.Major.id ยท required when learner_type==tvet ยท visible when learner_type==tvet ยท options filtered by faculty_id; cleared when faculty_id changes
  • student_id "Student ID" โ€” text ยท max 50 ยท required when learner_type==tvet ยท visible when learner_type==tvet
  • email "Email" โ€” text ยท format:email ยท max 255 ยท required when learner_type==tvet && mobile_phone=='' ยท visible when learner_type==tvet
  • mobile_phone "Mobile Phone" โ€” phone ยท regex ^[0-9]{8,10}$ ยท required when learner_type==tvet && email=='' ยท visible when learner_type==tvet ยท country code +856 fixed prefix (user enters local digits only)
Actions
  • continue "Continue" โ€” enabled when required_fields_valid ยท TVET โ†’ system performs roster check โ†’ match: step 6 invokes SUC-IDP-01 (if email) or SUC-IDP-02 (if mobile); no match: AF-6A; record already claimed by another account: AF-6B ยท External โ†’ SCR-IDP.01 (Register Authentication)
  • sign_in "Sign in" โ€” always enabled ยท navigates to UC-IDP.02 (SCR-IDP.22 Login)
Additional requirements
  1. Institution dropdown: sorted Aโ€“Z. Empty state: "No institutions are available yet โ€” please select 'Other (External Learner)'"
  2. When learner_type changes tvet โ†’ external, clear institution_id + faculty_id + major_id + student_id + email + mobile_phone immediately (not just hide). Continue button enables immediately when learner_type == external.
  3. TVET path: at least one of email or mobile_phone required โ€” Continue stays disabled until institution_id, faculty_id, major_id, student_id, and at least one contact are valid. Cascading dropdowns: Faculty filtered by institution; Major filtered by faculty.
  4. The mobile_phone field displays "+856" as fixed prefix (input-group-text); user enters local digits (8โ€“10 digits) only.
  5. AF-6B โ€” if the matched roster record (Institution + Faculty + Major + Student ID) is already linked to another account, display an inline message "This Student ID is already linked to another account" with a "Re-enter details" button (clears the form, returns to this page) and a note to contact the institution administrator directly; the Continue button is disabled in this state (resume_at: step 4 โ€” redisplay for correction, not a forward transition).