Custom Frappe app for Quality Asia Internal LMS — an internal, staff-only learning platform built on Frappe LMS. It shares the Quality Asia branding and training-certificate format with the public Quality Asia LMS, but is invite-only and free:
- No public sign-up —
LMS Settings.disable_signup = 1; browsing requires login (allow_guest_access = 0). - Back-end onboarding — staff accounts are created with
lms_internal.setup.invite.invite_employees(see below). - No payments — no Razorpay / GST; courses are free and logged-in staff self-enroll.
- No public course catalog — training content is authored in-app.
- Kept from the public app — Quality Asia branding (skin/logo/favicon) and the QA training certificate (print format + auto-filled training dates).
cd $PATH_TO_YOUR_BENCH
bench get-app $URL_OF_THIS_REPO --branch main
bench --site <site> install-app lms lms_internalPublic sign-up is disabled, so register staff from the back end. Each gets a Website User
with the LMS Student role and Frappe's welcome (set-password) email:
# a few inline
bench --site <site> execute lms_internal.setup.invite.invite_employees \
--kwargs "{'rows': [{'email': 'asha@client.com', 'full_name': 'Asha Rao'}]}"
# or from a CSV with header: email,full_name
bench --site <site> execute lms_internal.setup.invite.invite_employees \
--kwargs "{'csv_path': '/path/to/employees.csv'}"This app uses pre-commit for code formatting and linting. Please install pre-commit and enable it for this repository:
cd apps/lms_internal
pre-commit installPre-commit is configured to use the following tools for checking and formatting your code:
- ruff
- eslint
- prettier
- pyupgrade
mit