Skip to content

Features

NesiciCoding edited this page Jun 20, 2026 · 7 revisions

Features

A detailed reference of every major feature in Rubric Maker, written for educators.


Rubric Builder

Access: Main menu → Rubrics → New Rubric (or open an existing one)

Criteria and levels

A rubric consists of one or more criteria (rows) and performance levels (columns). Add as many of each as you need. Every cell can contain a description, a point value, and optional sub-items.

Scoring modes

Mode How it works
Total Points Each criterion has a raw point value. The final score is the sum of all selected levels.
Weighted Score Each criterion has a weight (percentage). The final score is a weighted average, expressed as a percentage.
Single-Point Rubric Each criterion has three columns, one being below expectations, meets expectations (includes the criterion descriptor), and exceeding expectations. For the below and exceeding expectations columns, comments will be filled in here

Advanced level options

  • Sub-items: Attach a checklist to any level. Students can be scored on individual items within the level, giving more granular feedback without changing the overall rubric structure.
  • Point ranges: Instead of a fixed point value, define a minimum and maximum. The grader uses a slider to pick the exact score within that range.

Standards integration

Link any criterion to educational standards (CCSS, NGSS, state standards, and more) via the Common Standards Project API. Saved favourites appear at the top of the picker for quick access.

Assessment frameworks

Rubric criteria can be linked to one of three descriptor frameworks:

Framework Use case
CEFR (A1 → C2) Language proficiency — dominant in European language education
IB Learner Profile 10 IB attributes (inquirer, thinker, communicator, etc.)
Bloom's Taxonomy 6 cognitive levels (remember, understand, apply, analyse, evaluate, create)

A framework selector in the RubricBuilder lets you choose which framework to use when linking descriptors to criteria. CEFR badges appear in the grading interface and on exported reports.

Cambridge English exam labels

Access: Settings → General → "Show Cambridge exam labels"

When enabled, every CEFR badge (A2 → C2) gains a second label naming the matching Cambridge English Qualification main-suite exam, e.g. a B2 badge shows "B2 · FCE".

CEFR level Cambridge exam
A2 A2 Key (KET)
B1 B1 Preliminary (PET)
B2 B2 First (FCE)
C1 C1 Advanced (CAE)
C2 C2 Proficiency (CPE)

A1 has no main-suite exam (Cambridge only offers Pre A1 Starters for Young Learners), so no label appears at A1.

These labels show up on the CEFR overview page and on student profile pages anywhere a CEFR badge is rendered — no other configuration is required.

Vocabulary lookups (optional): If an admin has configured a Cambridge Dictionary API key (Admin Dashboard → Integrations), the Vocabulary List editor can look up a word and auto-fill its CEFR level and definition for empty fields. Without a key, vocabulary entries work exactly as before — this is purely additive and fully optional.


Grading Interface

Access: Rubrics list → select a rubric → Grade

Student selection

Pick a student from the class roster before grading. Create and manage students from the Students page.

Scoring interactions

  • Click a level cell to select it as the student's score for that criterion.
  • Toggle sub-item checkboxes to score individual checklist items within a level.
  • Drag the slider (point-range levels) to set the exact score.

Comment bank

Pre-write feedback snippets and tag them by criterion or topic. While grading, open the comment bank and click a snippet to insert it into the feedback field. Edit and reuse snippets across multiple students.

Attachments

Attach a student's work directly to the graded rubric. Supported formats:

  • Word documents (.docx) — rendered inline via Mammoth
  • PDFs — rendered inline via PDF.js
  • Images (.png, .jpg, .gif, etc.)

Documents with embedded text are searchable. Scanned images without a text layer are passed through Tesseract.js OCR to extract readable text.

Voice grading

Click the microphone button in the feedback field to dictate feedback by voice. Uses the browser's built-in Speech Recognition API (requires Chrome or Edge).

Overall feedback

Below the rubric grid, add a general comment that applies to the whole submission. This appears on the exported PDF report.

Keyboard shortcuts

For grading large classes without leaving the keyboard:

