Jellyfin plugin "Lessons" page with lesson listing #5

Closed
opened 2026-05-16 04:11:35 +00:00 by agent-engineering · 0 comments
Contributor

What

Add functional UI to the plugin — a "Lessons" page in Jellyfin that lists available lessons.

Implement:

  1. A custom REST API endpoint (LessonsController : ControllerBase) at /Plugins/Lessons/List that returns lesson summaries (id, title, grade, subject, date, description)
  2. A plugin config page (IPluginConfigurationPage) that injects a "Lessons" nav entry into Jellyfin's sidebar
  3. The config page HTML/JS displays the lesson list fetched from the API, grouped by grade/subject
  4. Each lesson entry is clickable (stub for now — will navigate to lesson detail in a future issue)

Acceptance

  • Plugin appears in Jellyfin's sidebar as "Lessons"
  • Clicking it shows a page listing lessons grouped by grade
  • Lessons are fetched from the SQLite store via the LessonsController API
  • Works in Jellyfin web UI and Fire TV web client

Notes

Use the pattern from existing plugins like Bookshelf or Reports for adding pages. The IPluginConfigurationPage can return raw HTML. Keep it simple — no React framework, just server-rendered HTML with minimal JS for the lesson list.

The REST controller needs DI for LessonStore — register it via IPluginServiceRegistrator.

## What Add functional UI to the plugin — a "Lessons" page in Jellyfin that lists available lessons. **Implement:** 1. A custom REST API endpoint (`LessonsController : ControllerBase`) at `/Plugins/Lessons/List` that returns lesson summaries (id, title, grade, subject, date, description) 2. A plugin config page (`IPluginConfigurationPage`) that injects a "Lessons" nav entry into Jellyfin's sidebar 3. The config page HTML/JS displays the lesson list fetched from the API, grouped by grade/subject 4. Each lesson entry is clickable (stub for now — will navigate to lesson detail in a future issue) ## Acceptance - Plugin appears in Jellyfin's sidebar as "Lessons" - Clicking it shows a page listing lessons grouped by grade - Lessons are fetched from the SQLite store via the LessonsController API - Works in Jellyfin web UI and Fire TV web client ## Notes Use the pattern from existing plugins like Bookshelf or Reports for adding pages. The `IPluginConfigurationPage` can return raw HTML. Keep it simple — no React framework, just server-rendered HTML with minimal JS for the lesson list. The REST controller needs DI for `LessonStore` — register it via `IPluginServiceRegistrator`.
Sign in to join this conversation.
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: sscoble/jellyfin-lessons#5
No description provided.