Admin Projects Interface Specs
This guide extracts the concrete admin-interface specification from the historical PRD for /admin/projects so the requirements remain available without keeping them embedded only in a historical product document.
Scope
- Route:
/admin/projects - Status: Phase 2 optional
- Source: extracted from the historical Admin Projects Interface Redesign PRD
- Related API endpoint proposals:
/docs/guides/api-specs
Goals
Primary Goals
- Fix admin visibility/authentication issues.
- Replace the card-heavy admin list with a compact table layout.
- Add smarter form controls for category, subcategory, and tags.
- Reduce input errors with validation and constrained selection.
- Remove public-view clutter from admin workflows.
Secondary Goals
- Maintain feature parity with the existing admin flow.
- Improve performance for large project sets.
- Preserve accessibility and keyboard navigation.
Functional Requirements
Authentication and Visibility
- Verify JWT token validation and role checking.
- Debug and fix admin-controls visibility.
- Show clear authentication status indicators.
- Gracefully handle authentication failures.
Table-Based Project List
- Replace the card layout with a sortable table.
- Required columns: Title, Category, Subcategory, Last Modified, Tags, Actions.
- Support bulk selection with checkboxes.
- Preserve quick actions such as edit, delete, and copy links.
- Support inline quick actions per row.
Enhanced Form Controls
- Category dropdown with existing values and an Add New option.
- Subcategory dropdown filtered by category with an Add New option.
- Tags multi-select with existing tags and an Add New option.
- Auto-complete support for dropdown-backed fields.
- Validation for new category and subcategory names.
Streamlined Admin UI
- Remove the tag cloud from admin mode.
- Hide redundant search filters in admin mode.
- Show project count and summary statistics.
- Preserve keyboard shortcuts such as
A,C,Delete,E, and/.
Project Management Features
- Quick add new project action.
- Bulk actions: delete, export, category change.
- Import/export support.
- Project duplication support.
Non-Functional Requirements
Performance
- Table should render efficiently for 500+ projects.
- Dropdown population should complete in under 100 ms.
- Form submission should complete in under 2 seconds.
Usability
- Preserve familiar keyboard shortcuts.
- Provide clear visual feedback for actions.
- Stay visually consistent with the existing Docusaurus theme.
Accessibility
- Target WCAG 2.1 AA compliance.
- Support screen readers.
- Ensure keyboard navigation across all admin features.
Technical Design
Component Interfaces
interface AdminProjectsTable {
projects: FlatProject[];
onEdit: (project: FlatProject) => void;
onDelete: (projects: FlatProject[]) => void;
onBulkAction: (action: string, projects: FlatProject[]) => void;
}
interface SmartSelector {
type: 'category' | 'subcategory' | 'tags';
value: string | string[];
options: string[];
onSelect: (value: string | string[]) => void;
onAddNew: (value: string) => void;
placeholder?: string;
multiple?: boolean;
}
interface ProjectForm {
project: Partial<Project>;
categories: string[];
subcategories: Record<string, string[]>;
tags: string[];
onSave: (project: SaveProjectInput) => Promise<void>;
onCancel: () => void;
}
Admin Data Helpers
interface CategoryManager {
getCategories(): string[];
getSubcategories(category: string): string[];
addCategory(category: string): void;
addSubcategory(category: string, subcategory: string): void;
}
interface TagsManager {
getAllTags(): string[];
getPopularTags(): string[];
addTag(tag: string): void;
getTagsByFrequency(): Record<string, number>;
}
Metadata Shape
interface ProjectMetadata {
categories: string[];
subcategories: Record<string, string[]>;
tags: string[];
lastUpdated: Date;
}
UI Mockups
Table Layout
┌─────────────────────────────────────────────────────────────────────────────┐
│ [✓] Title Category Subcategory Last Modified Actions │
├─────────────────────────────────────────────────────────────────────────────┤
│ [☐] Project Alpha Web App Frontend 2024-01-15 [Edit][Del] │
│ [☐] Project Beta Mobile iOS 2024-01-10 [Edit][Del] │
│ [☐] Project Gamma API Backend 2024-01-08 [Edit][Del] │
└─────────────────────────────────────────────────────────────────────────────┘
Enhanced Form
┌─────────────────────────────────────────────────────────────────────────┐
│ Category: [Web App v] [+ Add New] │
│ Subcategory: [Frontend v] [+ Add New] │
│ Title: [Project Name ] │
│ Slug: [project-name ] [Copy] │
│ Link: [https://... ] [Test] [Copy] │
│ Last Modified: [2024-01-15 ] │
│ Summary: [Brief description... ] │
│ [ ] │
│ Tags: [React x] [TypeScript x] [+ Add Tag v] │
│ │
│ [Save Project] [Cancel] │
└─────────────────────────────────────────────────────────────────────────┘
Acceptance Criteria
Authentication
- Admin controls are visible when the user has the admin role.
- Authentication status is visible and understandable.
- Non-admin users get graceful degradation.
Table Interface
- Projects render in sortable table format.
- Bulk selection and actions work correctly.
- Quick row actions remain accessible.
- Table remains efficient with 100+ projects.
Form Enhancements
- Category dropdown shows existing values and Add New.
- Subcategory dropdown filters by selected category.
- Tag selection supports multiple values and new tag creation.
- Validation prevents duplicate or invalid entries.
User Experience
- The interface stays focused on admin tasks.
- Existing keyboard shortcuts keep working.
- Import/export remains available.
- Actions provide clear visual feedback.
Risks and Mitigations
Technical Risks
- Large datasets may degrade table performance.
- Smart selectors may complicate form state.
Mitigations
- Consider pagination or virtualization.
- Add comprehensive tests and fallback input behavior.
Success Metrics
- Table render time under 500 ms for 200 projects.
- 50 percent reduction in clicks required to edit a project.
- 90 percent reduction in category/tag input errors.
Future Enhancements
- Project templates.
- Advanced table filtering and search.
- Project activity history and audit log.
- Drag-and-drop reordering.
- Batch editing.