Navigation Structure Analysis
This document analyzes the current navigation structure of the SCORM API website, identifying issues with navigation hierarchy, menu organization, context switching, feature discoverability, and information architecture.
Current Navigation Implementation
Navigation Component: UnifiedNav
Location: apps/scorm-api/components/navigation/UnifiedNav.tsx
The SCORM API uses a single unified navigation component that dynamically adjusts based on user context:
- Public Context: Unauthenticated users
- Customer Context: Authenticated tenant users
- Admin Context: System administrators
Navigation Hierarchy
Level 1: Top-Level Navigation
- Logo (always visible, links to
/) - Context-Specific Links (public/customer/admin)
- Docs Dropdown (always visible)
- Auth Controls (sign in/sign up or user menu)
Level 2: Dropdown Menus
- Dashboard Dropdown (customer context)
- Admin Dropdown (admin context)
- Docs Dropdown (all contexts)
Public Navigation Structure
Desktop Navigation (Public Context)
Direct Links:
- Features →
/features - Pricing →
/pricing
Dropdowns:
- Docs → Contains:
- Documentation →
/docs - API Reference →
/api/docs
- Documentation →
Right Side:
- Sign In →
/sign-in?redirect_url=/dashboard - Get Started →
/sign-up?redirect_url=/onboarding/checkout
Issues Identified
Limited Top-Level Options
- Only 2 direct links (Features, Pricing)
- Docs hidden in dropdown (reduces discoverability)
- API Reference also in dropdown (important for developers)
Inconsistent Link Patterns
- Some links are direct (Features, Pricing)
- Some links are in dropdowns (Docs, API Reference)
- No clear rationale for the distinction
Missing Quick Access
- No direct link to status page (
/api/health) - No direct link to support/contact
- Documentation requires dropdown click
- No direct link to status page (
Customer Navigation Structure
Desktop Navigation (Customer Context)
Dropdowns:
Dashboard → Contains 8 items:
- Dashboard →
/dashboard - My Learning →
/learner/dashboard - Reports →
/dashboard/reports - SCORM Dispatch →
/dashboard/dispatch - API Keys →
/dashboard/api-keys - Usage →
/dashboard/usage - Webhooks →
/dashboard/webhooks - Billing →
/dashboard/billing
- Dashboard →
Admin (if admin) → Contains 9 items (see Admin Navigation)
Docs → Contains:
- Documentation →
/docs - API Reference →
/api/docs
- Documentation →
Right Side:
- User Button (Clerk UserButton component)
Issues Identified
Overwhelming Dashboard Dropdown
- 8 items in single dropdown
- No visual grouping or categorization
- All items at same hierarchy level
- Cognitive load: Users must scan all 8 items to find what they need
Unclear Feature Grouping
- "My Learning" (learner-focused) mixed with admin/management features
- "Reports" and "Usage" are similar concepts but separate
- "API Keys", "Webhooks", and "Billing" are configuration/settings but not grouped
Missing Logical Categories
- No grouping by function (Content, Analytics, Configuration, Account)
- No grouping by user type (Customer Management, Learning, Administration)
- Flat structure doesn't match user mental models
Inconsistent Naming
- "Dashboard" as dropdown label, but also a page name
- "My Learning" vs "Dashboard" (both are dashboards)
- "Reports" vs "Usage" (both show analytics)
Hidden Important Features
- "SCORM Dispatch" buried in dropdown (important feature)
- "Usage" and "Billing" separated (related concepts)
- "API Keys" and "Webhooks" separated (both are integrations)
No Quick Access
- Most-used features require dropdown navigation
- No pinned/favorite items
- No recent items tracking
Admin Navigation Structure
Desktop Navigation (Admin Context)
Dropdowns:
Dashboard (customer items, if also customer)
Admin → Contains 9 items:
- Admin Dashboard →
/admin - Reports (All Tenants) →
/admin/reports/learner-progress - Custom Reports (All Tenants) →
/admin/reports/custom - Packages (All Tenants) →
/admin/packages - Webhooks (All Tenants) →
/admin/webhooks - Tenants →
/admin/tenants - API Keys (All Tenants) →
/admin/api-keys - System →
/admin/system - Audit Logs →
/admin/audit-logs
- Admin Dashboard →
Docs → Contains:
- Documentation →
/docs - API Reference →
/api/docs
- Documentation →
Issues Identified
Redundant Labeling
- "(All Tenants)" suffix on many items (redundant for admin context)
- "Admin Dashboard" when already in Admin dropdown
- Creates visual clutter
No Grouping
- 9 items in flat list
- No separation between:
- Overview/Monitoring (Dashboard, System)
- Data Management (Packages, Tenants, API Keys, Webhooks)
- Analytics (Reports, Custom Reports)
- Compliance (Audit Logs)
Inconsistent Patterns
- Some items have "(All Tenants)" suffix, some don't
- "Reports" vs "Custom Reports" (could be sub-items)
- "System" is vague (what does it contain?)
Missing Hierarchy
- All admin functions at same level
- No way to distinguish critical vs. routine tasks
- No progressive disclosure for less-used features
Mobile Navigation Structure
Mobile Menu (All Contexts)
Implementation: Hamburger menu that expands to show all navigation items
Structure:
- All items from desktop navigation
- Grouped by context (public/customer/admin)
- Docs section separated with border
- Auth buttons at bottom
Issues Identified
Long Scroll Lists
- Customer context: 8 dashboard items + admin items (if admin) + docs
- Can be 15+ items to scroll through
- No collapsible sections
- No search functionality
No Visual Hierarchy
- All items styled the same
- No distinction between primary and secondary actions
- No grouping or sections
Inefficient Navigation
- Must scroll to find items
- No quick access to frequently used features
- Menu closes after selection (good), but requires reopening for next item
Context Switching Analysis
Current Implementation
The navigation uses a context prop to determine which items to show:
context="public"→ Public navigationcontext="customer"→ Customer navigationcontext="admin"→ Admin navigation (ifisAdmin=true)
Issues Identified
Abrupt Context Changes
- When user signs in, navigation completely changes
- No smooth transition or onboarding
- Users may lose their place
Mixed Contexts
- Admins who are also customers see both dropdowns
- Can be confusing which items are for which role
- No clear visual distinction
No Context Indicators
- No badge or indicator showing current context
- Users may not realize they're in admin vs. customer mode
- Easy to accidentally access wrong features
Feature Discoverability Issues
Hidden Features
SCORM Dispatch
- Buried in Dashboard dropdown
- Important feature for many customers
- Not visible until dropdown opened
Usage Metrics
- In Dashboard dropdown
- Important for quota management
- Not prominently displayed
Credentials Management
- There's a
/dashboard/credentialspage (API keys, webhooks, dispatches) - But it's not in navigation at all
- Users must discover it through other means
- There's a
xAPI Statements
- There's a
/dashboard/xapipage - Not in navigation dropdown
- Only accessible via dashboard widget or direct URL
- There's a
Package Details
- Package management pages exist (
/dashboard/packages/[id]) - Not in navigation (expected, but no breadcrumbs)
- Package management pages exist (
Discoverability Problems
No Onboarding Tour
- New users don't know what features exist
- No guided tour of navigation
- No tooltips or help text
No Feature Highlights
- New features not highlighted
- No "New" badges
- No announcements or notifications
No Search
- Can't search for features
- Must know exact name or location
- No fuzzy matching or suggestions
Information Architecture Issues
Mental Model Mismatches
"Dashboard" Confusion
- "Dashboard" is both a dropdown label and a page
- Users expect "Dashboard" to be a link, not a dropdown
- Mental model: Dashboard = main page, not a menu
Feature Categorization
- Current: Flat list by route structure
- Expected: Grouped by function or user goal
- Mismatch causes confusion
Admin vs. Customer Separation
- Admins see both customer and admin items
- No clear separation or grouping
- Easy to mix up which features are for which role
Cognitive Load
Too Many Choices
- Customer dropdown: 8 items
- Admin dropdown: 9 items
- Docs dropdown: 2 items
- Total: 19+ items to process
- Exceeds 7±2 rule for working memory
No Progressive Disclosure
- All features shown at once
- No way to hide less-used features
- No personalization or customization
No Visual Hierarchy
- All items styled equally
- No distinction between:
- Frequently used vs. rarely used
- Primary vs. secondary actions
- Critical vs. optional features
Navigation Patterns Analysis
Current Patterns
Dropdown Menus
- Used for: Dashboard, Admin, Docs
- Pattern: Click to open, shows list of items
- Issue: All items at same level, no hierarchy
Direct Links
- Used for: Features, Pricing (public only)
- Pattern: Single click to navigate
- Issue: Inconsistent with dropdown pattern
Context Switching
- Pattern: Navigation changes based on authentication/role
- Issue: Abrupt changes, no smooth transitions
Missing Patterns
Mega Menus
- Could group related items
- Show descriptions and icons
- Better for many items
Sidebar Navigation
- Could provide persistent navigation
- Better for complex applications
- Common in dashboards
Breadcrumbs
- Missing on detail pages
- No way to see navigation path
- Hard to navigate back
Quick Actions
- No quick access to common tasks
- No keyboard shortcuts
- No command palette
Specific Navigation Confusion Points
Confusion Point 1: "Dashboard" Dropdown
Issue: Users expect "Dashboard" to be a direct link, not a dropdown menu.
Evidence:
- "Dashboard" is a common term for main page
- Dropdown pattern is unexpected
- Users may click expecting to go to dashboard, but see menu instead
Impact: High - Affects all customer users
Confusion Point 2: "My Learning" Location
Issue: "My Learning" is in customer Dashboard dropdown, but it's for learners, not customers.
Evidence:
- "My Learning" is learner-focused
- Customers manage packages, learners take courses
- Mixed user types in same dropdown
Impact: Medium - Confusing for customers who are also learners
Confusion Point 3: Reports vs. Usage
Issue: Two separate items for similar analytics concepts.
Evidence:
- "Reports" →
/dashboard/reports(learner progress, custom reports) - "Usage" →
/dashboard/usage(quota metrics, API usage) - Both show analytics, but separated
Impact: Medium - Users may not know which to use
Confusion Point 4: Missing Credentials Page
Issue: /dashboard/credentials exists but not in navigation.
Evidence:
- Page exists and works
- Not linked in navigation
- Users must discover through other means
Impact: High - Important features hidden
Confusion Point 5: Admin "(All Tenants)" Suffix
Issue: Redundant labeling in admin context.
Evidence:
- Admin already knows they see all tenants
- "(All Tenants)" adds visual clutter
- Inconsistent application (some have it, some don't)
Impact: Low - Visual clutter, not functional issue
Missing Navigation Elements
1. Breadcrumbs
- Missing on: All detail pages (
/dashboard/packages/[id],/admin/packages/[id], etc.) - Impact: Users can't see where they are in hierarchy
- Solution: Add breadcrumb navigation
2. Quick Actions Menu
- Missing: No quick access to common actions
- Impact: Users must navigate through multiple pages for simple tasks
- Solution: Add command palette or quick actions
3. Recent Items
- Missing: No tracking of recently visited pages
- Impact: Users must remember and navigate to frequently used pages
- Solution: Add recent items to navigation
4. Favorites/Bookmarks
- Missing: No way to bookmark frequently used features
- Impact: Users must navigate through dropdowns repeatedly
- Solution: Add favorites functionality
5. Search Navigation
- Missing: No search within navigation
- Impact: Users must know exact feature name and location
- Solution: Add search to navigation
6. Context Indicators
- Missing: No clear indication of current context (public/customer/admin)
- Impact: Users may not realize which mode they're in
- Solution: Add context badges or indicators
Navigation Accessibility Issues
1. Keyboard Navigation
- Issue: Dropdowns may not be fully keyboard accessible
- Impact: Users who can't use mouse can't navigate
- Solution: Ensure full keyboard support
2. Screen Reader Support
- Issue: Dropdown structure may not be announced properly
- Impact: Screen reader users can't understand navigation
- Solution: Add proper ARIA labels and roles
3. Focus Management
- Issue: Focus may be lost when dropdowns open/close
- Impact: Keyboard users lose their place
- Solution: Proper focus trapping and management
Summary of Critical Issues
High Priority Issues
- Overwhelming Dashboard Dropdown (8 items, no grouping)
- Missing Credentials Page in Navigation (page exists but not linked)
- Hidden Important Features (SCORM Dispatch, xAPI, Usage)
- No Breadcrumbs (can't see navigation path)
- "Dashboard" Confusion (expectation mismatch)
Medium Priority Issues
- Inconsistent Naming (Reports vs. Usage, Dashboard vs. My Learning)
- No Feature Grouping (flat structure, no categories)
- Redundant Admin Labels ("(All Tenants)" suffix)
- Mobile Navigation (long scroll lists, no sections)
- Context Switching (abrupt changes, no indicators)
Low Priority Issues
- Missing Quick Actions (no command palette)
- No Recent Items (no tracking)
- No Favorites (no bookmarks)
- Limited Public Navigation (only 2 direct links)
Recommendations Summary
- Reorganize Dashboard Dropdown into logical groups
- Add Missing Navigation Links (Credentials, xAPI)
- Implement Breadcrumbs on detail pages
- Add Context Indicators (badges, visual cues)
- Group Related Features (Content, Analytics, Configuration, Account)
- Improve Mobile Navigation (collapsible sections, search)
- Add Progressive Disclosure (hide less-used features)
- Clarify Naming (consistent terminology)
- Add Quick Actions (command palette or shortcuts)
- Improve Accessibility (keyboard, screen readers)
These recommendations will be detailed in the proposed navigation structure document.