UNPKG

realtimecursor

Version:

Real-time collaboration system with cursor tracking and approval workflow

178 lines (144 loc) 6.53 kB
# Admin Panel Features ## Overview The admin panel provides comprehensive user management capabilities for administrators. Only users with the `admin` role can access these features. ## Default Admin Account - **Email**: `admin@example.com` - **Password**: `Admin123!` ## Admin Features ### 1. Dashboard Statistics - **Total Users**: Shows the total number of registered users - **Regular Users**: Count of users with 'user' role - **Admin Users**: Count of users with 'admin' role - **New This Week**: Users registered in the last 7 days ### 2. User Management #### View Users - **List All Users**: Display all users in a paginated table - **User Information**: Name, email, role, creation date, last login - **Visual Indicators**: Crown icon for admin users #### Filter & Search - **Role Filter**: Filter users by role (All, Users, Admins) - **Search**: Search users by name or email address - **Real-time Filtering**: Results update as you type #### Create Users - **Add New Users**: Create users with all required information - **Role Assignment**: Assign user or admin role during creation - **Password Validation**: Enforces strong password requirements - **Duplicate Prevention**: Prevents creation of users with existing emails #### Edit Users - **Profile Updates**: Edit user's first name, last name, and email - **Inline Editing**: Quick edit form without page navigation - **Validation**: Ensures email uniqueness and required fields #### Role Management - **Role Updates**: Change user roles between 'user' and 'admin' - **Self-Protection**: Admins cannot change their own role - **Real-time Updates**: Changes reflect immediately in the interface #### Delete Users - **Single Delete**: Delete individual users with confirmation - **Bulk Delete**: Select multiple users and delete them at once - **Self-Protection**: Admins cannot delete their own account - **Confirmation Dialogs**: Prevents accidental deletions ### 3. Security Features - **Admin-Only Access**: All admin endpoints require admin role - **Token Authentication**: JWT-based authentication for all requests - **Self-Protection**: Prevents admins from modifying/deleting themselves - **Input Validation**: Server-side validation for all user inputs ## API Endpoints ### User Statistics ``` GET /admin/stats ``` Returns user count statistics. ### User Management ``` GET /admin/users # Get all users GET /admin/users?role=admin # Filter by role GET /admin/users?search=john # Search users GET /admin/users/:userId # Get specific user POST /admin/users # Create new user PUT /admin/users/:userId # Update user profile PUT /admin/users/:userId/role # Update user role DELETE /admin/users/:userId # Delete single user DELETE /admin/users # Bulk delete users ``` ## Frontend Components ### AdminPanel Component - Main admin interface with tabbed navigation - Statistics dashboard with visual cards - User table with sorting and filtering - Bulk selection and actions - Create/Edit user forms ### Features - **Responsive Design**: Works on desktop and mobile devices - **Real-time Updates**: Statistics and user lists update after changes - **Loading States**: Shows loading indicators during API calls - **Error Handling**: Displays user-friendly error messages - **Success Feedback**: Confirms successful operations ## Usage Instructions ### Accessing Admin Panel 1. Log in with an admin account 2. Navigate to the Profile section 3. Click on "Admin Panel" in the sidebar ### Managing Users 1. **View Users**: The main table shows all users with their details 2. **Search**: Use the search box to find specific users 3. **Filter**: Use the role dropdown to filter by user type 4. **Create**: Click "Add User" to create new users 5. **Edit**: Click the edit icon next to any user 6. **Delete**: Click the trash icon or use bulk delete for multiple users 7. **Change Roles**: Use the role dropdown in each user row ### Bulk Operations 1. **Select Users**: Check the boxes next to users you want to manage 2. **Select All**: Use the header checkbox to select all visible users 3. **Bulk Delete**: Click "Delete Selected" when users are selected ## Security Considerations ### Password Requirements - Minimum 8 characters - At least one uppercase letter - At least one lowercase letter - At least one number - At least one special character (@$!%*?&) ### Admin Protections - Admins cannot delete themselves - Admins cannot change their own role - All admin actions require valid JWT tokens - Rate limiting on authentication endpoints ## Testing Run the admin functionality test: ```bash node test-admin-enhanced.js ``` This will test all admin features including: - User creation and management - Role updates - Bulk operations - Statistics tracking - Search and filtering ## Technical Implementation ### Backend (Node.js/Express) - **Authentication Service**: JWT-based auth with role checking - **Admin Middleware**: Validates admin role for protected routes - **In-Memory Storage**: Uses Map for user storage (replace with database in production) - **Input Validation**: Server-side validation for all inputs - **Error Handling**: Comprehensive error handling and logging ### Frontend (React) - **Context API**: Centralized authentication and user management - **Custom Hooks**: useAuth hook for authentication state - **Component Architecture**: Modular components for reusability - **State Management**: Local state with React hooks - **UI Components**: Lucide React icons and Tailwind CSS styling ## Future Enhancements ### Potential Improvements - **Database Integration**: Replace in-memory storage with persistent database - **User Activity Logs**: Track user actions and login history - **Email Notifications**: Send emails for account creation/updates - **Advanced Filtering**: Date ranges, multiple criteria - **Export Functionality**: Export user data to CSV/Excel - **User Permissions**: Granular permission system beyond admin/user - **Audit Trail**: Track all admin actions for compliance - **Bulk Import**: Import users from CSV files ### Scalability Considerations - **Pagination**: Implement server-side pagination for large user bases - **Caching**: Add Redis caching for frequently accessed data - **Search Optimization**: Implement full-text search with Elasticsearch - **Rate Limiting**: Enhanced rate limiting for admin operations - **Monitoring**: Add logging and monitoring for admin actions