Shortcut Action
15 Select performance level for the focused criterion
Tab / Shift+Tab Move focus between criteria
Ctrl+S Save and advance to the next student
? Open the shortcut cheat-sheet overlay

Level buttons show a subtle shortcut hint on hover.

Tablet and iPad support

The grading interface is optimised for classroom tablet use:

  • Enlarged tap targets on level selector buttons.
  • Swipe-to-next-student gesture.
  • Floating save button pinned above the on-screen keyboard.
  • Speaking session timer and pronunciation error buttons sized for thumb use.
  • Tested at 768 px (iPad portrait) and 1024 px (iPad landscape).

Comparative Grading

Access: Rubrics list → select a rubric → Compare

Grade two students side-by-side in a split-screen view. Useful for calibrating scoring consistency — you can see both responses and scores simultaneously and adjust one without losing sight of the other. On phones/small tablets, the split view reflows to a single stacked column.


Testing Environment

Access: Main menu → Tests

Build no-auth, share-link-based tests, separate from the rubric/essay flow.

  • Question types: multiple-choice, short-answer, open-ended, cloze ({{gap}}) and hot-text ([[clickable fragment]]) passages, plus drag-and-drop ordering questions with optional images/hints.
  • CEFR / Standards linking: link any question to a CEFR level or an external standard, same picker used in the Rubric Builder.
  • Student side (/test/:code): no account needed, draft autosave, optional timer, and an advisory Safe Exam Browser gate (requireSEB) — this is a UA-based deterrent, not enforced lockdown.
  • Results (/tests/:testId/results/:studentTestId): MC/short-answer auto-scored, open questions graded manually, per-standard/CEFR rollups, mapped onto a grade scale.
  • Class-average adjustment: a reversible, audited curve (raw scores are always preserved alongside the adjustment).
  • Live monitor (/tests/:testId/monitor, and the equivalent for essays at /essays/:assignmentId/monitor): presence, a live response grid, and proctoring telemetry (tab-switch, copy/paste, battery, heartbeat). Offline mode falls back to a post-hoc event-log review instead of live updates.

Vocabulary Profiling Dashboard

Access: Main menu → Vocabulary

Aggregates DocumentAnalysisResult data across a class or student into CEFR-banded vocabulary distribution charts (A1 → C2 stacked bars). Backed by an open CEFR word list, with the optional Cambridge Dictionary API used only for definition enrichment. Export the filtered word list to CSV.


Peer Review Analytics

Access: From a rubric → Compare/Peer Review → Analytics, or /peer-analytics/:rubricId

Once peer reviews are traceable (each one records gradedBy), this page surfaces:

  • Consistency scoring — mean absolute deviation of peer scores vs. the teacher's baseline grade.
  • Per-reviewer leniency bias and inter-rater spread.
  • A comment-frequency heatmap reusing the same criterion heatmap component as Statistics.
  • Round-over-round trends, if a rubric is peer-reviewed more than once.

Activity Dashboard

Access: Main menu → Activity Dashboard

A single grid for tracking what's been assigned and submitted across a whole cohort:

  • Rows are grouped by activity type (Rubrics / Tests / Essays); columns are classes, filtered by school year and track.
  • Each cell shows a submitted/total count badge.
  • Assign directly from the grid — link/unlink a rubric to a class, bulk-assign an essay to everyone not yet enrolled, or jump straight into a test's builder.

Statistics & Analytics

Access: Main menu → Statistics

Dashboard overview

  • Class average, median, highest, and lowest scores.
  • Score displayed as raw points or percentage depending on scoring mode.

Charts

Chart What it shows
Score histogram Distribution of grades across the class
Criterion heatmap Which criteria students perform best and worst on
Criterion radar Per-criterion performance on a radar/spider chart
CEFR progress How many students are at each CEFR level
Class trend Average score over time (across multiple grading sessions)
Learning goal chart Aggregate attainment per learning goal

All charts update in real time as grading data changes.

Multi-class comparison

