Skip to content

Replace real names with auto-generated aliases in course discussions #33

@amoscicki

Description

@amoscicki

Summary

User privacy concern: course video discussions currently display users' real names (from Google OAuth). These should be replaced with auto-generated aliases to protect user privacy.

Current Behavior

When a user registers via Google OAuth, their real name (googleUser.name) is stored as displayName in the profiles table and displayed publicly in course discussions.

Registration flow (src/use-cases/users.ts:51):

await createProfile(existingUser.id, googleUser.name, googleUser.picture);

Discussion display (src/routes/learn/$slug/-components/comment-list.tsx:210):

{comment.profile.displayName}

Expected Behavior

  • During registration, an alias should be auto-generated instead of using the real name
  • The alias should be displayed in course discussions
  • Users should optionally be able to change their alias later via profile settings

Proposed Solution

  1. Add alias generation utility - Create a function to generate unique aliases using common patterns:

    • Adjective + Noun + Number (e.g., "SwiftFalcon42", "BrightCoder78")
    • Or use a library like unique-names-generator
  2. Modify registration flow - Update createGoogleUserUseCase() to generate an alias:

    const alias = generateUniqueAlias();
    await createProfile(existingUser.id, alias, googleUser.picture);
  3. Add uniqueness check - Ensure generated aliases don't collide with existing ones

  4. Migration consideration - Existing users with real names may need a migration to generate aliases

Affected Areas

  • Use Cases: /src/use-cases/users.ts - registration logic
  • Data Access: /src/data-access/profiles.ts - profile creation
  • Components: /src/routes/learn/$slug/-components/comment-list.tsx - already uses displayName
  • New utility: alias generation function

Acceptance Criteria

  • New users receive auto-generated alias instead of real name
  • Aliases are unique across the platform
  • Aliases are displayed in course video discussions
  • Aliases follow a consistent, readable pattern
  • Existing users' display names are migrated to aliases (or flagged for update)
  • Users can optionally customize their alias in profile settings

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions