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.
Related Research¶
- CSE120 Capstone — The capstone course ecosystem this project serves.
- AI-Assisted Autograding — The grading pipeline that consumes capstone survey data.