MFA - Marking Scheme and Feedback Assistant
============================================

MFA generates marking/grading spreadsheets from a marking scheme file (`.mfax`/`.xml`),
and lets you enter grades and generate student feedback directly in the app.

This folder is a self-contained copy of MFA - it includes its own Java runtime, so
there is nothing else to install.


Running MFA
-----------

The normal way to start MFA is via its built-in launcher:

  macOS / Linux:   bin/MFA
  Windows:         bin\MFA.bat

You can pass it a marking scheme file to open on startup, and/or a `-style` option
to pick a colour theme:

  bin/MFA "path/to/my scheme.mfax"
  bin/MFA -style blue "path/to/my scheme.mfax"

Run it with no arguments to start with a blank scheme, or to load whichever scheme
you open by hand once the app is running.

Built-in themes: `blue`, `blue-large`, `Aber`, `Aber-large`, `sage`. `-style` also
accepts a path to your own `.css` file if you want to make your own. If you don't
pass `-style` at all, MFA uses whichever theme you last picked on the Settings tab
(or the default look, if you've never picked one).


A one-line script per marking-scheme folder
--------------------------------------------

A convenient way to work with MFA is to keep one short script alongside each
marking scheme you're working on, that just points at the installed app and
names that folder's scheme file. Then to work on that assignment, you open a
terminal in that folder and run the script - no need to type the full path
each time, and no risk of opening the wrong scheme file by mistake.

Example (macOS/Linux) - save as `run.sh` next to your `.mfax` file, in the
folder for that assignment:

    #!/usr/bin/env bash
    /full/path/to/MFA/bin/MFA "CS12345-Marking_2025-2026.mfax"

Make it executable once (`chmod +x run.sh`), then from that folder just run:

    ./run.sh

Example (Windows) - save as `run.bat`:

    @echo off
    C:\full\path\to\MFA\bin\MFA.bat "CS12345-Marking_2025-2026.mfax"

Then double-click `run.bat`, or run it from a command prompt opened in that folder.

Adjust the full path to wherever you installed MFA, and the filename to match
your own marking scheme. Keeping a script like this per folder also acts as a
handy record of exactly which scheme file that folder's spreadsheets/feedback
came from.


Running the JVM directly (advanced / troubleshooting)
-------------------------------------------------------

`bin/MFA` / `bin\MFA.bat` are thin wrapper scripts - if you ever need to run MFA
without them (e.g. diagnosing a startup problem, or wiring it into your own
tooling), this is the equivalent command they run, from inside this folder:

  macOS / Linux:

    runtime/bin/java -Dfile.encoding=UTF-8 \
      --module-path app:lib \
      --module MarkingSheetGUI/markingGUI.fx.MarkingFxApp \
      "path/to/scheme.mfax"

  Windows:

    runtime\bin\java.exe -Dfile.encoding=UTF-8 ^
      --module-path app;lib ^
      --module MarkingSheetGUI/markingGUI.fx.MarkingFxApp ^
      "path\to\scheme.mfax"

Run this from MFA's own top-level folder (the one containing `bin/`, `runtime/`,
`app/` and `lib/`) so the app can find its own settings file.


Settings
--------

MFA keeps its settings in a file called `MFAProperties.txt`. Normally this
lives right next to `bin/`, `runtime/`, `app/` and `lib/` in this same folder,
so your settings travel with this copy of MFA. It's created automatically
(with sensible defaults) the first time you save settings from the app's
Settings tab - there's nothing to set up in advance.


If your operating system warns you before first run
------------------------------------------------------

MFA isn't code-signed, so the first time you run it your OS may warn you:

  macOS:    right-click MFA.app (or the app icon) and choose "Open", instead
            of double-clicking it - only needed the first time.
  Windows:  if SmartScreen appears, choose "More info", then "Run anyway".

This is expected for an unsigned, internally-distributed tool - it doesn't mean
anything is wrong with the download.
