Repository navigation
Conversation
…derer, Lesso Closes WeAcademy#220
…Difficulty F Closes WeAcademy#221
…y Chart, and Closes WeAcademy#222
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Implement lesson viewer, course browse, and admin dashboard features
What was solved
#220 — Upgrade Lesson Viewer — Video Player, Markdown Renderer, Lesson Navigation, and Quiz Prompt
Upgrade the lesson viewer page at frontend/app/courses/[id]/lessons/[lessonId]/page.tsx to render video lessons via a responsive YouTube iframe (with start timestamp), text lessons via react-markdown with remark-gfm and rehype-highlight, add a duration badge, previous/next lesson navigation, a quiz prompt card when hasQuiz is true, and a mark-complete button with loading/success states. Create four supporting components under frontend/components/lessons/.
Addressed:
#221 — Build Course Browse Page — Real API Data, Search, Difficulty Filter, Tag Chips, and Pagination
Replace the hardcoded course array on /courses with a real API-driven browse experience: TanStack Query infinite fetching from GET /api/v1/courses, debounced search, difficulty pills, multi-select tag chips from GET /api/v1/courses/tags, sort selector, Load More pagination, loading skeleton grid, empty state, and CourseCard updates for enrollmentCount/isEnrolled.
Addressed:
#222 — Upgrade Admin Dashboard — Analytics Stats, Activity Chart, and Full Course Management Table
Upgrade the admin panel into a functional dashboard: add an admin layout with sidebar nav and role-based auth guard, rebuild /admin as an analytics dashboard (stat cards, learner activity AreaChart, top courses), and add a full course management table page with create/edit/delete, search, and status filter. Wire to the backend admin analytics API and existing course endpoints via lib/api.ts helpers.
Addressed:
Changes
frontend/app/courses/[id]/lessons/[lessonId]/page.tsx(modify)frontend/components/lessons/lesson-navigation.tsx(create)frontend/components/courses/course-filters.tsx(create)frontend/app/admin/layout.tsx(modify)frontend/components/lessons/video-player.tsx(create)frontend/app/courses/page.tsx(modify)frontend/hooks/use-courses.ts(create)frontend/hooks/use-admin-analytics.ts(create)frontend/components/lessons/markdown-content.tsx(create)frontend/components/course-card.tsx(modify)frontend/app/admin/page.tsx(modify)Approach
Issues
Closes #220
Closes #221
Closes #222