A modular JavaScript wrapper for Moodle Web Service APIs. Built for dashboards, assignment tracking, course resource access, and academic automation.
- User / login info
- Assignments
- Submission status
- Course contents
- Calendar events
- Raw request access
- Modular domain architecture
npm install ../moodleJSnpm install git+https://github.com/yourusername/moodlejs.gitmoodleJS/
┣ client.js
┣ wrapper.js
┣ package.json
┗ domains/
┣ user.js
┣ assignments.js
┣ courses.js
┗ calendar.jsconst MoodleJS = require("moodlejs");
const moodle = new MoodleJS(
"https://yourmoodle.com",
"YOUR_TOKEN"
);
(async () => {
const user = await moodle.user.getUserInfo();
console.log(user);
})();MoodleJS requires:
- Moodle base URL
- Web Service token
const moodle = new MoodleJS(
"https://yourmoodle.com",
"YOUR_TOKEN"
);const user = await moodle.user.getUserInfo();
console.log(user);const siteInfo = await moodle.user.getSiteInfo();const assignments = await moodle.assignments.getAssignments();const status = await moodle.assignments.getSubmissionStatus(assignId);const contents = await moodle.courses.getContents(courseId);const events = await moodle.calendar.getUpcoming();For unsupported functions:
const data = await moodle.request(
"core_webservice_get_site_info"
);const assignments = await moodle.assignments.getAssignments();
for (const course of assignments.courses) {
for (const assignment of course.assignments) {
console.log(
assignment.name,
assignment.duedate
);
}
}npm install dotenvMOODLE_URL=https://yourmoodle.com
MOODLE_TOKEN=your_tokenrequire("dotenv").config();
const MoodleJS = require("moodlejs");
const moodle = new MoodleJS(
process.env.MOODLE_URL,
process.env.MOODLE_TOKEN
);core_webservice_get_site_infomod_assign_get_assignmentsmod_assign_get_submission_statuscore_course_get_contentscore_calendar_get_calendar_upcoming_view
Base request engine
Feature-specific modules
Unified Moodle client
Never expose your token publicly.
Recommended:
.env- Private config files
- Server-side storage
- Grades domain
- Files domain
- Forums
- Notifications
- Overdue assignment tracker
- Dashboard integrations
MIT
Built by UNIB14Z3 ⚡
MoodleJS transforms Moodle’s raw WS functions:
mod_assign_get_submission_statusInto:
moodle.assignments.getSubmissionStatus()Less boilerplate. More command center.