Managing Courses
Query courses, modules, SLTs, lesson content, and manage student and teacher workflows
Managing Courses
List Courses
andamio course listTo see only courses where you're a teacher:
andamio teacher coursesCourse Details
andamio course get <course-id>List Modules
andamio course modules <course-id>Or use --course to specify by name instead of ID:
andamio course modules --course "Intro to Cardano"The --course flag matches by substring. If multiple courses match, all candidates are listed with their IDs.
View SLTs
andamio course slts <course-id> <module-code>With --course:
andamio course slts <module-code> --course "Intro to Cardano"This returns the Student Learning Targets for a specific module. The module must be on-chain (APPROVED or ON_CHAIN status) for this public endpoint to work.
View Lesson Content
Get a single lesson by SLT index:
andamio course lesson <course-id> <module-code> <slt-index>Get the module introduction:
andamio course intro <course-id> <module-code>Get the module assignment:
andamio course assignment <course-id> <module-code>JSON Output
All commands support -o json for structured output:
andamio course modules <course-id> -o json | jq '.data[].content.course_module_code'Create a Module
Create a new module on an existing course, either from a compiled directory or explicit flags:
# From a compiled directory (reads title and code from outline.md)
andamio course create-module ./compiled/my-course/101 --course-id <id>
# From explicit flags
andamio course create-module --course-id <id> --code 101 --title "My Module"Requires user authentication (wallet login) and teacher access on the course.
Course Owner Commands
If you own courses (created via on-chain transaction), manage them with the course owner subgroup. All require user authentication.
List Your Courses
andamio course owner listCreate a Course
andamio course owner create --title "My Course" --description "Learn things" --publicOptional flags: --description, --image-url, --video-url, --category, --public.
Update Course Metadata
Only specified flags are updated — omitted fields remain unchanged:
andamio course owner update --course-id <id> --title "New Title"
andamio course owner update --course-id <id> --description "Updated" --public=falseRegister an On-Chain Course
After creating a course on-chain with tx run, register it with off-chain metadata. The on-chain transaction creates the course in the smart contract; registration links it to the API's metadata store.
andamio course owner register --course-id <id> --title "My Course"Manage Teachers
Set the teacher list for a course (repeatable --teacher flag):
andamio course owner teachers --course-id <id> --teacher addr1... --teacher addr2...Course Teacher Commands
Teachers manage module lifecycle and review student submissions. All course teacher commands require user authentication and teacher access on the course.
Module Lifecycle
Register, publish, delete, and update the status of course modules:
# Register a module from on-chain data
andamio course teacher register-module --course-id <id> --module-code 101
# Publish a module
andamio course teacher publish-module --course-id <id> --module-code 101
# Delete a module
andamio course teacher delete-module --course-id <id> --module-code 101
# Update module status
andamio course teacher update-module-status --course-id <id> --module-code 101 --status DRAFTAll four commands require --course-id and --module-code. The update-module-status command also requires --status.
Review Student Submissions
List pending reviews, then approve or reject with optional feedback:
# List commitments awaiting review
andamio course teacher commitments --course-id <id>
# Approve a submission
andamio course teacher review --course-id <id> --commitment-id <cid> --decision approve
# Reject with feedback
andamio course teacher review --course-id <id> --commitment-id <cid> --decision reject --feedback "Needs more detail"The --decision flag accepts approve or reject. The --feedback flag is optional.
Scripting Example
List pending commitments and review each individually:
COURSE_ID="your-course-id"
# List all pending commitment IDs
andamio course teacher commitments --course-id "$COURSE_ID" -o json | \
jq -r '.data[].commitment_id'
# Review a specific commitment
andamio course teacher review --course-id "$COURSE_ID" --commitment-id <cid> --decision approveTo batch-approve (use with caution — review each submission first in production):
andamio course teacher commitments --course-id "$COURSE_ID" -o json | \
jq -r '.data[].commitment_id' | \
while read CID; do
andamio course teacher review --course-id "$COURSE_ID" --commitment-id "$CID" --decision approve
doneCourse Student Commands
Students enroll in modules, submit evidence, and claim credentials. All course student commands require user authentication.
List Enrolled Courses and Credentials
# Courses you're enrolled in
andamio course student courses
# Credentials you've earned
andamio course student credentials
# All your assignment commitments
andamio course student commitmentsGet a Specific Commitment
andamio course student commitment --course-id <id> --module-code 101Enroll in a Module
andamio course student create --course-id <id> --module-code 101Submit and Update Evidence
# Submit evidence for the first time
andamio course student submit --course-id <id> --module-code 101 --evidence "https://github.com/my/pr"
# For chain-only modules (no module code), use --slt-hash instead
andamio course student submit --course-id <id> --slt-hash 77547a... --evidence "https://github.com/my/pr"
# Update evidence after feedback
andamio course student update --course-id <id> --module-code 101 --evidence "https://github.com/my/pr/v2"Claim a Credential
After your submission is approved:
andamio course student claim --course-id <id> --module-code 101On-Chain Transactions
For on-chain operations (assignment commitment, evidence update, credential claim), use tx run with the appropriate transaction endpoint. See Transaction Signing for the full workflow.
Leave a Commitment
Withdraw from a module before completion:
andamio course student leave --course-id <id> --module-code 101Student Workflow Example
The full student workflow from enrollment to credential:
COURSE_ID="your-course-id"
MODULE="101"
# 1. Enroll
andamio course student create --course-id "$COURSE_ID" --module-code "$MODULE"
# 2. Submit evidence
andamio course student submit --course-id "$COURSE_ID" --module-code "$MODULE" \
--evidence "https://github.com/myrepo/pull/1"
# 3. Check status
andamio course student commitment --course-id "$COURSE_ID" --module-code "$MODULE" -o json
# 4. After approval, claim credential
andamio course student claim --course-id "$COURSE_ID" --module-code "$MODULE"
# 5. Verify
andamio course student credentialsYour Dashboard
See a summary of everything you're enrolled in, teaching, and managing:
andamio user meRole-Specific Views
List courses where you're a teacher:
andamio teacher coursesList projects where you're a manager:
andamio manager projectsOther Resources
Projects
andamio project list
andamio project get <project-id>Transactions
Build, sign, and submit transactions:
andamio tx build /v2/tx/global/user/access-token/mint --body '{"alias":"dev1",...}'
andamio tx sign --tx <unsigned-cbor> --skey ./payment.skey
andamio tx submit --tx <signed-cbor>
andamio tx status <tx-hash>See Transaction Signing for the full workflow.
API Exploration
Fetch the OpenAPI spec and browse available endpoints:
andamio spec fetch
andamio spec paths
andamio spec paths --filter course-module