A couple of weeks ago, I started building a qualification tracker because I am very good at knowing where my learners are with their work and considerably less good at remembering exactly what date I marked something.
The original idea was fairly small.
Learner. Qualification. Units. Status.
Change the status, let the computer remember the date. Stop reconstructing my own admin history from emails, lesson plans and vague memories of what happened before half term.
I called it Unitflow.
It has grown a little.
Not in the usual "I've thought of seventeen more features" way, although there has admittedly been some of that. Mostly it has grown because I've actually been using fictional learners and qualifications to test what happens when the nice clean idea meets the messier reality of qualification administration.
One of the more important discoveries was that a learner finishing a unit and a unit being finished are not the same thing.
If a learner has completed their work and handed it to me, that unit might be Ready for marking. After that it could still need marking, internal moderation, final sign-off and external moderation.
From my workload perspective, there is plenty left to do.
From the learner's perspective, they've finished it.
That sounds obvious when you write it down. It wasn't obvious to the software until I told it.
So Unitflow now understands both.
There have been lots of little decisions like that. Target dates aren't deadlines, because that's not how we work. There is no big red OVERDUE judgement because something passed an arbitrary date. Evidence doesn't need uploading into yet another system when it already has somewhere sensible to live. Learners don't need their entire personal history stored in a qualification tracker either.
And somewhere along the way, my little tracker stopped being quite so little.
The interesting bit
I wanted Unitflow to remain local.
There are plenty of systems that start with "wouldn't it be useful if everyone could access this?" and end several months later with user accounts, servers, subscriptions, permissions, passwords, cloud databases and a GDPR headache.
I don't need any of that to remember when I marked Unit 3.
So Unitflow runs locally and stores its data locally.
But that created another problem: what happens if more than one teacher wants to use it?
The answer we've landed on is wonderfully unsophisticated.
Files.
A qualification can be set up once and exported. Another teacher can import it into their copy of Unitflow instead of typing all the units again.
Learner records can be exported too. Someone coordinating qualifications can import those records into their own copy and combine the data.
This week I tested what happens when two copies of Unitflow contain the same learner.
My test learner, AB 0001, already existed in one copy with two qualifications. I exported AB 0001 from another dataset and imported them.
Unitflow recognised the learner and didn't create another one.
Then I gave the exported version an additional qualification from the prestigious JAEB (Jo's Amazing Education Board) and tried again.
This time Unitflow told me:
no new learner needed;
one existing learner would be merged;
one new qualification would be added;
three unit records would be added;
three new history entries would be added.
I pressed the button.
One learner. Three qualifications.
It worked.
That is approximately the point at which I realised this has become an actual piece of software.
And now it has an app
There has also been a second development branch happening in the background.
Teddy has made a desktop wrapper for it.
He did this properly, with his own branch, tests and a formal pull request, rather than wandering into my project and pressing mysterious engineer buttons. I feel this distinction should be recorded for posterity.
His current local build launches Unitflow as a normal application on a PC. He's tested adding and editing data, closing the application completely and reopening it.
The data is still there.
We haven't merged his work yet because I've still been changing the underlying application. There's not much point repeatedly making his wrapper catch up while I'm moving things around underneath it.
But I think we've reached that point now.
The import and merge behaviour works. The core qualification workflow works. Backups work. The app remembers its history. The reporting understands the difference between learner completion and processing. The portable data is doing what I wanted it to do.
So I'm calling a halt to Feature Brain.
Next comes Teddy's pull request, the desktop build and one final run through the whole thing in its packaged form.
And then something slightly terrifying happens.
I'm going to put my real qualifications in it and use it.
Not AB 0001.
Not the entirely legitimate qualifications offered by the Jo's Amazing Education Board.
Actual learners. Actual units. Actual work.
There will inevitably be things that annoy me once I'm using it on a Tuesday morning rather than deliberately testing it. That's fine. Those can go on a list for later.
For now, I think the experiment has answered the question I started with.
I wanted to know whether I could build myself a little system that remembered the admin I kept forgetting.
Apparently I can.