Verification & Moderation

Admin tools for trainer verification, content moderation, user management, and platform oversight. Includes the verified badge system, admin approval workflows, and internal staff dashboards.

Overview

The admin system supports two internal roles: admin (full platform access) and member (limited internal staff). These roles are distinct from the trainer and client roles and are managed through the users table's role enum. Admins have the authority to verify trainers, moderate content, manage users, and oversee platform operations.

The verification system is a trust signal for the platform. Trainers apply for verified status after completing their onboarding profile, including credentials and certifications. Admin staff review applications by examining uploaded certifications, degrees (institution and year), and major certifications (NASM, ACSM, ACE, NSCA, ISSA). Upon approval, trainers receive a verified badge that appears on their profile, in search results, and next to their name throughout the platform.

Content moderation covers social feed posts, program marketplace listings, trainer reviews, and user-generated content. The moderation workflow includes flagging, review queues, and enforcement actions (warning, content removal, account suspension). The Network tier subscription includes automatic verified badge eligibility, streamlining the verification process for premium trainers.

Roles & Permissions

Permission Admin Member Trainer Client
Approve/reject verification requests
Moderate content (remove posts, reviews)
Manage users (suspend, delete)
View platform analytics
Manage lookup values / platform config
Apply for verification

Verification Workflow

Unverified
Application Submitted
Under Review
Verified
Rejected (with reason)
More Info Requested

User Stories

Admin

As an admin, I want to review trainer verification applications so that I can ensure only qualified trainers receive the verified badge.

As an admin, I want to approve or reject applications with a reason so that trainers understand the decision and can reapply if needed.

As an admin, I want to view flagged content in a moderation queue so that I can take action on inappropriate posts or reviews.

As an admin, I want to suspend or ban users who violate platform guidelines so that the community remains safe and professional.

As an admin, I want to manage lookup values (specialties, goals, equipment) so that platform options stay current and relevant.

As an admin, I want to view platform-wide analytics so that I can track growth, engagement, and revenue metrics.

Trainer

As a trainer, I want to apply for verified status so that clients can trust my qualifications and expertise.

As a trainer, I want to see my verification status so that I know where my application stands in the review process.

Data Model

Table Column Type Description
users role enum admin | member | trainer | client
is_suspended boolean Account suspension flag
trainer_profiles is_verified boolean Whether trainer has verified badge
verification_status enum none | pending | approved | rejected
certifications jsonb Uploaded cert files and metadata
content_reports (planned) id uuid Primary key
reporter_id uuid (FK) User who flagged the content
content_type enum post | review | program | profile
reason text Why the content was reported
status enum pending | reviewed | actioned | dismissed

Screens & Routes

/_admin/dashboard (Planned) Admin overview with platform metrics
/_admin/verification (Planned) Verification request queue and review interface
/_admin/moderation (Planned) Content moderation queue with flagged items
/_admin/users (Planned) User management with search, filter, and actions
/_admin/lookup-values (Planned) Platform configuration and lookup value editor

Acceptance Criteria

  • User roles (admin/member/trainer/client) are defined in the database with proper RLS
  • Trainer profiles include verification status and certification storage
  • Trainer onboarding collects credentials, degrees, and certification uploads
  • Admin dashboard with platform metrics and verification queue is not yet built
  • Verification review interface for admins is not yet implemented
  • Content moderation queue and reporting system are not yet built
  • User suspension and enforcement actions are not yet implemented
  • Verified badge display across all profile surfaces (search, cards, detail pages)

API Surface

Server Functions (Mostly Planned)

TODO getVerificationQueue Admin: list pending verification requests
TODO reviewVerification Admin: approve/reject with reason
TODO applyForVerification Trainer: submit verification application
TODO getModerationQueue Admin/Member: list flagged content
TODO suspendUser Admin: suspend user account

Current Status

Built

Role System

User roles (admin/member/trainer/client) defined in database with role-based route guards and RLS policies.

Built

Credential Collection

Trainer onboarding step 2 collects certifications, degrees, and uploads for verification.

Built

Verification Fields

is_verified and verification_status columns on trainer_profiles table.

Not Started

Admin Dashboard

Platform-wide metrics, verification queue, user management, and moderation tools.

Not Started

Moderation System

Content flagging, moderation queue, enforcement actions (warning, removal, suspension).

Not Started

Verified Badge UI

Badge component displayed across search results, profile cards, and detail pages.