8.3 KiB
User Dashboards Documentation
Overview
The application provides different dashboard experiences based on user roles. Each role has access to specific features and views tailored to their responsibilities.
Role-Based Dashboards
1. Regular User (user) - Dashboard Page
Route: /dashboard
Access: All authenticated users with role user
Features:
Key Metrics Section
- Total Organizations: Count of all organizations in the system
- Total Sites: Count of all sites/locations
- Resource Flows: Number of active resource flows
- Matches: Number of successful matches
Impact Metrics
- CO₂ Saved: Total CO₂ emissions saved (in tonnes per year)
- Economic Value: Total economic value created annually
- Active Matches: Currently operational matches
Quick Actions
- Create Resource Flow: Navigate to resource creation page
- Find Matches: Navigate to matching dashboard
- Explore Map: Navigate to map view
- View Analytics: Navigate to analytics dashboard
Recent Activity Feed
- Last 20 system events
- Activity types: organization updates, matches, proposals
- Filterable by type and date
Active Proposals
- List of pending proposals requiring user attention
- Quick access to manage proposals
- Create new proposals
My Organizations Summary
- List of organizations owned/managed by the user
- Quick navigation to organization details
- Organization status indicators
Platform Health Indicators
- Match Success Rate: Percentage of successful matches
- Average Match Time: Average time to complete matches (in days)
- Active Resource Types: Number of different resource types in use
Navigation After Signup: Users are automatically redirected to /dashboard after successful registration.
2. City Administrator (admin) - Admin Dashboard
Route: /admin
Access: Users with role admin (city administrators)
Features:
Dashboard Statistics
- Total Organizations: Count with trend indicators
- Verified Organizations: Count and percentage of verified organizations
- Active Connections: Symbiotic links count
- New This Month: Count with comparison to previous month
Economic Connections Graph
- Interactive network visualization
- Sector-to-sector connections
- Filterable by sector and date range
- Export functionality (PNG/SVG)
Supply & Demand Analysis
- Top 10 most requested resources
- Top 10 most offered resources
- Bar chart visualization
- Time period selector
Organization Management
- Full organization table with filters
- Verification queue management
- Bulk operations
- Organization statistics
Additional Admin Features
User Management (/admin/users):
- List all users
- Create/edit user accounts
- Manage user roles and permissions
- View user activity logs
- User statistics
Content Management (/admin/content):
- Static pages management
- Announcements management
- Media library
Localization Management (/admin/localization/ui):
- UI translations editor
- Multi-language support (en, ru, tt)
- Translation status indicators
- Import/export functionality
Analytics (/admin/analytics):
- Organization analytics
- User activity statistics
- Matching statistics
- System health metrics
Settings (/admin/settings):
- System configuration
- Integration settings
- Email configuration
- Maintenance mode
Navigation After Signup: Administrators are automatically redirected to /admin after successful registration.
3. Content Manager (content_manager)
Route: /dashboard (same as regular user)
Access: Users with role content_manager
Features:
- Same dashboard as regular users
- Additional access to content management features
- Can create and edit organizations
- Can update content and localizations
- Can publish content
- Limited admin access (no user management or system settings)
Permissions:
organizations:read,organizations:create,organizations:updatecontent:read,content:create,content:update,content:publishlocalization:read,localization:updateanalytics:read
4. Viewer (viewer)
Route: /dashboard (same as regular user)
Access: Users with role viewer
Features:
- Read-only access to dashboard
- Can view organizations and content
- Can view analytics
- Cannot create or edit content
- Cannot manage organizations
Permissions:
organizations:readcontent:readanalytics:read
Dashboard Access Control
Protected Routes
All dashboard routes are protected by the ProtectedRoute component, which:
- Checks if user is authenticated
- Validates user role against required role
- Redirects to login if not authenticated
- Shows access denied if role doesn't match
Role Requirements
/dashboard: Requiresuserrole (orcontent_manager,viewer)/admin: Requiresadminrole/admin/*: All admin sub-routes requireadminrole
Signup Flow
User Registration
- User navigates to
/signup - Fills in registration form:
- Full Name (required, min 2 characters)
- Email (required, valid email format)
- Password (required, min 8 characters)
- Confirm Password (must match)
- Account Type (User or City Administrator)
- On successful registration:
- JWT token is stored in localStorage
- User is automatically logged in
- Redirect based on role:
admin→/adminuser→/dashboardcontent_manager→/dashboardviewer→/dashboard
Role Selection During Signup
Users can choose between:
- Regular User: Standard access to dashboard and features
- City Administrator: Full admin access (should be used carefully)
Note: In production, admin role assignment might require additional verification or approval process.
Dashboard Components
Shared Components
MainLayout: Main layout wrapper with navigationPageHeader: Page title and subtitleCard: Container for dashboard sectionsMetricItem: Display key metrics with iconsBadge: Status indicatorsButton: Action buttonsSpinner: Loading states
Admin-Specific Components
DashboardStats: Admin dashboard statisticsEconomicGraph: Network visualizationSupplyChainAnalysis: Supply/demand chartsOrganizationTable: Organization management table
Future Enhancements
Planned Features
- Role-Specific Widgets: Customizable dashboard widgets based on role
- Dashboard Customization: Users can arrange dashboard sections
- Notification Center: Centralized notifications for all roles
- Activity Timeline: Enhanced activity feed with filtering
- Quick Stats: Real-time statistics updates
- Export Functionality: Export dashboard data as reports
Security Considerations
- Admin role should require additional verification
- Consider implementing role approval workflow
- Add audit logging for admin actions
- Implement rate limiting on signup endpoint
- Add email verification for new accounts
API Endpoints
Authentication
-
POST /api/v1/auth/register: Create new user account- Body:
{ email, password, name, role } - Returns:
{ token, user }
- Body:
-
POST /api/v1/auth/login: Login existing user- Body:
{ email, password } - Returns:
{ token, user }
- Body:
-
GET /api/v1/auth/me: Get current user info- Headers:
Authorization: Bearer <token> - Returns:
{ id, email, name, role }
- Headers:
Dashboard Data
GET /api/v1/analytics/dashboard: Dashboard statisticsGET /api/v1/analytics/platform: Platform statisticsGET /api/v1/analytics/matching: Matching statisticsGET /api/v1/analytics/impact: Impact metrics
Admin Endpoints
GET /api/v1/admin/dashboard/stats: Admin dashboard statsGET /api/v1/admin/analytics/organizations: Organization analyticsGET /api/v1/admin/analytics/users: User activity statsGET /api/v1/admin/analytics/matching: Matching analytics
Summary
The application provides role-based dashboards that adapt to user permissions:
- Users: Focus on their organizations, proposals, and matches
- Admins: Full system management and analytics
- Content Managers: Content and organization management
- Viewers: Read-only access to information
All dashboards are responsive, accessible, and provide real-time data updates where applicable.