Skip to content

[US1-3] Add mandatory profile completion flow after registration #20

Closed
7 of 7 issues completed
Closed

Description

@NatSilprasert

User Story

As a newly registered user, I want to be required to complete my role-specific profile information right after registering, so that the platform has the data it needs before I can use other features.

Description

After a user completes registration (email/password + role selection), they must fill in additional profile information before accessing the rest of the app. The required fields differ depending on the user's role (student or tutor), based on the respective schema. Until the profile is complete, the user must be blocked from navigating to other pages.

Scope

  • Post-registration profile form, shown immediately after successful registration.
  • Role-aware form: students and tutors see different fields, based on their respective data schema.
  • Server-side and/or route-level guard that prevents navigation to other pages while the profile is incomplete.
  • Persist submitted profile data against the user's account.

Acceptance Criteria

  • Given a user has just completed registration, when registration succeeds, then they are directed to a profile completion page
  • Given the user's role, when the profile completion page loads, then a student sees the student-specific field set and a tutor sees the tutor-specific field set
  • Given the profile is incomplete, when the user attempts to navigate to other pages, then they cannot access them until all required fields are filled in
  • Given required fields are missing, when the user submits the form, then it is rejected with clear validation errors
  • Given all required fields are filled in, when the user submits the form successfully, then the profile data is saved and the user can proceed to the rest of the app

Out of Scope

  • Editing profile information after initial completion (assumed to be a separate settings/profile-edit issue).
  • Admin review or approval of submitted profile data.

Risk

  • The exact fields required per role (student vs. tutor) are not defined in the input or found in the current schema — this needs to be finalized before implementation, as it drives both the form and the backend schema.
  • Enforcing "cannot navigate elsewhere until complete" needs a clear mechanism (e.g. route guard/middleware) that should be aligned with how routing and auth state are structured in the app; the current codebase doesn't yet have this pattern established.

Metadata

Metadata

Labels

No labels
No labels

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions