Access & Guard
- Only the ADMIN role can access
/admin and related API routes; enforced by middleware.ts and server-side checks
- Admin Dashboard:
/admin
- KPI cards: Total, Published, Draft, Hold, Rejected, Pending course counts
- Quick links to manage Categories and Subcategories
- Courses panel leading to full moderation list
- Categories Management:
/admin/categories
- Create new categories with validation and duplicate checks
- View the list of all categories with IDs and counts
- Use case: define top-level taxonomy before instructors submit courses
- Subcategories Management:
/admin/subcategories
- Create subcategories mapped to a selected category
- Accordion view grouped by category with per-category subcategory counts
- Courses Moderation: /admin/courses
- Tabular list with: Title, Instructor (name/email), Category/Subcategory, Status badge, Created timestamp