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

Right Side:

  • Sign In → /sign-in?redirect_url=/dashboard
  • Get Started → /sign-up?redirect_url=/onboarding/checkout

Issues Identified

  1. Limited Top-Level Options

    • Only 2 direct links (Features, Pricing)
    • Docs hidden in dropdown (reduces discoverability)
    • API Reference also in dropdown (important for developers)
  2. Inconsistent Link Patterns

    • Some links are direct (Features, Pricing)
    • Some links are in dropdowns (Docs, API Reference)
    • No clear rationale for the distinction
  3. Missing Quick Access

    • No direct link to status page (/api/health)
    • No direct link to support/contact
    • Documentation requires dropdown click

Customer Navigation Structure

Desktop Navigation (Customer Context)

Dropdowns:

  • Dashboard → Contains 8 items:

    1. Dashboard → /dashboard
    2. My Learning → /learner/dashboard
    3. Reports → /dashboard/reports
    4. SCORM Dispatch → /dashboard/dispatch
    5. API Keys → /dashboard/api-keys
    6. Usage → /dashboard/usage
    7. Webhooks → /dashboard/webhooks
    8. Billing → /dashboard/billing
  • Admin (if admin) → Contains 9 items (see Admin Navigation)

  • Docs → Contains:

    • Documentation → /docs
    • API Reference → /api/docs

Right Side:

  • User Button (Clerk UserButton component)

Issues Identified

  1. 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
  2. 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
  3. 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
  4. Inconsistent Naming

    • "Dashboard" as dropdown label, but also a page name
    • "My Learning" vs "Dashboard" (both are dashboards)
    • "Reports" vs "Usage" (both show analytics)
  5. Hidden Important Features

    • "SCORM Dispatch" buried in dropdown (important feature)
    • "Usage" and "Billing" separated (related concepts)
    • "API Keys" and "Webhooks" separated (both are integrations)
  6. 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:

    1. Admin Dashboard → /admin
    2. Reports (All Tenants) → /admin/reports/learner-progress
    3. Custom Reports (All Tenants) → /admin/reports/custom
    4. Packages (All Tenants) → /admin/packages
    5. Webhooks (All Tenants) → /admin/webhooks
    6. Tenants → /admin/tenants
    7. API Keys (All Tenants) → /admin/api-keys
    8. System → /admin/system
    9. Audit Logs → /admin/audit-logs
  • Docs → Contains:

    • Documentation → /docs
    • API Reference → /api/docs

Issues Identified

  1. Redundant Labeling

    • "(All Tenants)" suffix on many items (redundant for admin context)
    • "Admin Dashboard" when already in Admin dropdown
    • Creates visual clutter
  2. 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)
  3. 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?)
  4. 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

  1. 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
  2. No Visual Hierarchy

    • All items styled the same
    • No distinction between primary and secondary actions
    • No grouping or sections
  3. 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 navigation
  • context="customer" → Customer navigation
  • context="admin" → Admin navigation (if isAdmin=true)

Issues Identified

  1. Abrupt Context Changes

    • When user signs in, navigation completely changes
    • No smooth transition or onboarding
    • Users may lose their place
  2. Mixed Contexts

    • Admins who are also customers see both dropdowns
    • Can be confusing which items are for which role
    • No clear visual distinction
  3. 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

  1. SCORM Dispatch

    • Buried in Dashboard dropdown
    • Important feature for many customers
    • Not visible until dropdown opened
  2. Usage Metrics

    • In Dashboard dropdown
    • Important for quota management
    • Not prominently displayed
  3. Credentials Management

    • There's a /dashboard/credentials page (API keys, webhooks, dispatches)
    • But it's not in navigation at all
    • Users must discover it through other means
  4. xAPI Statements

    • There's a /dashboard/xapi page
    • Not in navigation dropdown
    • Only accessible via dashboard widget or direct URL
  5. Package Details

    • Package management pages exist (/dashboard/packages/[id])
    • Not in navigation (expected, but no breadcrumbs)

Discoverability Problems

  1. No Onboarding Tour

    • New users don't know what features exist
    • No guided tour of navigation
    • No tooltips or help text
  2. No Feature Highlights

    • New features not highlighted
    • No "New" badges
    • No announcements or notifications
  3. No Search

    • Can't search for features
    • Must know exact name or location
    • No fuzzy matching or suggestions

Information Architecture Issues

Mental Model Mismatches

  1. "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
  2. Feature Categorization

    • Current: Flat list by route structure
    • Expected: Grouped by function or user goal
    • Mismatch causes confusion
  3. 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

  1. 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
  2. No Progressive Disclosure

    • All features shown at once
    • No way to hide less-used features
    • No personalization or customization
  3. 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

  1. Dropdown Menus

    • Used for: Dashboard, Admin, Docs
    • Pattern: Click to open, shows list of items
    • Issue: All items at same level, no hierarchy
  2. Direct Links

    • Used for: Features, Pricing (public only)
    • Pattern: Single click to navigate
    • Issue: Inconsistent with dropdown pattern
  3. Context Switching

    • Pattern: Navigation changes based on authentication/role
    • Issue: Abrupt changes, no smooth transitions

Missing Patterns

  1. Mega Menus

    • Could group related items
    • Show descriptions and icons
    • Better for many items
  2. Sidebar Navigation

    • Could provide persistent navigation
    • Better for complex applications
    • Common in dashboards
  3. Breadcrumbs

    • Missing on detail pages
    • No way to see navigation path
    • Hard to navigate back
  4. 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

  1. Overwhelming Dashboard Dropdown (8 items, no grouping)
  2. Missing Credentials Page in Navigation (page exists but not linked)
  3. Hidden Important Features (SCORM Dispatch, xAPI, Usage)
  4. No Breadcrumbs (can't see navigation path)
  5. "Dashboard" Confusion (expectation mismatch)

Medium Priority Issues

  1. Inconsistent Naming (Reports vs. Usage, Dashboard vs. My Learning)
  2. No Feature Grouping (flat structure, no categories)
  3. Redundant Admin Labels ("(All Tenants)" suffix)
  4. Mobile Navigation (long scroll lists, no sections)
  5. Context Switching (abrupt changes, no indicators)

Low Priority Issues

  1. Missing Quick Actions (no command palette)
  2. No Recent Items (no tracking)
  3. No Favorites (no bookmarks)
  4. Limited Public Navigation (only 2 direct links)

Recommendations Summary

  1. Reorganize Dashboard Dropdown into logical groups
  2. Add Missing Navigation Links (Credentials, xAPI)
  3. Implement Breadcrumbs on detail pages
  4. Add Context Indicators (badges, visual cues)
  5. Group Related Features (Content, Analytics, Configuration, Account)
  6. Improve Mobile Navigation (collapsible sections, search)
  7. Add Progressive Disclosure (hide less-used features)
  8. Clarify Naming (consistent terminology)
  9. Add Quick Actions (command palette or shortcuts)
  10. Improve Accessibility (keyboard, screen readers)

These recommendations will be detailed in the proposed navigation structure document.