Skip to content

feat(admin): build leadership admin dashboard #1920

@cdcore09

Description

@cdcore09

Summary

Build an admin dashboard for board members and staff to manage the membership, view analytics, and perform administrative actions.

Requirements

Member Management

  • Member directory with search, sort, and filter
  • View full member details (all profile fields + internal metadata)
  • Add members manually (invite by email)
  • Remove/deactivate members with reason
  • Edit member roles (promote to admin, demote)
  • Bulk actions (export, role changes)

Analytics & Visualization

  • Member growth chart (line chart: members over time)
  • Institution breakdown (bar chart: top institutions by member count)
  • Geographic distribution (if location data available)
  • Working group participation (which groups are most active)
  • New members per month trend
  • Retention metrics (active vs inactive)

Data Export

  • Export member list as CSV
  • Configurable columns (select which fields to export)
  • Date range filtering for exports

Audit Log

  • View all admin actions (who did what, when)
  • Filter by action type, admin user, date range
  • Log entries for: role changes, member removal, manual additions

Context

Parent issue: #1916
Depends on: #1917 (schema), #1918 (auth — admin role required), #1919 (profiles — member data to display)

Implementation Notes

  • Route: /admin with sub-routes (/admin/members, /admin/analytics, /admin/audit)
  • Charts: Recharts or @visx (both work well with React + Tailwind)
  • Dashboard layout: sidebar nav + main content (different from the public site layout)
  • Must be fully protected — only admin and super_admin roles can access
  • Consider real-time updates via polling or WebSocket for active member counts

Metadata

Metadata

Assignees

No one assigned

    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