alumni_lookup

Feature 7: Admin Tools

⚠️ PLANNING DOCUMENT - This describes features that are NOT YET IMPLEMENTED.


Overview

Admin tools enable the Engagement Team and CLCs to manage the Champion Portal effectively.


Role-Based Access

Tool Champion CLC Engagement Team
View Champions Own profile Regional All
Approve Champions
Assign Roles
Reassign Regions
Approve Events Regional All
Approve Stories
Moderate Posts Regional All
Pin Announcements Regional All
View Reports Regional All
Bulk Import

7.1 Champion Management

Approve New Champions

When a Champion completes registration:

  1. Account appears in “Pending Verification” queue
  2. Engagement Team reviews BUID match
  3. Approve → Champion is verified, full access
  4. Reject → Notification sent, limited access

Verification Queue Fields: | Field | Description | |——-|————-| | Name | Submitted name | | Email | Account email | | BUID | Submitted BUID | | Alumni Match | Matched Alumni record (if found) | | Registration Date | When account created | | Actions | Approve, Reject, Request More Info |

Assign Roles

Action Description
Promote to CLC Grant regional admin permissions
Demote from CLC Remove regional admin permissions
Assign Admin Grant Engagement Team access (rare)

View Activity Logs

Track Champion engagement:

Region Reassignment

Manually change a Champion’s primary region:

Bulk Import

Import Champions from existing database:


7.2 Content Moderation

Event Approval

CLC Workflow:

  1. Events submitted by Champions in their region appear in queue
  2. Review event details
  3. Approve → Event published to calendar
  4. Request Changes → Notification to Champion
  5. Reject → Notification with reason

Engagement Team Workflow:

Story Approval

Stories go directly to Engagement Team:

  1. Review story content
  2. Approve → Published to portal
  3. Forward to Marketing → For external publication
  4. Reject → Notification with reason

Post Moderation

Moderation Queue: | Status | Description | |——–|————-| | Reported | Flagged by Champions | | Auto-flagged | Detected by content filter | | Hidden | Removed by CLC, pending review |

Actions:

Pin Announcements

CLCs and Engagement Team can pin posts:


7.3 Content Publishing

Posts and Announcements

Engagement Team can create official posts:

Spotlight Stories

Feature stories on the dashboard:

Add Events

Engagement Team can create events directly:


7.4 Regional Management

Region Configuration

Setting Description
Region Name Display name (can be friendlier than ZIP grouping)
District Mapping Which ZIPs belong to which districts
Featured Districts Highlight active districts (50+ alumni)
CLC Assignment Who manages this region

District/ZIP Management

The ZIP → District → Region hierarchy:

Admin Functions:


Admin Dashboard

Quick Stats

Recent Activity

Quick Actions


Notification Settings (Admin)

Engagement Team notifications:

CLC notifications:


Technical Notes

Admin Controllers

# Internal admin (Engagement Team) - extends existing internal portal
class Admin::ChampionsController < ApplicationController
  before_action :authenticate_user!
  before_action :ensure_admin  # Internal admin
  
  def index
    @champions = Champion.pending_verification
  end
  
  def verify
    @champion = Champion.find(params[:id])
    @champion.verify!
  end
end

# CLC admin - Champion Portal namespace
class Champions::Admin::BaseController < Champions::BaseController
  before_action :require_clc!
end

class Champions::Admin::EventsController < Champions::Admin::BaseController
  def pending
    @events = Event.pending.for_region(current_champion.region)
  end
end

Audit Logging

Track all admin actions:

class AdminAction < ApplicationRecord
  belongs_to :actor, class_name: 'User'  # or Champion for CLC
  belongs_to :target, polymorphic: true
  
  # action: 'verified', 'rejected', 'promoted_to_clc', etc.
  # details: JSON blob with additional context
end