Skip to content
michael-borckPublic

About

Audits unit assessments against UDL Guidelines 3.0 using AI to pre-fill ratings, generates radar charts and PDF reports for accessibility improvements aligned with Assessment 2030.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

106 Commits

Folders and files

Repository files navigation

UDL Lens

A web tool for Curtin University academics to audit unit assessments against the UDL Guidelines 3.0, framed around the Assessment 2030 (A2030) initiative.

Built as a prototype for an iSoLT grant collaboration with Luke (Teaching Support, Curtin University).

What it does

  1. Add assessments - describe your unit's assessments (Written Report, Portfolio, Interactive Oral, etc.) with optional brief upload (PDF or DOCX)
  2. Review checkpoints - AI pre-fills a UDL rating for each checkpoint based on your brief; you verify or override each rating
  3. See results - radar chart across 6 UDL dimensions, quick wins, longer-term improvements, and a downloadable PDF report

No login. No database. Session state only.

Stack

Getting started

npm install
cp .env.example .env.local   # add your ANTHROPIC_API_KEY
npm run dev

Open http://localhost:3000.

Standalone version (single HTML file)

The whole app can also be built as one downloadable HTML file with no server at all - useful for workshops, or for running fully locally with Ollama:

npm run build:standalone   # -> standalone-dist/udl-lens.html

Open the file in a browser (or host it anywhere static), click the ⚙ button, and pick a provider:

  • Anthropic - your own API key; reads PDF briefs natively
  • OpenAI-compatible - OpenAI, OpenRouter, or any /v1/chat/completions endpoint
  • Ollama - fully local; nothing leaves your machine. Optional bearer token covers proxied/remote Ollama setups.

Keys are stored only in the browser's local storage. Notes for Ollama: start it with OLLAMA_ORIGINS="*" so the page can call it, and pull a model first (e.g. ollama pull qwen3:8b). With non-Anthropic providers, PDF briefs are parsed to text in the browser (scanned PDFs without a text layer need Anthropic).

To hack on the standalone build: npm run dev:standalone, then open http://localhost:5173/standalone/index.html.

Environment variables

Variable Required Description
ANTHROPIC_API_KEY Yes Anthropic API key - get one at console.anthropic.com
ANTHROPIC_MODEL No Default model for all routes (default: claude-sonnet-4-6)
EXTRACT_MODEL No Model for brief extraction - Haiku is fine and cheaper
PREFILL_MODEL No Model for checkpoint pre-fill - test Haiku vs Sonnet
SUGGESTIONS_MODEL No Model for suggestions - Sonnet recommended
TRUSTED_PROXY_HOPS No Trusted reverse-proxy hops (default 1). Rate limit reads the X-Forwarded-For entry hops from the end so it can't be spoofed. Set 0 if you expose the port directly.

Per-route vars take precedence over ANTHROPIC_MODEL. Omit them to use the default.

Deployment

Node.js (any VPS, Railway, Render, etc.):

npm run build
npm start

Docker (VPS or any host):

# 1. Grab the two files you need
curl -O https://raw.githubusercontent.com/michael-borck/udl-lens/main/docker-compose.yml
curl -O https://raw.githubusercontent.com/michael-borck/udl-lens/main/.env.example

# 2. Add your API key
mv .env.example .env.local
nano .env.local   # set ANTHROPIC_API_KEY=sk-ant-...

# 3. Run (pulls image automatically)
docker compose up -d

Open http://your-server:3000.

To update to the latest image: docker compose pull && docker compose up -d

No database, no migrations, no user accounts.

License

MIT - see LICENSE.

About

Audits unit assessments against UDL Guidelines 3.0 using AI to pre-fill ratings, generates radar charts and PDF reports for accessibility improvements aligned with Assessment 2030.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages