Repository navigation
Transcriber and Coordinator Workflow
This domain covers how a FreeREG transcriber gets work, submits it, and how coordinators manage that pipeline end to end — from picking up a scanned register image, through transcribing and submitting a CSV batch, to a coordinator reviewing and approving it.
Scoped to FreeREG on master — some resources in this codebase are shared with the FreeCEN skin (UseridDetail, Syndicate, Csvfile) and are documented as such where relevant; a few (ManageParm, the FreeCEN "PARMS" file importer) are FreeCEN-only and deliberately excluded from this domain.
- Assignment-System — a syndicate coordinator hands scanned-image work to a transcriber/reviewer
-
Image-Server-System — the scanned-register image pipeline (
Source → ImageServerGroup → ImageServerImage) that assignments are drawn from - Csvfile-System — how a transcriber uploads/replaces a completed CSV batch
- Syndicate-System — volunteer transcription groups, and the coordinator dashboard built on top of them
- UseridDetail-System — the account/role/permission model underlying everyone in this domain
- Favorite-Actions-System — small per-user UI shortcut feature
- Coordinator-Admin-Tools — the post-login dashboard, county navigation hub, and a couple of smaller utilities (S3 browsing, a CMS page wrapper)
flowchart TD
U["UseridDetail<br/>role: transcriber / syndicate_coordinator /<br/>county_coordinator / ..."] --> S[Syndicate<br/>volunteer group, one syndicate_coordinator]
S --> A[Assignment]
A -->|belongs_to| SRC[Source] --> REG[Register] --> CH[Church] --> PL[Place]
A --> ISI["ImageServerImage<br/>status: u/ar/a/bt/ts/t/br/rs/r/cs/c"]
A --> ISG[ImageServerGroup<br/>batch of images, allocated to a syndicate]
ISI --> CSV[Transcriber produces a CSV batch,<br/>uploads it via Csvfile]
CSV --> PF["PhysicalFile + Freereg1CsvFile<br/>(the permanent batch/processing records)"]
PF --> MC[Coordinator reviews via ManageCounty /<br/>ManageSyndicate dashboards]
"Dispatch on a hidden discriminator param" is a house style across this whole domain, not an isolated quirk of one controller. You'll see it repeatedly:
-
MessagesController#createdispatches on the submit button's literal label (params[:commit]) — see Message-System. -
ImageServerImage#updatedispatches onparams[:image_server_image][:origin]. -
ImageServerGroup#updatedispatches onparams[:type]. -
AssignmentsController#updatedispatches onparams[:_method]. -
ManageCountiesController's ~12 dashboard actions are all reached through the identical routemanage_counties/selection, disambiguated only by custom routing constraint classes matching onparams[:option]/similar — the URL alone doesn't tell you which action runs.
None of these are bugs by themselves, but all of them mean: renaming a button, a param, or a constraint's match string will silently break a flow with no error — just the wrong (or no) action running. Keep that in mind before refactoring any view or route in this domain.
© 2025 FreeUKGen. Licensed under Apache License 2.0