Admin Guide

Getting Started

Welcome to the RokuChannel Platform Admin Guide. This documentation covers everything you need to manage educational streaming channels, content, and student engagement.

Platform Overview

The RokuChannel Platform is an educational multimedia streaming system for Roku devices. It combines video delivery, homework assignments, tests, grade tracking, and AI-powered innovation agents into a single unified platform.

Browser / Client Admin Portal & Student App HTTP :8065 FastAPI Application (Backend API) GZip CSRF Logging Security CORS Rate Lim Channel Routes/api/channels Episode Routes/api/episodes/* Student Routes/api/enroll, grades Innovation Routes/api/innovation/* PostgreSQL :9433 Database: rokuchannel | Schema: roku channels | video_assets | homework | tests enrollments | watch_progress | grades test_questions | test_attempts | innovation Redis :6379/10 Cache Layer In-memory fallback ONETIMELOGIN SSO Port :8001 JWT Auth Provider COLLECTIONS API Port :8050 Content Hierarchy LLM Providers Claude / OpenAI / Ollama Innovation Agents Roku Device BrightScript Channel JSON Feed Consumer Internal data flow External service calls Core platform Infrastructure / External

Figure 1: RokuChannel Platform Architecture Overview

Key Features

Channel Management

Create and manage educational streaming channels with customizable themes, categories, and publishing controls.

Content Hierarchy

Organize content into Channels, Series, and Episodes. Each episode can have video, homework, and test content.

Assessments

Build homework assignments and auto-graded tests with multiple choice, true/false, and short answer questions.

Grade Tracking

Track student progress across video completion, homework scores, and test results with automatic grade calculation.

Innovation Agents

AI-powered content and engagement analysis agents that provide actionable suggestions for platform improvement.

Roku Feed

Auto-generated JSON content feeds compatible with Roku Direct Publisher for seamless device distribution.

Prerequisites

Before using the Admin Portal, ensure the following services are running:

  • Backend API -- FastAPI server running on port 8065
  • PostgreSQL -- Database server on port 9433 with rokuchannel database
  • Redis -- Cache server on localhost:6379 (optional, falls back to in-memory)
  • ONETIMELOGIN SSO -- Authentication service on port 8001
  • COLLECTIONS API -- Content hierarchy service on port 8050
  • Web Browser -- Modern browser (Chrome, Firefox, Edge)
Redis is optional. If Redis is unavailable, the platform automatically uses in-memory caching as a fallback. This is suitable for development but not recommended for production.

Quick Start

Follow these steps to get up and running with the platform:

  1. Start the Backend

    Navigate to the backend directory and launch the server.

    bash
    cd C:\PROJECTS\ROKU\backend
    python -m uvicorn app.main:app --host 0.0.0.0 --port 8065 --reload
  2. Verify the Health Check

    Confirm the API is running by checking the health endpoint.

    bash
    curl http://localhost:8065/health
  3. Log In via SSO

    Open http://localhost:8065 in your browser. You will be redirected to ONETIMELOGIN SSO for authentication. After logging in, you receive a JWT token stored as a cookie.

  4. Create Your First Channel

    From the Dashboard, navigate to Channels and click Create Channel. Give it a name, select a category, and save.

  5. Add Series and Episodes

    Click into your new channel, add a series, then add episodes to the series. Each episode can hold a video, homework, and a test.

  6. Publish

    When your channel is ready, toggle the Published status. A public Roku JSON feed is auto-generated at /api/roku/feed/{channel_id}.

The /health endpoint returns detailed status including database connectivity and response time. Use it to troubleshoot startup issues.

Technology Stack

Component Technology Details
BackendFastAPI (Python)Sync SQLAlchemy, Pydantic v2
DatabasePostgreSQLPort 9433, schema: roku, 11 tables
CacheRedisPort 6379/10, TTL-based caching
AuthJWT + SSOHS256, shared secret with ONETIMELOGIN
FrontendTailwind CSS + Vanilla JSNo framework dependency
LLMClaude / OpenAI / OllamaPluggable provider for Innovation Agents
CDNBunny.netVideo streaming delivery (planned)

What's Next

Now that you have an overview of the platform, explore the following sections: