SciPro is a peer-review and grading web app for Jupyter notebook submissions. It is used in the Python programming course at Hochschule Bonn-Rhein-Sieg and treats Jupyter notebooks as executable academic manuscripts.
The app provides a structured rubric-based evaluation workflow. In teacher mode, users select criteria checkboxes across categories, enter dimension scores, and receive an auto-generated German grade on the 1.0-5.0 scale together with formatted evaluation text. All data persists locally in the browser via IndexedDB.
| Page | Description | Link |
|---|---|---|
| Architecture | High-level design and data flow | emkace.github.io/svelte_review/docs/architecture |
| Contributing | Development workflow and style rules | emkace.github.io/svelte_review/docs/contributing |
| User Guide | How to use the review application | emkace.github.io/svelte_review/docs/user-guide |
| YAML Content | Managing rubrics and assignments | emkace.github.io/svelte_review/docs/yaml-content |
| Technology | Purpose |
|---|---|
| SvelteKit 2 | App framework with Svelte 5 runes |
| Tailwind CSS v4 | Utility-first styling |
| TypeScript | Type-safe source |
| IndexedDB | Client-side persistence |
| js-yaml | Loading criteria and definitions |
| shadcn-svelte | UI primitive components |
| Vitest / Playwright | Unit and E2E testing |
This project requires Node.js 20+ and pnpm 9+.
pnpm install
pnpm run prepare
pnpm dev
The dev server starts on the default Vite port (usually 5173).
src/
lib/
components/ UI primitives and feature components
services/ Business logic and data layer (DB, grading)
stores/ Svelte 5 runes state management
types/ TypeScript interfaces
routes/ SvelteKit file-based routing
static/
data/ Assignment and rubric YAML files
docs/ Project documentation
| Script | Command | Description |
|---|---|---|
dev |
vite dev |
Starts development server with HMR. |
build |
vite build |
Creates optimized production build. |
prepare |
playwright install && svelte-kit sync |
Setup browsers and SvelteKit types. |
check |
svelte-kit sync && svelte-check |
Type-checks the entire project. |
lint |
eslint . |
Lints source files. |
test |
pnpm run test:unit -- --run && pnpm run test:e2e |
Full test suite. |
test:unit |
vitest |
Runs unit tests. |
test:e2e |
playwright test |
Runs E2E tests. |