Skip to content

Capstone Survey

Capstone Survey

Capstone Survey is a full-featured survey platform built for UC Merced capstone courses. It uses SurveyJS for survey rendering and provides an admin CRUD API, public survey endpoints, protected results management, and LTI 1.1 grade passback to Canvas.

Features

  • Admin CRUD — full JSON API for survey lifecycle management (create, read, update, delete)
  • Public survey endpoints — unauthenticated rendering via SurveyJS with form submission
  • Protected results — listing, viewing, updating, and deleting submissions with CSV / JSON export
  • LTI 1.1 grade passback (v0.12.0+) — Canvas integration for automatic grade sync
  • Access control — configurable modes (open, authenticated, LTI-only)
  • PDF export — multi-page submission export
  • Rubric sidebar — side-by-side evaluation interface
  • Preact admin UI — lightweight frontend for managing surveys and viewing results

API Overview

Admin CRUD: | Endpoint | Description | |---|---| | GET /api/surveys/ | List surveys | | GET /api/surveys/{id} | Get survey | | POST /api/surveys/ | Create survey | | PATCH /api/surveys/{id} | Update survey | | DELETE /api/surveys/{id} | Delete survey |

Public endpoints (no auth required): | Endpoint | Description | |---|---| | GET /survey/{id} | Renders survey via SurveyJS | | POST /survey/{id}/submit | Submit response |

Protected results: | Endpoint | Description | |---|---| | GET /api/surveys/{id}/submissions | List submissions | | GET /api/surveys/{id}/submissions/export?format=csv\|json | Export all submissions | | GET/PATCH/DELETE /api/surveys/{id}/submissions/{submission_id} | Single submission operations |

Quick Start

# Install dependencies
uv sync --all-extras --dev

# Run the app
uv run capstone-survey start --host 0.0.0.0 --port 8000 --reload --mongo-uri mongodb://localhost:27017 --mongo-dbname capstone

# Or with Docker Compose
docker compose up -d --build

Open http://localhost:8000/pages/login to sign in, create a survey, and manage results.

Integration

Capstone Survey is part of the CSED platform ecosystem, using Psephos as a shared survey engine in some deployments and optionally integrating with UMACS for authentication.