Skip to contentVibraUI
4 pagesopens at /academy

Academy

An online school: the courses, the students on them and how far each has got.

Preview
/academy

Install

The whole dashboard — every page under one sidebar, the sample data they read — is one command. Or take a page at a time: each one brings the sidebar with it.

npx shadcn@latest add @vibra/academy
  • /academyAcademy dashboard
    npx shadcn@latest add @vibra/academy-overview
  • /academy/coursesCourse catalogue
    npx shadcn@latest add @vibra/academy-courses
  • /academy/courses/[id]Course page
    npx shadcn@latest add @vibra/academy-course
  • /academy/studentsStudent roster
    npx shadcn@latest add @vibra/academy-students

Widgets

Single cards cut from these pages, each installed on its own.

  • The Welcome card
    npx shadcn@latest add @vibra/widget-academy-overview-welcome-card
    From Academy dashboard

    Welcome

    The learner greeted by name, with their courses in progress, their hours in the last thirty days, their certificates and their streak, and a way into the catalogue; reads learnerSummary().

  • The Learning paths card
    npx shadcn@latest add @vibra/widget-academy-overview-learning-paths
    From Academy dashboard

    Learning paths

    The two tracks through the catalogue, each with the modules finished and a bar; reads learningPaths().

  • The Leaderboard card
    npx shadcn@latest add @vibra/widget-academy-overview-leaderboard
    From Academy dashboard

    Leaderboard

    The five members with the most points this term, ranked; reads leaderboard().

  • The Success rate card
    npx shadcn@latest add @vibra/widget-academy-overview-success-rate-panel
    From Academy dashboard

    Success rate

    The share of every enrolment that finished, against the term before, with the learners and the passing count behind it; reads successRate().

  • The Progress card
    npx shadcn@latest add @vibra/widget-academy-overview-progress-tiles
    From Academy dashboard

    Progress

    The learner's catalogue in two tiles — under way and finished — each with its share as a bar; reads progressSplit().

  • The Activity card
    npx shadcn@latest add @vibra/widget-academy-overview-activity-donut
    From Academy dashboard

    Activity

    How the term's hours were spent, mentoring, organising and planning, as a donut; reads activityMix().

  • The Completion by month card
    npx shadcn@latest add @vibra/widget-academy-overview-completion-chart
    From Academy dashboard

    Completion by month

    Average course completion across every learner, month by month over the last twelve complete months; reads completionByMonth().

  • The Courses card
    npx shadcn@latest add @vibra/widget-academy-overview-courses-table
    From Academy dashboard

    Courses

    The catalogue with what is open at the top, searchable and filtered by category, a course under way moved on a tenth through the server from its row; reads courseRows().

  • The Catalogue figures card
    npx shadcn@latest add @vibra/widget-academy-courses-catalogue-figures
    From Course catalogue

    Catalogue figures

    The courses in the catalogue and the categories they cover, everyone ever enrolled, the share who finished, and the average rating; reads catalogueTotals().

  • The Course figures card
    npx shadcn@latest add @vibra/widget-academy-course-course-figures
    From Course page

    Course figures

    Everyone the course has enrolled, the share who finished, its rating, and the students on it now with how far through they are; reads courseRecord(id).

  • The Enrolment by week card
    npx shadcn@latest add @vibra/widget-academy-course-enrolment-chart
    From Course page

    Enrolment by week

    New learners on the course each week over the last twelve complete weeks; reads courseRecord(id).

  • The Course roster card
    npx shadcn@latest add @vibra/widget-academy-course-course-roster
    From Course page

    Course roster

    The students on the course now, furthest along first, each with a face, their progress, when they joined and were last in, and where they stand; reads courseRecord(id).

  • The Instructor card
    npx shadcn@latest add @vibra/widget-academy-course-instructor-card
    From Course page

    Instructor

    Who teaches the course — their face and an address to write to — with the courses they teach, the learners those have taken and their rating; reads courseRecord(id).

  • The Completion funnel card
    npx shadcn@latest add @vibra/widget-academy-course-completion-funnel
    From Course page

    Completion funnel

    Everyone enrolled, how many opened the course and how many finished, each step with its share of the first and the rate from the step before; reads courseRecord(id).

  • The Lessons card
    npx shadcn@latest add @vibra/widget-academy-course-lesson-list
    From Course page

    Lessons

    The course lesson by lesson — its kind, its length and how many students are past it — eight at first and the rest folded out in place; reads courseRecord(id).

  • The Roster figures card
    npx shadcn@latest add @vibra/widget-academy-students-roster-figures
    From Student roster

    Roster figures

    Everyone on the roster and how many are active, how many were in this week and their share of the roster, the average progress across their places, and how many graduated; reads rosterTotals().

Reads from db

Every figure on these pages is read from these repositories of the sample store. Swap one for your own API and each page that reads it follows.

  • db.courses
  • db.members
  • db.notifications
  • db.students