A Compare view mode (alongside the per-rubric view) lets you select up to 4 classes on the same rubric for a grouped average bar chart, a per-criterion gap chart, and a multi-class trend line over time. A collapsible "Insights" panel surfaces rule-based flags: a struggling class (<55% avg), a weak criterion (≥15 pp below the class average), or the largest inter-class divergence (≥20 pp gap). Track (VMBO/HAVO/VWO) and school-year dropdowns filter the class selector in both modes.


Student Management

Access: Main menu → Students

  • Add students individually or import a class list from CSV.
  • Organise students into classes.
  • View a student's full grading history on their profile page.
  • Generate share codes and QR codes for student-facing features (self-assessment, essay submission).

Essay Management

Students can submit essays via a share code. The essay is stored locally (no server involved). The grader can:

  • View the submitted essay inline with the rubric.
  • Export a slip sheet with the essay metadata.

When the application is connected to a supabase database, the essay will be handed in automatically, with the code being a fallback method. The teacher is then able to import the essay in the grading view.

Document analysis

When a graded submission has an essay attachment, an Analyse Document button appears in the grading interface. It runs the document through the built-in NLP pipeline:

  • Vocabulary highlighting — target vocabulary items are highlighted inline.
  • Grammar flagging — common errors are flagged with suggestions.
  • Comment bank insertion — detected vocabulary items can be added to the comment bank in one click.

Results are persisted with the grade so they are available on reopening. Powered by vocabularyAnalyser.ts, grammarChecker.ts, and textExtraction.ts.


Self-Assessment & Peer Review

  • Self-assessment: Share a link/QR code with students. They score themselves against the rubric criteria. Their self-scores appear alongside the teacher's scores.
  • Peer review: Students review each other's work using the rubric. Peer scores are stored separately and visible to the teacher.

Speaking Sessions

Access: Main menu → Speaking

Record and manage oral assessment sessions. The speaking assessment uses separate scoring dimensions suited to spoken language (fluency, pronunciation, interaction, etc.).


Export

Access: Main menu → Export (or from within a graded rubric)

Format Content
PDF Formatted student report with rubric grid, scores, and feedback. Export one student or the whole class.
Word (.docx) Raw rubric data. Or upload a custom .docx template with mail-merge fields for a branded report.
CSV Flat table of scores per student per criterion, suitable for Excel or a gradebook.
JSON backup Full export of all app data (rubrics, students, grades, comments). Use for backup or device transfer.

Word mail-merge templates

Upload a .docx file with placeholder fields such as {{studentName}}, {{totalScore}}, {{criterion_1}}. The export engine fills these in for each student and produces individual Word documents. A sample template is available at public/sample-template.docx.

Printing directly from the browser

Use Print Rubric (triggers window.print()) to print without generating a PDF first. A @media print stylesheet hides the sidebar, topbar, and action buttons, enforces page-break rules between criteria sections, and applies portrait or landscape orientation based on the rubric's format setting.


Microsoft 365 Integration

Access: Settings → Microsoft 365

Connect with an Azure AD account via MSAL to access OneDrive files. Once connected, you can open student documents directly from OneDrive inside the attachment viewer without downloading them first.


Supabase Sync

Access: Settings → Database → Connect & Sync

An optional sync layer that mirrors your data to a Supabase (PostgreSQL) instance. Enables:

  • Syncing rubrics, students, and grades across multiple devices.
  • Sharing rubrics or classes with colleague accounts (viewer or editor access).
  • Storing attachments and export templates in Supabase Storage, removing the localStorage size limit for files.

The app continues to work offline via localStorage even when Supabase is configured. See the Supabase Sync page for full setup instructions.


Privacy Page

Access: Sidebar → Privacy (shield icon) or navigate to /privacy

An in-app GDPR/AVG documentation page covering:

  • All data categories and what is stored where (localStorage vs Supabase).
  • Legal basis for processing student data.
  • Right to erasure and data portability instructions.
  • Contact information for the Dutch supervisory authority (Autoriteit Persoonsgegevens).

Backup & Restore

