mirror of
https://github.com/kikootwo/ReadMeABook.git
synced 2026-06-02 20:30:10 +00:00
Initial commit
This commit is contained in:
@@ -0,0 +1,81 @@
|
||||
# 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
|
||||
Reference in New Issue
Block a user