eTMA Handler is a marking tool for Open University tutors. It reads student
assignment submissions in .fhi format, provides a browser-based marking
interface (Phoenix LiveView), and generates graded .docx feedback files.
This is the BEAM (Elixir/OTP) rewrite of the legacy Java eTMA tool.
You need one of the following installed:
| Tool | Install | Check |
|---|---|---|
Elixir 1.17+ / OTP 27+ |
|
|
Nix (with flakes) |
|
|
Podman (container route) |
|
|
Optional but recommended:
-
just — task runner:
cargo install just -
Rust nightly — for NIFs:
rustup toolchain install nightly
cd tma-mark2
nix develop # enters dev shell with all deps
mix deps.get
mix assets.setup
mix phx.server # open http://localhost:4000cd tma-mark2
mix deps.get
mix assets.setup
mix assets.build
mix phx.serverThen open http://localhost:4000 in your browser.
# Start dev server with live reload
just dev
# Run all tests
just test
# Lint and format
just lint
just format
# Check project health
just doctor-
Place
.fhifiles in your Downloads folder (or a configured watch directory). -
The files appear automatically in the eTMA Handler web interface.
-
Use the marking grid to assign grades and write feedback.
-
Click Export to generate graded
.docxfiles.
| Path | Purpose |
|---|---|
|
Core Elixir application (FHI parsing, marking logic, security) |
|
Phoenix LiveView UI |
|
Rust NIF for cryptographic operations |
|
Environment-specific configuration |
|
Static assets (CSS, JS via esbuild/tailwind) |
|
ExUnit test suite |
| Symptom | Fix |
|---|---|
|
Ensure Rust is installed: |
Port 4000 in use |
|
Assets not loading |
|
CubDB lock file error |
Remove |
just help-me # interactive help menu
just tour # guided tour of the codebase
just doctor # diagnose common problems
just heal # attempt automatic fixes