@extends('layouts.admin', ['title' => $course->name.' — Activities Dashboard', 'currentPage' => 'courses', 'breadcrumbs' => [ ['title' => 'Programs', 'url' => route('admin.programs')], ['title' => ($course->cohort->program->name ?? 'Program'), 'url' => route('admin.program.cohorts', $course->cohort->program ?? 1)], ['title' => ($course->cohort->name ?? 'Cohort'), 'url' => route('admin.cohort.courses', $course->cohort ?? 1)], ['title' => $course->name, 'url' => route('admin.course.show', $course)], ]]) @push('head') @endpush @section('content')
@if (session('status'))
{{ session('status') }}
@endif

Quick Actions

Create new activities for this course

Course Activities

Analytics
@if($activities->count() > 0) @php $eossRendered = false; @endphp
@foreach($activities as $activity) @php $isEoss = false; if ($activity->survey) { $title = strtolower(trim(($activity->activityType->name ?? '').' '.($activity->survey->title ?? ''))); $isEoss = str_contains($title,'end of session') || str_contains($title,'end-of-session') || str_contains($title,'session summary'); } @endphp @if($isEoss && $eossRendered) @continue @endif
@if($activity->discussionForum) 💬 @elseif(str_contains(strtolower($activity->name), 'session')) 📊 @elseif(str_contains(strtolower($activity->name), 'group')) 👥 @elseif($activity->poll) 📊 @elseif($activity->readingLibrary) 📚 @elseif($activity->collaborativeBoard) 📋 @else 📝 @endif
@php $displayTitle = $activity->name; if ($activity->discussionForum) { $displayTitle = $activity->discussionForum->title ?? $displayTitle; } elseif ($activity->collaborativeBoard) { $displayTitle = $activity->collaborativeBoard->title ?? $displayTitle; } elseif ($activity->poll) { $displayTitle = $activity->poll->title ?? $displayTitle; } elseif ($activity->readingLibrary) { $displayTitle = $activity->readingLibrary->title ?? $displayTitle; } @endphp

{{ $displayTitle }}

{{ $activity->activityType?->name ?? 'Unknown Type' }}

@if($activity->survey) @php $responses = $activity->survey->responses()->count(); $sessions = $activity->survey->responses()->distinct('session_label')->count(); $avgScore = $activity->survey->responses()->get()->map(function($r) { $answers = $r->answers ?? []; $likertAnswers = array_filter($answers, function($a) { return is_numeric($a); }); return count($likertAnswers) > 0 ? array_sum($likertAnswers) / count($likertAnswers) : 0; })->avg(); @endphp
{{ $responses }}
Responses
{{ $sessions }}
Sessions
{{ number_format($avgScore, 1) }}
Avg Score
@elseif($activity->poll) @php $responses = $activity->poll->responses()->count(); $totalOptions = count($activity->poll->options ?? []); @endphp
{{ $responses }}
Votes
{{ $totalOptions }}
Options
Question: {{ Str::limit($activity->poll->question, 60) }}
Type: {{ ucfirst(str_replace('_', ' ', $activity->poll->poll_type)) }}
@elseif($activity->discussionForum) @php $totalThreads = $activity->discussionForum->threads()->where('is_approved', true)->count(); $totalPosts = $activity->discussionForum->threads()->withCount('posts')->get()->sum('posts_count'); $totalCategories = $activity->discussionForum->categories()->count(); @endphp
{{ $totalThreads }}
Threads
{{ $totalPosts }}
Posts
{{ $totalCategories }}
Categories
Description: {{ Str::limit($activity->discussionForum->description, 60) }}
@if($activity->discussionForum->session_label)
Session: {{ $activity->discussionForum->session_label }}
@endif
@elseif($activity->collaborativeBoard) @php $boardPosts = $activity->collaborativeBoard->posts()->count(); $boardContrib = $activity->collaborativeBoard->posts()->distinct('user_id')->count('user_id'); $boardLast = optional($activity->collaborativeBoard->posts()->latest('updated_at')->first())->updated_at; @endphp
{{ $boardPosts }}
Posts
{{ $boardContrib }}
Contributors
{{ $boardLast ? $boardLast->diffForHumans() : '—' }}
Last activity
@elseif($activity->readingLibrary) @php $items = $activity->readingLibrary->readings()->count(); $featured = $activity->readingLibrary->readings()->where('is_featured', true)->count(); $sessionsCovered = $activity->readingLibrary->readings()->whereNotNull('session_label')->distinct('session_label')->count('session_label'); @endphp
{{ $items }}
Items
{{ $featured }}
Featured
{{ $sessionsCovered }}
Sessions
@endif
@if($activity->survey) Launch @elseif($activity->discussionForum) Open Forum @if($activity->discussionForum->canvas_page_id || $activity->discussionForum->canvas_page_url) View in Canvas @endif @elseif($activity->poll) Launch @elseif($activity->readingLibrary) Open Library @elseif($activity->activityType && str_contains(strtolower($activity->activityType->name), 'reading')) Open Library @elseif($activity->collaborativeBoard) Open Board @endif
@php if ($isEoss) { $eossRendered = true; } @endphp @endforeach
@php $countSurveys = $activities->filter(fn($a) => $a->survey)->count(); $countPolls = $activities->filter(fn($a) => $a->poll)->count(); $countBoards = $activities->filter(fn($a) => $a->collaborativeBoard)->count(); $countForums = $activities->filter(fn($a) => $a->discussionForum)->count(); $countReadings = $activities->filter(fn($a) => $a->readingLibrary)->count(); @endphp
📈

Session Summary Trend

@else

No activities yet

Create your first survey to start collecting student feedback

Create End-of-Session Survey
@endif
@endsection