@essentia-edu/learningx-sdk
v1.0.1
Published
TypeScript client for Canvas LMS + Xinics LearningX extension. Built for Korean university students (SKKU, 고려대, 한양대, 중앙대, 한동대 등).
Downloads
22
Maintainers
Readme
@essentia-edu/learningx-sdk
TypeScript client for Canvas LMS + Xinics LearningX extension, built for Korean university students.
Supported institutions: 성균관대, 고려대, 한양대, 중앙대, 한동대, 한남대, 동서대, 영남이공대, 중부대, and every other LearningX-enabled Canvas deployment.
Install
npm install @essentia-edu/learningx-sdk
# or: pnpm add @essentia-edu/learningx-sdk
# or: yarn add @essentia-edu/learningx-sdkDisclaimer: 본 패키지는 Xinics/Canvas의 공식 SDK가 아닙니다. 학생 본인의 Canvas 토큰으로 본인 데이터에만 접근하는 비공식 reverse-engineered 클라이언트입니다. 각 학교/Xinics 정책 확인 책임은 사용자에게 있습니다.
Quick start
import { CanvasClient, LearningXClient } from '@essentia-edu/learningx-sdk';
const config = {
baseUrl: 'https://canvas.skku.edu', // your institution's Canvas URL
accessToken: process.env.CANVAS_ACCESS_TOKEN!,
};
const canvas = new CanvasClient(config);
const learningx = new LearningXClient(config);
// Canvas standard API
const courses = await canvas.getCourses();
const assignments = await canvas.getAssignments(courses[0].id);
// LearningX extension API
const attendanceItems = await learningx.getAttendanceItems(courses[0].id);
const learningPath = await learningx.getLearningPath(courses[0].id);
// Discover all LearningX-enabled institutions
const institutions = await learningx.listInstitutions();
console.log(institutions.map(i => i.name));Getting a Canvas access token
- Log in to your institution's Canvas
- Account → Settings → Approved Integrations → + New Access Token
- Copy the token (shown only once)
Treat the token as a password.
Supported endpoints
Canvas standard (CanvasClient)
Profile, Courses, Assignments, Submissions, Quizzes, Calendar, Planner, Files, Announcements, Modules, Pages, Discussions, Conversations, Groups, Grades, Bookmarks, Notifications, Activity, Dashboard.
LearningX extensions (LearningXClient)
getUserProfile()— user info including login_id required by LearningX endpointsgetAttendanceItems(courseId, userParams?)— all attendance/learning components in a coursegetAttendanceItem(courseId, itemId)— detail of a single attendance itemgetLearningPath(courseId)— LearningX modules (superset of Canvas modules: includes view_url, progress counters, embedded attendance items)listInstitutions()— all LearningX-enabled Canvas deployments (from public Xinics registry)listBoards(courseId)— LearningX Board list via LTI sessionless launch (returns{ jwt, ltiToolId, boards })
More endpoints added as they are reverse-engineered.
Development
pnpm install
pnpm test
pnpm buildLicense
MIT © Essentia Edu
