Journal server not running

This page needs its local helper server running. Open Terminal, run python3 server.py from the journal folder (or double-click start-journal.command), then reload this page.

Journal

Sign in with Touch ID, or with your username and password.

What is this?

This week

Revision

Today's entries

Today

Yours, not the university's: the sync marks it local and never touches it.

Important dates

Decisions

Everything else

Todos

Includes items synced one-way and two-way from Apple Reminders (marked "reminders").

Todos with both a start and due date.

Notes and ideas have their own page now.

Ideas

Everything captured as an idea rather than a task. None of it is a thing to do, so nothing here nags. Newest first.

Important Dates

Dates worth seeing coming, whether they repeat or not: a renewal like MOT or insurance, a recurring Reminder (fortnightly bins), or a one-off like an exam or interview.

Memories

Activity

Click a day to jump in

Months

Common topics

Settings

Ends the session on this device and clears anything cached for this account, so the next person to open the app gets the sign-in screen.

Touch ID

Checking this device...

Touch ID is per device and per account, so each Mac needs setting up once. Your password keeps working either way, and is the way back in if Touch ID is ever unavailable.

Uni Today mode

Fast-capture layout for lectures: lands on Today with the capture box ready, surfaces a gemrev quick-add link, and hides the Health tab.

Click to cycle: off → on → auto (uses your timetable calendar below -- on while you've got lectures on, off otherwise, no Shortcut needed).

How to automate it another way (Shortcuts)

On your Mac: Shortcuts app → Automation → New Personal Automation → pick Focus (a Focus mode) or Wi-Fi (network: eduroam) → turn off "Ask Before Running" → add "Get Contents of URL", POST to https://journal.angolhenry.co.uk/api/uni-mode, Authentication: Username and Password (your usual login), JSON body {"on": true}. Make a second automation for when the Focus ends / you leave eduroam, same shortcut with {"on": false}. This always sets an explicit on/off (overriding "auto" until you cycle the button above again).

Today's left column

The narrow column on Today holding the week strip, the mini calendar, Revision and Today's entries. On auto it is laid out only for an account that has something substantial to put in it, and the other two columns take the freed width. Set it explicitly either way if you disagree with that.

Reflect tab

Reflections on lessons, placements and ECE visits. Turn the tab off to keep it out of the header between now and clinical phase, and back on when you have a visit to write up. Nothing is deleted either way, and the tab reappears on its own the moment there is a reflection saved: a hidden tab holding your writing is not something this app will do.

Export all my data

Everything this account holds, as one ZIP: a JSON file with every record, a spreadsheet (CSV) per kind of record, and your journal and settings files. Nothing from anyone else's account is ever in it.

Your school day

Tutor time and the after-school slot around your periods on Today.

Connected devices

The companion app watches a "Journal Imports" folder on your Mac or Windows PC and sends any topics spreadsheet you save there straight to the journal. It uses a device token rather than your password, and the token can only import topics.

Topics spreadsheet

An Excel file with one sheet per year group (named like "Year 7"), one topic per row. Every class in that year gets the list as a checklist. Re-importing keeps what you have ticked.

Notifications

Calendar

iCloud calendar connected. Add other calendars below via their published ICS/webcal link (Outlook: Calendar settings → Share → Publish a calendar). Read-only, refreshes every few minutes. Whichever source is checked "This is my timetable" is what auto uni mode watches.

What sits on the menu bar

Nine entries is a long bar. Tick the ones you want on it; everything else stays one click away under More. Nothing is removed, and Today always stays first.

Entry enrichment

A model on your own Mac reads each entry and files tags, a kind and a short summary beside it. It never edits what you wrote, and nothing leaves your machines.

How to set it up

The agent reads your journal, runs a model on your Mac and sends back only the tags and summaries. Nothing you have written leaves your machines. It never edits an entry, and it never records anything about food, eating or weight.

Store the credentials in your Keychain once, so the script never holds a password. Type your user:password at the second prompt and press ctrl-D; it is not echoed and not saved to a file.

security add-generic-password -a "$USER" -s journal-agent-url \
    -w 'https://journal.angolhenry.co.uk'
security add-generic-password -a "$USER" -s journal-agent-auth -w

ollama pull llama3.1:8b
chmod +x ~/Downloads/journal-agent.py
~/Downloads/journal-agent.py --dry-run

Drop --dry-run when the output looks right. --brief prints today instead.

Subscribe to everything, elsewhere

One feed containing every calendar above, merged and deduplicated exactly as this app shows it. Paste it into Apple Calendar, Outlook or Google as a subscribed calendar and it stays in step on its own. The link contains its own access token, so treat it like a password: anyone holding it can read your calendar.

University timetable sync

The university feed is merged into your own timetable rather than shown separately, so a room you correct here sticks and is never overwritten by the next sync. It runs automatically every five minutes. Upstream sessions that disappear are marked cancelled, never deleted.

Schedule this week's asynchronous lectures

Paste the week's lecture list. Anything without a timetable slot gets an hour found for it in your actual week - weekdays only, 09:00 to 18:00, never over lunch, and never butted against an existing session. They appear in the timetable like any other lecture and carry across to gemrev, so their notes and objectives attach.

Teaching group

The university publishes one merged timetable containing every teaching group, so a clinical-skills session appears three or four times over, once per group. Put your own group letter here and Today shows only your sessions, plus everything with no group marker at all (lectures, PBL and anything else the whole cohort attends). Sessions marked for more than one group count as yours whenever your letter is among them.

Nothing is deleted: other groups' sessions stay in the timetable and Today has a Show other groups button that brings them back into view, greyed out. They are left out of the subscribable calendar feed and the gemrev push, since both are meant to carry your own timetable only. Separate letters with a comma for more than one group.

Locations

When a calendar event's location contains the text below, Today shows a directions link to the real address (useful when the timetable only gives a room/building code). Add a travel time in minutes and the "Next" pill also shows when to leave.

You can also clean up how the location reads. Some timetable feeds list every room the whole cohort is split across, which collapses to something useless like "Med School PBL". Put your own room in My room and Today shows just that room whenever the feed actually lists it, so it never invents a room you were not given. Show as is a plain override used when there is no room to pick out. Either one on its own is enough, no address needed.

Moodle module links

When a calendar event's title matches a module below, Today shows a quick link straight to that module's Moodle page.

Health

Abdominal pain and GI symptoms, migraine and triptan dosing, daily wellness, and mood tracking. Everything here is optional: log only the parts you use.

Loading…

Also tracking

Loading…

Quick actions

Recent attacks

Loading…

Log a GI record

0

Red-tinted ones are the clinically significant ones worth flagging to a doctor -- everything else is just a normal symptom.

0

Recent GI records

Loading…

Notes

In your own words. If there is a record within a few hours either side, this attaches itself to it.

Loading…
0
5

Recent mood entries

Loading…

Recent PHQ-9 check-ins

Loading…
Loading…
Download raw CSV (.zip)

The summary opens in a new tab: use your browser's Print (⌘P) and choose "Save as PDF." The CSV download is a zip with one file per record type.

Professional development

Revision sessions, extra for the department, extra-curriculars, CPD and courses. Hours are optional: log the thing even when nobody counted the minutes.

Loading…

By academic year

Loading…

By category

Loading…

This is the list you will be asked for, whether for a portfolio, your Annual Review of Competence Progression (ARCP), or something similar. Copy it straight out, or download it.

Download
Leave both blank for everything.
Loading…

Your own list rather than a fixed one. Renaming a category renames it on the entries that used it. Removing one leaves those entries readable and simply takes it off the list.

Loading…

Start from a default set

Adds anything missing from a profession's default set. Nothing is removed, because a category you already used is named on those entries.

File storage

Checking…

Portfolio

Everything you would be asked to produce at your Annual Review of Competence Progression (ARCP), in one place: what you did, the files that prove it, and the reflections worth showing. The export at the end turns the lot into one PDF with the certificates merged in as appendices, plus an archive of the originals.

Professional development

Loading…

Evidence files

Loading…

Reflections

Loading…

Export

One PDF for a mentor or a reviewer, with the PDF certificates merged in as real appendix pages, plus a zip holding the originals named to match. Three steps: the period, then which attachments to include, then generate.

1Period → 2Attachments → 3Generate

Leave both dates blank for everything recorded.

Evidence

Files for a mentor, from PGCE placements onward. Each one carries a short note saying why it matters, because that is the part a mentor reads first.

Checking…

Groups the files here, and names the folder in Nextcloud.
Applied to every file in this upload. Each one can be edited afterwards.

Files

Loading…

The folder itself

Lists what is really in Nextcloud, so a file put there directly still shows up here, and a record whose file has gone is visible as such.

Reflect

The overall rating is the only thing that has to be filled in. One tap and it is saved, and every written field is optional.

Loading…
Not a teaching day?

Each day is tinted by the average confidence you logged that day. The corner dot is the worst rating on the day, so a day with a purple lesson on it stays findable.

Every average carries the number of sessions behind it. Where there is not enough logged yet to compare things fairly, the chart is still here and the comparison is not made.

Loading…

Five periods, Monday to Friday. Tap any cell to change the class, make it PPA, or clear it. Tutor Time carries no class so it is not a row here.

Classes

Reflection model

Which set of prompts the form offers. Changing it never alters anything already written: each reflection keeps the model it was written under.

CREST Awards

The science club: sessions, projects by award level, and deadlines. Attendance is a number, never names.

Mentor

Meeting notes, with any action not yet done carried to the top until you tick it. Each meeting also counts in your CPD log.

Budget

The household budget, shared between you both. Change a figure and everything that follows from it updates.

Practicals

Every lesson with a practical or demo planned, soonest first. Tick them off as you book them.

Classes

Each class across the year, a term or a half-term. Tap any lesson, past or future, to plan it.

Hours

Loading…

The day

Only with a start and end time.
Use this for anything that runs past midnight.
Loading…

Over a period

Settings

The budget these hours are measured against. 1265 hours over 195 days is the STPCD figure for a teacher; set the hours to 0 if no budget applies.

Meeting links

Offer a few times, copy the link, and send it to them yourself. This app never sends an email: there is nothing in it that knows an address, and the link is yours to pass on however you already talk to them.

Length

The offer

The name is yours to set, not theirs. It is what the page says and what the booking is recorded against, so there is nothing on the link for anybody to fill in except the time.

No times selected yet. Tap the times you are happy to offer.

Your links

Loading…