Initial commit

This commit is contained in:
Richard Jolley committed 2026-01-14 00:54:08 +00:00
commit c909d539bc
7178 files changed
+756624

No files matched your search

+136
View File
@@ -0,0 +1,136 @@
<x-app-layout>
<div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-8 space-y-10">
{{-- Greeting --}}
<div>
<h2 class="text-2xl font-semibold text-gray-800">
Welcome back, {{ auth()->user()->name }}!
</h2>
</div>
{{-- Continue Learning (enrolled & in-progress) --}}
<div class="bg-white rounded-xl shadow p-6">
<h3 class="text-lg font-medium text-gray-900 border-b pb-3 mb-4">Continue Learning</h3>
@if($inProgressCourses->isNotEmpty())
<div class="grid sm:grid-cols-2 lg:grid-cols-3 gap-6">
@foreach($inProgressCourses as $course)
@php
// Find the most recent lesson viewed in this course
$lastLesson = $lastLessonsByCourse
->firstWhere('chapter.lessonSection.module.course.id', $course->id);
@endphp
<div class="border rounded-lg p-4 bg-gray-50 hover:bg-gray-100 transition">
<h4 class="text-indigo-600 font-semibold text-lg">{{ $course->name }}</h4>
<p class="text-gray-600 text-sm">
{{ $course->subject->name }} ({{ $course->level->name }})
</p>
@if($lastLesson)
<p class="text-gray-700 text-sm mt-2">Last lesson: {{ $lastLesson->title }}</p>
<a href="{{ route('student.course.lesson', [
'course' => $course->slug,
'lesson' => $lastLesson->slug
]) }}"
class="inline-block mt-3 px-4 py-2 bg-indigo-600 text-white rounded-lg hover:bg-indigo-700 text-sm">
▶ Resume Lesson
</a>
@else
@php
$firstLesson = $course->modules
->flatMap(fn($m) => $m->lessonSections)
->flatMap(fn($s) => $s->chapters)
->flatMap(fn($c) => $c->lessons)
->sortBy('order')
->first();
@endphp
@if($firstLesson)
<a href="{{ route('student.course.lesson', [
'course' => $course->slug,
'lesson' => $firstLesson->slug
]) }}"
class="inline-block mt-3 px-4 py-2 bg-indigo-600 text-white rounded-lg hover:bg-indigo-700 text-sm">
▶ Go to Course
</a>
@else
<span class="text-gray-500 text-sm mt-3 inline-block">No lessons yet</span>
@endif
@endif
</div>
@endforeach
</div>
@else
<p class="text-gray-600">You haven’t started any courses yet. Pick one below!</p>
@endif
</div>
{{-- Enrolled but not yet started --}}
<div class="bg-white rounded-xl shadow p-6">
<h3 class="text-lg font-medium text-gray-900 border-b pb-3 mb-4">Courses You’ve Enrolled In (Not Started)</h3>
@if($notStartedCourses->isNotEmpty())
<div class="grid sm:grid-cols-2 lg:grid-cols-3 gap-6">
@foreach($notStartedCourses as $course)
<div class="border rounded-lg p-4 bg-white">
<h4 class="font-semibold text-gray-900">{{ $course->name }}</h4>
<p class="text-gray-600 text-sm">
{{ $course->subject->name }} ({{ $course->level->name }})
</p>
@php
$firstLesson = $course->modules
->flatMap(fn($m) => $m->lessonSections)
->flatMap(fn($s) => $s->chapters)
->flatMap(fn($c) => $c->lessons)
->sortBy('order')
->first();
@endphp
@if($firstLesson)
<a href="{{ route('student.course.lesson', [
'course' => $course->slug,
'lesson' => $firstLesson->slug
]) }}"
class="inline-block mt-3 px-4 py-2 bg-indigo-600 text-white rounded-lg hover:bg-indigo-700 text-sm">
▶ Start Course
</a>
@else
<span class="text-gray-500 text-sm">No lessons yet</span>
@endif
</div>
@endforeach
</div>
@else
<p class="text-gray-600">No enrolled courses awaiting a start right now.</p>
@endif
</div>
{{-- Available to enrol (not enrolled) --}}
<div class="bg-white rounded-xl shadow p-6">
<h3 class="text-lg font-medium text-gray-900 border-b pb-3 mb-4">Available Courses</h3>
@if($availableCourses->isNotEmpty())
<div class="grid sm:grid-cols-2 lg:grid-cols-3 gap-6">
@foreach($availableCourses as $course)
<div class="border rounded-lg p-4 bg-white">
<h4 class="font-semibold text-gray-900">{{ $course->name }}</h4>
<p class="text-gray-600 text-sm">
{{ $course->subject->name }} ({{ $course->level->name }})
</p>
{{-- If you have a course details page, update this route accordingly --}}
<a href="#"
class="inline-block mt-3 px-4 py-2 bg-gray-900 text-white rounded-lg opacity-70 cursor-not-allowed text-sm">
Enrollment coming soon
</a>
</div>
@endforeach
</div>
@else
<p class="text-gray-600">You’re enrolled in all available courses. 🎉</p>
@endif
</div>
</div>
</x-app-layout>