Skip to main content

Admin Panel Documentation

Complete documentation for the FishingLog admin control panel API.

Table of Contents

  1. Overview
  2. Architecture
  3. Controllers
  4. Role Hierarchy
  5. Permissions
  6. AI Moderation
  7. API Endpoints
  8. Frontend Integration

Overview

The admin panel is designed with a user-centric approach, focusing on what admins need to accomplish rather than technical database operations. All endpoints require admin authentication and follow consistent patterns.

Architecture

Authorization

[AdminOnly] - Requires UserRole.Admin or UserRole.Owner [OwnerOnly] - Requires UserRole.Owner only [RequirePermission("permission-key")] - Requires specific permission

Design Principles

  1. Task-Oriented Endpoints - Named for what admins want to do
  2. Soft Deletes - Deactivate rather than delete
  3. Usage Statistics - Show how entities are used
  4. Pagination & Filtering - All list endpoints support this
  5. Helpful Error Messages - Clear, actionable errors

Controllers

Core Management

  • AdminLookupController - Manage lookup table values (enum extensions)
  • AdminBrandController - Manage fishing gear brands
  • AdminFishSpeciesController - Manage fish species and taxonomy
  • AdminUserController - Manage users, roles, subscriptions, activity timeline
  • AdminDashboardController - System overview, analytics, statistics

Content Moderation

  • AdminModerationController - Review AI-flagged content, approve/reject
  • AdminModerationSettingsController - Configure AI moderation settings
  • AdminModerationRulesController - Manage automated moderation rules
  • AdminUserBanController - Ban users, manage appeals

Financial & Compliance

  • AdminTournamentController - Approve tournaments, monitor finances
  • AdminTournamentOrganizerController - Verify organizers, manage permissions
  • AdminPaymentController - View payments, process refunds
  • AdminReportController - Handle user reports/complaints

System Management

  • AdminRegulationController - Manage state regulations, zones, seasons
  • AdminEventController - Approve events, feature content
  • AdminSystemSettingsController - Site-wide configuration
  • AdminAnnouncementController - Site-wide announcements
  • AdminEmployeeController - Manage admin/moderator employees
  • AdminAuditLogController - View audit logs

Role Hierarchy

Owner (You - Site Owner)

  • Full access to everything
  • Can manage system settings
  • Can manage employees and permissions
  • Cannot be demoted or banned
  • Use [OwnerOnly] attribute

Admin (Your Employees)

  • Can manage users, content, tournaments, events
  • Can ban users
  • Cannot modify system settings (unless granted permission)
  • Cannot manage other admins' permissions
  • Has permissions by default (unless explicitly denied)
  • Use [AdminOnly] attribute

Moderator (Content Moderators)

  • Can moderate content
  • Cannot ban users or manage system
  • Needs explicit permissions granted
  • Use [RequirePermission] attribute

Permissions

Granular permissions via AdminPermission entity:

  • moderation.approve - Approve flagged content
  • moderation.reject - Reject content
  • users.ban - Ban users
  • tournaments.approve - Approve tournaments
  • payments.refund - Process refunds
  • settings.modify - Modify system settings

AI Moderation

Complete AI-powered content moderation system:

  • ✅ Checks posts/comments before publishing
  • ✅ Extensible provider system (OpenAI, AWS, custom)
  • ✅ Admin-configurable settings
  • ✅ Pre-moderation workflow
  • ✅ Review queue
  • ✅ Cost tracking

See AI_MODERATION_SETUP.md for setup guide.

API Endpoints

Dashboard

  • GET /api/admin/dashboard/overview - System statistics
  • GET /api/admin/dashboard/analytics/user-growth - User growth charts
  • GET /api/admin/dashboard/analytics/revenue - Revenue analytics
  • GET /api/admin/dashboard/analytics/popular - Popular content

Users

  • GET /api/admin/users - List users
  • GET /api/admin/users/{id} - Get user details
  • PUT /api/admin/users/{id}/role - Change role
  • GET /api/admin/users/{id}/activity-timeline - User activity history

Moderation

  • GET /api/admin/moderation/pending - Pending review queue
  • POST /api/admin/moderation/post/{id}/approve - Approve post
  • POST /api/admin/moderation/post/{id}/reject - Reject post
  • GET /api/admin/moderation-settings - Get moderation settings
  • PUT /api/admin/moderation-settings - Update settings

Payments

  • GET /api/admin/payments - List all payments
  • GET /api/admin/payments/failed - Failed payments
  • POST /api/admin/payments/{id}/refund - Process refund

Reports

  • GET /api/admin/reports - List user reports
  • POST /api/admin/reports/{id}/resolve - Resolve report

See API_ENDPOINTS_SUMMARY.md for complete endpoint list.

Frontend Integration

The API is designed for a standalone React/Vue admin panel. See ADMIN_UI_RECOMMENDATIONS.md for frontend architecture recommendations.

Example Frontend Structure

/admin
/dashboard - Overview statistics
/users - User management
/moderation - Content moderation queue
/payments - Payment management
/reports - User reports
/settings - System settings
/tournaments - Tournament approvals

Next Steps

See ADMIN_NEXT_STEPS.md for prioritized feature roadmap.