SL
SkillsLao Backoffice
Prototype
🎬 Simulate:

Complete Instructor Profile

Fill in your details before accessing the instructor dashboard

Basic Information
S
JPG, PNG, or GIF · max 5 MB
+856
Laos (+856) · enter local digits only (8–10 digits)
Professional Information
One-line summary shown on your public profile.
Social Links (all optional)

Screen Flow (from flow.puml):

📝 Spec notes — UC-IDP.03 / SCR-IDP.41 (fields, actions, requirements)
Identity
  • Screen: SCR-IDP.41 — Complete Instructor Profile
  • Use case: UC-IDP.03 — Activate Staff Account (main flow steps 7–8, role = Instructor; also reached from AF-3A step 4 via Google SSO path)
Brief description

First-time profile completion for Instructors — shown immediately after account creation (UC-IDP.03 steps 7–8), before accessing the Dashboard. The instructor fills in three sections: Basic Information (name, photo, affiliation, public email, mobile), Professional Information (headline, bio), and Social Links (all optional). First name, last name, and email are pre-filled from the invitation record and editable.

Fields
  • firstname "First name" — text · required · User.firstname · pre-filled from param.invitation_firstname · max 100 chars · editable
  • lastname "Last name" — text · required · User.lastname · pre-filled from param.invitation_lastname · max 100 chars · editable
  • photo "Profile photo" — file · optional · InstructorProfile.photo · jpg/png/gif only, max 5 MB
  • affiliation "Affiliation / Institution" — text · optional · InstructorProfile.affiliation · max 200 chars
  • email "Public email" — text · required · InstructorProfile.email · pre-filled from param.invitation_email · format: email · max 255 chars · editable (may differ from login email)
  • country_code — text · optional · read-only · default "+856" · rendered as input-group-text prefix, not a standalone input
  • mobile "Mobile number" — phone · optional · InstructorProfile.mobile · regex: ^[0-9]{8,10}$ · user enters local digits only; country code fixed at +856
  • headline "Headline (brief self-introduction)" — text · optional · InstructorProfile.headline · max 200 chars
  • bio "Bio" — text_editor (prototype: text_editor) · optional · InstructorProfile.bio · max 2000 chars
  • website_url "Website" — text · optional · InstructorProfile.website_url · format: url
  • linkedin_url "LinkedIn" — text · optional · InstructorProfile.linkedin_url · format: url
  • twitter_url "Twitter / X" — text · optional · InstructorProfile.twitter_url · format: url
  • facebook_url "Facebook" — text · optional · InstructorProfile.facebook_url · format: url
Actions
  • save_and_continue "Save and Get Started" — enabled when required_fields_valid · triggers UC-IDP.03-M-9 (save InstructorProfile → navigate to Instructor Dashboard)
Additional requirements
  1. Profile photo must be jpg, png, or gif only and must not exceed 5 MB. If the file is invalid, show an inline error message below the field.
  2. First name and last name are pre-filled from UserInvitation and editable, to handle cases where the invitation name is incorrect.
  3. Public email is pre-filled from UserInvitation.email and editable — the user may set a different public-facing email address from the login email. Must pass format validation before form submission.
  4. Mobile number displays country code "+856" (Laos) as a fixed input-group prefix. User enters local digits only (8–10 digits); no option to change country code. Matches the pattern used in SCR-IDP.01 (Mobile OTP) and SCR-IDP.43.