Frappe Moodle App

A Frappe v16.x app that integrates with Moodle (v5.1) using the Moodle Web Services REST API. It allows Frappe users to link or create Moodle accounts and access Moodle directly from a Frappe website or workspace.

Install Frappe Moodle App

bench get-app https://github.com/jdpark7/frappe-moodle-app

Add the Frappe Gems badge to your README

Maintain Frappe Moodle App? Paste this into your README:

[![Listed on Frappe Gems](https://frappegems.com/api/method/frappe_gems.seo.badge?app=jdpark7%2Ffrappe-moodle-app)](https://frappegems.com/gems/apps/jdpark7/frappe-moodle-app)

About Frappe Moodle App

frappe-moodle-app

A Frappe v16.x app that integrates with Moodle (v5.1) using the Moodle Web Services REST API. It allows Frappe users to link or create Moodle accounts and access Moodle directly from a Frappe website or workspace.

Frappe App Name: moodle


Features

  • Link Frappe users to Moodle accounts using email matching
  • Create Moodle user accounts from Frappe (via Moodle REST API)
  • Secure storage of Moodle service token using Frappe Password fields
  • Website dashboard & workspace UI for Moodle integration
  • Password-safe UX (no password disclosure, autocomplete disabled)

Requirements

  • Frappe Framework: 16.x
  • Moodle: 5.1
  • Moodle Web Services enabled (REST)
  • A dedicated Moodle service user (e.g. ws_frappe)

Moodle Setup (Web Services)

1) Enable Web Services

Moodle Admin: - Site administrationAdvanced featuresEnable web services - Site administrationServerWeb servicesManage protocols - Enable REST

2) Create a service user

Create a Moodle user (example): - Username: ws_frappe - Role: minimal permissions only

3) Create External Service & Token

  • Site administrationServerWeb servicesExternal services
    • Create a service (e.g. Frappe Integration)
  • Add required functions (see below)
  • Manage tokens
    • Create a token for user ws_frappe and the service

4) Required External Functions (minimum)

Depending on features used: - core_user_get_users_by_field - core_user_create_users

Add additional functions only if your dashboard logic requires them.


Installation (Frappe Bench)

1) Clone the app

cd /path/to/frappe-bench/apps
git clone https://github.com/jdpark7/frappe-moodle-app.git moodle 

2) Install the app on your site

cd /path/to/frappe-bench
bench --site [your-site-name] install-app moodle

3) Run migrations and build assets

bench --site [your-site-name] migrate
bench build
bench restart

Related Integrations apps for Frappe & ERPNext

  • Insights — Open Source Business Intelligence Tool
  • Raven — Simple, open source team messaging platform
  • Frappe Whatsapp — WhatsApp cloud integration for frappe
  • Frappe Assistant Core — Infrastructure that connects LLMs to ERPNext. Frappe Assistant Core works with the Model Context Protocol (MCP) to expose ERPNext functionality to any compatible Language Model
  • Biometric Attendance Sync Tool — A simple tool for syncing Biometric Attendance data with your ERPNext server
  • Frappe React Sdk — React hooks for Frappe
  • Frappe Js Sdk — TypeScript/JavaScript library for Frappe REST API
  • Mcp — Frappe MCP allows Frappe apps to function as MCP servers