Access: Settings → Data Management

  • Export backup: Downloads a rubricmaker-backup-<date>.json file containing all rubrics, students, grades, comment bank entries, and settings.
  • Import backup: Upload a previously exported JSON file to restore all data. This overwrites existing data, so export a backup first.
  • Use backups to transfer data between devices or browsers.

Themes & Appearance

Access: Settings → General

Theme bundles

Pick a one-click theme bundle to set the accent color, UI font, and export styling together:

Bundle Accent UI font Export style
Academy Blue Inter Calibri, blue headers
Nature Green Nunito Calibri, green headers
Midnight Indigo Source Sans 3 Calibri
Warm Orange/amber tones
Slate Cool grey tones

Selecting a bundle is a single atomic update — accent color, font, and export defaults all change together. You can still override the accent color afterwards with a custom color picker; doing so clears the active bundle.

Tonal accent scale

Whatever accent color is active (bundle or custom), the app generates a full tonal scale (--accent-50 through --accent-900) using CSS color-mix(). This scale drives hover states, badges, charts, and borders throughout the UI, so a single color choice stays consistent everywhere — including in both light and dark mode.

Export fonts

Five decorative Google Fonts (Playfair Display, Oswald, Bebas Neue, Special Elite, Courier Prime) are available as heading/body fonts for PDF and DOCX exports, in addition to the standard system fonts. Pick one in the rubric's Format tab — a live preview shows how headings and body text will look before you export.


Admin Dashboard

Access: Main menu → Admin (admin role required)

  • Roles: teacher (renamed from user), admin, and observer, enforced via Supabase RLS.
  • Integrations tab: Standards API and Cambridge Dictionary API keys.
  • Database tab: Supabase connection management (same as Settings → Database).
  • Archive tab: soft-delete a student, then Restore or Anonymize them later. Anonymizing scrubs PII from the record while keeping aggregate grade history intact.
  • Audit tab: a searchable, category-filterable log of role changes, deletions, grade saves, rubric edits, exports, and auth events, with CSV export. Backed by Supabase audit_logs plus a pg_cron retention job (admin logs 3yr / grade data 1yr / export+auth logs 1mo).
  • Roster sync: CSV upsert updates existing students by email on re-import; an optional "remove students not in this file" mode keeps a class roster in lockstep with a school's SIS export.

Accessibility

RubricMaker targets WCAG 2.1 AAA where physically possible (button/large-text contrast uses the 4.5:1 bar; link/body text targets 7:1 — src/utils/contrastCheck.ts audits every theme bundle, accent preset, and CEFR badge color in CI).

  • Keyboard: full keyboard dragging in the Rubric Builder (@hello-pangea/dnd), a global :focus-visible outline, and a translated skip-to-content link.
  • Focus management: modals (GradeStudent, RubricBuilder) trap focus and restore it to the triggering element on close.
  • Screen readers: drag handles and proctoring flags carry translatable aria-labels; RubricBuilder, GradeStudent, and ComparativeGrading are covered by the jest-axe page suite in CI.

Help & Page Tours

  • "Tour this page" — an interactive walkthrough (Joyride-based, no video) is available on most major pages: Rubric Builder, Export, Statistics, Grading, Comparative Grading, Essays, Tests, Activity Dashboard, CEFR Overview, Speaking Session, Student Profile, and Students.
  • Contextual tooltips — a hover/click help icon (HelpPopover) next to less-obvious controls, including the score modifier, the LWW sync indicator (Admin → Database), and proctoring flags on Test Results / Live Monitor.
  • All tour and tooltip text is translated across all 5 locales.

Notifications & Reminders

Access: Topbar → bell icon | Settings → Notifications

A notification bell in the topbar shows a badge count of classes with overdue grading. Clicking it lists which classes haven't been graded recently.

  • Browser notifications: Opt in via the browser's Notification API to receive reminders even when the tab is in the background.
  • Configurable threshold: Set the number of days without grading before a class is flagged as overdue (default: 7 days). Adjust in Settings → Notifications.

The reminder logic reuses the at-risk detection already present on the Dashboard.

Clone this wiki locally