mirror of
https://github.com/kikootwo/ReadMeABook.git
synced 2026-06-02 20:30:10 +00:00
2.6 KiB
2.6 KiB
Admin Dashboard
Status: ✅ Implemented
Comprehensive overview of system metrics, active requests, download monitoring, and quick access to settings.
Sections
- Metrics: Total requests, active downloads, completed/failed requests, total users, system health
- Active Downloads: Real-time table with title, progress, speed, ETA
- Recent Requests: Last 50 with status and timestamps
- Quick Actions: Links to settings, users, scheduled jobs, system logs
Data Sources
GET /api/admin/metrics
- Total requests (all time)
- Active downloads (status: 'downloading')
- Completed requests (status: 'downloaded' or 'available', last 30 days)
- Failed requests (status: 'failed', last 30 days)
- Total users
- System health indicators
GET /api/admin/downloads/active
- Request ID, title, progress %, speed, ETA, user
GET /api/admin/requests/recent
- Request ID, title, user, status, created/completed dates
GET /api/admin/users
- User ID, Plex ID, username, email, role, avatar, created/updated dates, last login, request count
PUT /api/admin/users/[id]
- Update user role (user/admin)
- Prevents self-demotion
GET /api/admin/logs
- Query params: page, limit, status, type
- Returns: Job logs with request/audiobook/user details, pagination info
- Filters: status (all/pending/active/completed/failed/delayed/stuck), type (all job types)
Features
- Auto-refresh every 10 seconds (SWR)
- Back to Home button in header
- Admin role required
- Real-time progress updates
Navigation
/admin/jobs- Scheduled jobs management (trigger, edit schedule, enable/disable)/admin/settings- System settings (Plex, Prowlarr, paths)/admin/users- User management (view users, change roles)/admin/logs- System logs (view job history, errors, filter by status/type)
User Management Features
- List all users with avatar, email, role, request count, last login
- Edit user roles (user/admin)
- Cannot change own role (security)
- Shows request count per user
- Role badges (purple for admin, gray for user)
System Logs Features
- Real-time job monitoring (10s refresh)
- Filter by status (pending/active/completed/failed/delayed/stuck)
- Filter by job type (search_indexers/monitor_download/organize_files/scan_plex/match_plex)
- Shows related audiobook/user for request jobs
- Expandable error messages
- Duration calculation
- Attempt tracking (current/max)
- Pagination (50 logs per page)
- Shows Bull job ID
Tech Stack
- React Server Components + SWR
- Tailwind CSS
- Prisma aggregations for metrics
- Database queries with indexing