Skip to content
Nelson Lojo edited this page May 24, 2023 · 2 revisions

Development Requirements

  • Docker

Via docker, the appropriate images can be maintained and installed. You may optionally install a local PrairieLearn clone if you want to tinker with its internals.

PrairieLearn Directory Structure

Your codebase should be structured like this (we recommend using the pl-ucb-csxxx repo as a template for the other files possibly required by prairielearn):

root-course-directory
|   ...
|
+-- elements
|   +-- pl-faded-parsons        << contains all required FPP files (the initialized submodule)
|   |   generate_fpp.py         << the main script for content generation
|   |   ...
|
+-- questions                   << auto-detect targets the questions directory
|   |   question1.py            <<
|   |   question2.rb            << the source files for generating...
|   |   ...                     <<
|   |
|   +-- question1/              <<
|   +-- question2/              << ...the generated PrairieLearn questions
|   |   ...                     <<

To begin writing any FPP questions, you will need the pl-faded-parsons directory and all of its contents. It contains all the html and js files required by PrairieLearn to display a <pl-faded-parsons> element.

This element is then used by questions you would traditionally write as subfolders in the questions directory. The tool generate_fpp.py will take well-formatted source files and turn them into a question folder.

Grading

The tool has the ability to generate testing content, but the PrairieLearn's python autograder will not be able to be run locally without following these steps in the pl dev guide to initialize docker correctly.

Clone this wiki locally