Full-Stack LMS Integrations Developer Needed

Full-Stack LMS Integrations Developer Needed

Full-Stack LMS Integrations Developer Needed

Upwork

Upwork

Remoto

7 hours ago

No application

About

We are seeking an experienced Full-Stack LMS Integrations Developer who is skilled in LTI 1.3, Canvas Theme JS, Blackboard UEF, and Moodle Filter. The ideal candidate will be responsible for developing seamless integrations and ensuring compatibility across platforms. You should have a strong understanding of educational technology and a passion for creating effective learning environments. If you are a problem-solver with a keen eye for detail and the ability to work collaboratively, we want to hear from you! We’re building an “Alternative Formats” feature for course files—similar to Blackboard Ally’s inline badge. We need a developer to implement Option A (official LTI 1.3 placements) and Option B (inline icon/overlay) across Canvas, Blackboard Learn (Ultra + Original), and Moodle. The solution should surface an inline icon next to file links and securely launch our remediation service with the correct file/course context. Scope of Work Option A — LTI 1.3 (all LMSs) - Implement an LTI 1.3 provider (OIDC, Launch, JWKS) for our service. - Configure LMS‑specific placements so users can access the tool per file or from course menus: - Canvas: file_menu and file_index_menu placements; variable substitutions (e.g., $File.id, $Canvas.course.id). - Blackboard Learn: Register LTI tool provider; Manage Placements (Deep Linking content tool; Course/Student tools). - Moodle: Register External tool (LTI 1.3 + Deep Linking) at site level; instructors can add items in courses. Option B — Inline icon/overlay (per LMS) - Canvas: Add a small, accessible icon next to file links via Theme JS/CSS (account‑level). Handle SPA navigation events (e.g., Turbolinks), Modules, Files, and Pages (RCE content). Click launches our tool (preferably via a sessionless LTI launch endpoint on our side). - Blackboard Learn (Ultra): Use Ultra Extension Framework (UEF) to add UI in supported portals (e.g., Course Details & Actions) to expose “Alt formats” adjacent to file resources as closely as Ultra permits. (Inline DOM injection at Ultra page level is not supported; UEF is the supported approach.) - Moodle: Provide either: - a small theme/Additional HTML JS overlay that appends an icon next to file/resource links, or - a simple Moodle Filter plugin that decorates resource links at render time (preferred for robustness). - Ensure accessibility (keyboard, ARIA labels), CSP compliance, and graceful degradation (no blocking if scripts fail). Deliverables - LTI 1.3 Provider Service - OIDC initiation endpoint, launch endpoint (validates JWT), JWKS with key rotation. - Minimal scopes; support for variable substitutions and context claims. - Optional endpoints for sessionless launch (Canvas) and Deep Linking (all platforms). Per‑LMS Integrations - Canvas - Working LTI placements (file_menu, file_index_menu) with icon and text. - Theme JS/CSS package that adds an inline icon next to file links (Files, Modules, Pages). - Admin runbook: Developer Key JSON, placements, Theme upload steps, CSP allow‑list entries. Blackboard Learn - LTI tool registration + Manage Placements (Deep Linking; Course/Student tools). - UEF extension (if we have UEF access) that surfaces an “Alt formats” entry where Ultra allows. - Admin runbook: LTI config, REST integration (for UEF), permission scopes. Moodle - LTI External Tool registration instructions (site‑level). - Overlay as Filter plugin (preferred) or Additional HTML JS file. - Admin runbook: install/enable filter or paste Additional HTML; per‑course enablement notes. Documentation - Architecture diagram and data flow (click → launch → callback). - Admin guides (per LMS) with screenshots for setup. - Developer setup (README), environment variables, and build/run instructions. - Support & troubleshooting guide (CSP errors, role/permission edge cases). Quality & Compliance - Accessibility: WCAG 2.1 AA: keyboard focus, visible focus ring, ARIA labels, logical reading order. - Security: LTI JWT validation, nonce/jti replay protection, HTTPS/TLS, least‑privilege scopes, audit logs, CSRF protection for non‑LTI endpoints. - Performance: Overlay scripts should be small ( ~20KB gzipped target), defer‑loaded, and resilient (no blocking). - Cross‑browser: Latest Chrome/Firefox/Edge/Safari; no errors in console in default LMS pages. - Observability: Structured logs for LTI launches and overlay clicks; basic health endpoint. Milestones & Payment Structure (recommended) M1 — Architecture & LTI provider skeleton (spec, stubs, keys, demo launch) — 20% M2 — Canvas (Option A + Option B): placements + overlay passing file/course context — 25% M3 — Blackboard (Option A + UEF surface if in scope) — 25% M4 — Moodle (Option A + Filter/overlay) — 20% M5 — Docs, test evidence, handover — 10% (Bidders should propose durations for each milestone; we will align on dates during contract.)