Online problem-driven learning system https://docs.prairielearn.com
  • TypeScript 77.9%
  • Python 11.4%
  • JavaScript 3.5%
  • HTML 2.7%
  • Jupyter Notebook 1.1%
  • Other 3.3%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Nathan Sarang-Walters 5245ecd801
Default the course agent to v3 for new questions (#16378)
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-13 00:34:41 +00:00
.agents/skills Speed up Playwright tests in CI (#16248) 2026-11-05 16:22:07 +00:00
.changeset Version Packages (#16282) 2026-11-10 21:10:52 +00:00
.claude Add Claude Code remote session setup (#14555) 2026-03-31 18:44:34 +00:00
.conductor Add Conductor docs preview run script (#15350) 2026-06-29 19:39:22 +00:00
.devcontainer Allow questions to define configurable preferences (#14014) 2026-03-14 01:27:11 +00:00
.github Auto-label course agent PRs (#16326) 2026-11-09 19:21:03 +00:00
.vscode Move JS/TS linting to oxlint and formatting to oxfmt (#16250) 2026-11-04 21:55:32 +00:00
apps Default the course agent to v3 for new questions (#16378) 2026-11-13 00:34:41 +00:00
contrib Use map argument of Array.from instead of map method (#15635) 2026-08-21 15:24:12 +00:00
database Remove legacy question authorship support (#16329) 2026-11-12 11:56:24 +00:00
docs Add backend support for course authorship and copy-adoption reports (#16371) 2026-11-12 19:49:50 +00:00
exampleCourse Convert MarkovChainGroupActivity questions to pytest grader (#16300) 2026-11-12 16:52:19 +00:00
graders Update NLTK to 3.10.4 (#16228) 2026-11-03 22:49:19 +00:00
images/executor Upgrade Docker containers (#15785) 2026-09-16 15:54:11 +00:00
packages Let instructors attach files to course agent messages (#16320) 2026-11-12 23:47:05 +00:00
scripts Remove legacy question authorship support (#16329) 2026-11-12 11:56:24 +00:00
templateCourse Remove UUIDs from infoCourse.json (#13689) 2026-01-26 22:49:00 +00:00
testCourse Add raw input diagnostics to parsed scalar inputs (#16103) 2026-11-11 01:29:05 +00:00
workspaces Fix matplotlib cache permissions in JupyterLab workspace images (#16340) 2026-11-11 17:02:17 +00:00
.codecov.yml Disable codecov commenting (#13829) 2026-01-19 19:11:45 +00:00
.coderabbit.yaml Update CodeRabbit config (#13826) 2026-01-19 21:01:03 +00:00
.dependency-cruiser.js Add course agent sandboxes (#16161) 2026-11-03 23:11:43 +00:00
.dockerignore Fix Vite config loader warnings on Vitest startup (#16293) 2026-11-06 16:43:59 +00:00
.editorconfig Format sh files (#11641) 2025-03-31 12:29:32 -07:00
.git-blame-ignore-revs Configure Prettier to auto-format test/example course JSON (#10274) 2024-07-22 17:56:51 +00:00
.gitattributes Add course agent sandboxes (#16161) 2026-11-03 23:11:43 +00:00
.gitignore Printing: add shared renderer & question HTML namespacing (#15860) 2026-11-11 02:07:11 +00:00
.hadolint.yaml Restructure for better layer caches (#11743) 2025-04-14 18:03:32 +00:00
.htmlhintrc Bump minor/patch JS dependencies (#15562) 2026-08-10 19:00:47 +00:00
.htmlmustache.jsonc Remove references to pl-github-link in example course (#15411) 2026-07-09 19:48:46 +00:00
.knip.ts Fix Vite config loader warnings on Vitest startup (#16293) 2026-11-06 16:43:59 +00:00
.markdownlint-cli2.yaml Add 'suffix' option to pl-matrix-component-input (#14708) 2026-05-16 04:05:57 +00:00
.mcp.json Add Playwright MCP server config (#14645) 2026-04-06 18:19:12 +00:00
.oxfmtrc.json Move JS/TS linting to oxlint and formatting to oxfmt (#16250) 2026-11-04 21:55:32 +00:00
.prettierignore Move JS/TS linting to oxlint and formatting to oxfmt (#16250) 2026-11-04 21:55:32 +00:00
.prettierrc.json Move JS/TS linting to oxlint and formatting to oxfmt (#16250) 2026-11-04 21:55:32 +00:00
.readthedocs.yml Upgrade PyGraphviz for Ubuntu 26.04 (#16074) 2026-10-20 15:08:04 +00:00
.sqlfluff Enable unique table alias rule in SQL linting (#15524) 2026-07-31 17:35:49 +00:00
.sqlfluffignore Add sqlfluff and squawk linter; split CI checks (#12160) 2025-08-22 01:05:09 +00:00
.squawk.toml Move JS/TS linting to oxlint and formatting to oxfmt (#16250) 2026-11-04 21:55:32 +00:00
AGENTS.md Move JS/TS linting to oxlint and formatting to oxfmt (#16250) 2026-11-04 21:55:32 +00:00
CLAUDE.md Symlink CLAUDE.md to AGENTS.md (#13769) 2026-01-13 00:27:36 +00:00
CODEOWNERS Clean-up CODEOWNERS file (#13130) 2025-10-17 14:25:49 +00:00
CONTRIBUTING.md Add note to contributing guidelines (#15208) 2026-06-09 12:51:23 +00:00
docker-compose-production.yml Remove outdated parts of Docker Compose config (#11933) 2025-05-08 17:15:57 +00:00
docker-compose.yml Remove outdated parts of Docker Compose config (#11933) 2025-05-08 17:15:57 +00:00
Dockerfile Upgrade to pnpm 12 and simplify version management (#16222) 2026-11-03 19:57:58 +00:00
eslint.config.mjs Move JS/TS linting to oxlint and formatting to oxfmt (#16250) 2026-11-04 21:55:32 +00:00
LICENSE Add the course agent service (#16042) 2026-11-03 23:11:41 +00:00
linkinator.config.json Update documentation URLs to docs.prairielearn.com (#14015) 2026-02-04 15:20:08 +00:00
Makefile Move JS/TS linting to oxlint and formatting to oxfmt (#16250) 2026-11-04 21:55:32 +00:00
mkdocs.yml Update development and documentation favicons (#16342) 2026-11-10 21:23:48 +00:00
oxlint.config.mts Move JS/TS linting to oxlint and formatting to oxfmt (#16250) 2026-11-04 21:55:32 +00:00
package.json Move JS/TS linting to oxlint and formatting to oxfmt (#16250) 2026-11-04 21:55:32 +00:00
pnpm-lock.yaml Bump fast-xml-parser from 5.11.1 to 5.12.0 (#16351) 2026-11-12 19:49:34 +00:00
pnpm-workspace.yaml Add push sync for the course agent (#16162) 2026-11-06 20:51:37 +00:00
postgres-language-server.jsonc Migrate postgres language server (#13347) 2025-11-18 22:06:26 +00:00
pyproject.toml Move JS/TS linting to oxlint and formatting to oxfmt (#16250) 2026-11-04 21:55:32 +00:00
README.md Update documentation URLs to docs.prairielearn.com (#14015) 2026-02-04 15:20:08 +00:00
SECURITY.md Lint all markdown (#11706) 2025-04-04 22:29:19 +00:00
turbo.jsonc Disable Turborepo agent guidance updates (#16244) 2026-11-03 23:16:01 +00:00
uv.lock Update NLTK to 3.10.4 (#16228) 2026-11-03 22:49:19 +00:00
vitest.config.mts Fix Vite config loader warnings on Vitest startup (#16293) 2026-11-06 16:43:59 +00:00
vitest.shared.mts Fix Vite config loader warnings on Vitest startup (#16293) 2026-11-06 16:43:59 +00:00

PrairieLearn

PrairieLearn is an online problem-driven learning system for creating homeworks and tests. It allows questions to be written using arbitrary HTML, JavaScript, and Python, thus enabling very powerful questions that can randomize and autograde themselves, and can access client- and server-side libraries to handle tasks such as graphical drawing, symbolic algebra, and student code compilation and execution.

Image build status Test build status

Documentation: https://docs.prairielearn.com/

Paid hosting and support: https://www.prairielearn.com/