If you're new, please use this repo's wiki to get started!
If so, this repo was used as a template, and your course repo's name should be pl-SSS-CCC
,
where SSS
is your project
institution name (ucb
, csulb
, ecc
) and CCC
is the lowercase course
number at your institution (eg pl-ucb-cs169a
, pl-ecc-csci8
, etc).
We (UCB PL admins) should already have created a team
pl-dev-SSS-CCC
that has write access to your repo; email us the
names of any course staff who should have access. WARNING: your
repo will likely contain sensitive content such as exam questions. Be
careful who has access. All access to PL repos is by teams, not
by adding individuals, to keep access control manageable.
- Delete (meaning
git rm
) theelements
subdirectory, unless you specifically want to use the custom elements in here (see below for some documentation) - Delete the contents of
serverFilesCourse
andclientFilesCourse
- Delete the contents of
courseInstances
(you'll add your own later) - Delete the contents of
questions/
, which will be replaced with your course's questions - Immediately update this
README.md
andinfoCourse.json
to reflect the info for your course, including inserting a valid UUID for the course. You can runuuidgen
at a shell prompt to make one. Important. Just about every type of thing in PL -- course, question, element, etc. -- has a UUID (Universally Unique ID). You can generate one by typinguuidgen
at a terminal window or by using the UUID generator. For safety, in the template repo all UUID values have been set to "9999...". In your new repo, immediatelygit rm
any files you do not need, and in the files that remain, replace every UUID with a fresh one.
Note: Although it has become customary to name the primary Git
branch main
rather than master
, do not do so for PL repos as
the server will not be able to sync them. The server will only sync
to the master
branch.
We now have a configuration to launch a devcontainer with Prairielearn launched automatically! The primary benefit of this is to enable demos/development without installing docker (or even an IDE!) locally -- see "Run in the cloud" below.
1. Click the "Code" dropdown on the page of this branch (will also work on master once merged) 2. Click the "Codespaces" tab 3. Click the "+" to create a new codespace 4. You will be dropped into a VSCode web editor - If you prefer your local IDE, then you can connect to the codespace via an extension ([vscode](https://marketplace.visualstudio.com/items?itemName=GitHub.codespaces) | [intellij](https://plugins.jetbrains.com/plugin/20060-github-codespaces))- Have docker installed (desktop | headless) and (if you installed docker engine) your user given docker execution/configuration permissions
- Open this repo in your IDE
- Launch the devcontainer as supported by your IDE
-
VSCode:
-
IntelliJ: see their docs
-
Other IDEs will likely require the devcontainers cli and a remote (similar to ssh) connection to the started container. This process is rather involved and somewhat unstable as of 12 June 2024. If your IDE supports it, I recommend connecting to a codespace as detailed above ("Run in the cloud").
-