CCA Winter Patrol App

A

Getting ready — first use, authorization, departure

F01Welcome — invite only
9:41LTE · 92%
CCA MARK

CCA Winter Patrol

Sign in to download this winter's property list. You'll need a connection the first time.

Sign in

Patrol access is invite only. Ask the patrol coordinator.

First use needs a connection and an invited account. No registration, no guest access. Nothing about members or properties appears before authorization.

F02 sign in · F03 offline · F04 no patrol access

F02Sign in — CCA screen, Clerk behind it
9:41LTE · 92%
Back CCA Winter Patrol

Sign in

Use the email the patrol coordinator invited.

Email
d.whitfield@example.ca
PasswordShow
••••••••••
Forgot password

Clerk is backend only. This screen is ours: CCA type, 4px radii, Bay Blue primary, Shield Green focus ring. Built on Clerk's headless sign-in so email, password, code and MFA all post to the provider.

F05 download · F02B code · F04 patrol access missing

F02BSign-in code — same screen family
9:42LTE · 92%
Back CCA Winter Patrol

Enter your code

We sent a six digit code to d.whitfield@example.ca.

4
1
9
7
Continue
Send a new code

Same CCA screen family. Code entry and multi-factor both land here rather than on a provider page.

F05 download · F04 patrol access missing

F03Exception — no connection at first setup
9:41No service · 90%
OFF

No connection

No property data has reached this device yet. Find reception or wifi, then sign in.

Try again
Get help

A never-authorized device holds no member data, so there is nothing to show. Better to say that than offer a retry which cannot work.

F01 retry · F37 help

F04Exception — account without patrol access
9:41LTE · 90%

You're signed in, but not on the patrol list

d.whitfield@example.ca is a member account. Patrol access is granted separately, by the patrol coordinator.

Patrol coordinator Marianne Hollis · 705 555 0148 patrol@cognashene.example.ca
Request patrol access
Sign in as someone else

Signing in and being on the patrol list are two different things. A member account on its own never reaches property data.

F01 sign out

F05Initial property-data download
9:41LTE · 89%

Downloading your patrol data

272 of 400 properties68%
Property list and membersDone
Bubbler flagsDone
Visit history (30 days)Downloading
Map imageryWaiting
Stay on reception until this finishes Roughly two minutes on LTE. You can leave the app open in your pocket.
Continue in background

Split into what is usable offline and what is still coming, so a patroller can judge whether to leave the dock.

F06 ready for patrol

F06Departure readiness — ready for patrol
9:41LTE · 88%
Ready for patrol

400 properties are on this device. You can lose reception from here on.

Property data offlineAvailable — all 400
Last successful refreshToday, 9:38 a.m.
Outstanding uploadsNone
Member data on this deviceEncrypted at rest
Unlock offline withFace ID · passcode fallback
Start patrol

Established (3.1(g)): member data held on the device is encrypted at rest. Stated on the screen because it is a contracted security property. Proposed: this same five-line summary becomes the readiness strip at the top of the Patrol tab, so it is re-checkable mid-patrol.

F09 property map

F07Biometric unlock — reopening offline
7:12No service · 64%
CCA MARK

Good morning, Dana

Offline — 400 properties on device
FACE ID
placeholder

Unlock to browse properties and save reports. No connection needed.

Decision needed: what the fallback is when biometrics fail or aren't enrolled — device passcode, an app PIN, or a forced online sign-in. Drawn here as a placeholder only.

F11 property list · F08 why sign-in differs

F08Unlock vs sign-in explainer
7:12No service · 64%
BackUnlocking and signing in
Face ID unlocks this device

It opens the property data already on this device and lets you save reports. No reception needed.

Signing in uploads your work

Signing in refreshes the property list and sends your reports to the CCA. Until then they wait on this device.

An expired session never stops a patrol You can keep recording visits. Nothing you have saved is discarded.
Back to unlock

Proposed help screen, reachable from unlock and from Settings. Unlock, session, upload and email delivery stay four separate ideas.

F07 unlock

B

Find the property — map, list, detail

F09Property map — offline
10:24No service · 81%
Offline · 2 reports waiting · refreshed 9:38 a.m.
Illustrative geography — not navigation
Island 145
Island 187
BIsland 212
Island 233
BIsland 196
Visited ≤30 d
Due
BBubbler
SCAN

Coverage is pin colour. A bubbler pin is larger, carries a "B" and outranks coverage colour, so hazards read whatever the visit state. Sync sits in a strip above the map, not on it.

F10 search · F11 list · F13 tap pin · F16 scan

F10Map — search open
10:25No service · 81%
2
Cancel
Due only Bubblers Nearby
Island 212 · S. DuhamelLonguissa Bay · due · bubbler flagged
Island 204 · M. & J. ThorneWhalen Island · visited Jan 12 · bubbler flagged
Searching 400 downloaded properties. Names and IDs only. No connection required.
Map dimmed behind results

Proposed: results replace the map instead of floating over it. The three chips cover the questions patrollers actually ask.

F13 property detail · F09 cancel

F11Property list
10:26No service · 80%
Offline · 2 reports waiting
Due — not visited in 30 days · 128
Island 212 · S. DuhamelLast visit Nov 22 · Longuissa BayBubbler
Island 187 · R. CallowayLast visit Nov 28 · Bushy Bay
Mainland 07 · G. FontaineLast visit Nov 19 · Fournier ChannelNot on map — no coordinates
Visited in last 30 days · 272
Island 145 · P. & A. RidoutVisited Jan 9 · Deer Island

Grouped by coverage, so "what is left" is the default reading. Mainland 07 has no coordinates and is reachable only here. The row says so.

F12 search · F13 detail · F15 no coordinates

F12List search — partial ID
10:27No service · 80%
0
Cancel
Mainland 07 · G. FontaineDue · last visit Nov 19Not on map
Island 108 · L. MarchettiVisited Jan 15
Island 204 · M. & J. ThorneVisited Jan 12 · bubbler flagged
3 matches · searched offline
Native keyboard

One field searches member name and property ID. Partial entries accepted, so there is little to type.

F15 Mainland 07 detail

F13Property detail — bottom sheet
10:28No service · 79%
B
Island 212Due · 58 days
S. Duhamel Longuissa Bay · last visit Nov 22
BBubbler
Call member
Create report

The sheet keeps the map visible for orientation. Bubbler is stated in words as well as colour. Create report is the one big action.

F14 expand · F23 create report

F14Property detail — expanded
10:28No service · 79%
CloseIsland 212
S. Duhamel Island 212 · Longuissa Bay
BBubbler
Mobile(705) 555-0207
Emails.duhamel@example.ca
Winter contact noteCall before 8 p.m. Key box on the boathouse.
Recent visits
Nov 22 · D. Whitfield2 photos
Mar 9 · A. Reyes1 photo
Call member
Create report

Proposed: recent visits shown read-only, for context. The bubbler flag belongs to the office. Patrollers cannot edit it here.

F23 create report · F13 collapse

F15Property with no coordinates
10:31No service · 79%
BackMainland 07
G. Fontaine Mainland 07 · Fournier Channel · due, last visit Nov 19
No coordinates on recordNot on the map. Find it in the list, or scan the label.
Mobile(705) 555-0131
BubblerNone on record
Directions noteSecond bay past the narrows, north-facing dock.
Decision needed Whether patrollers may drop a location pin for properties like this, and who approves it.
Call member
Create report

Established: a property without coordinates stays usable. Searchable, scannable, reportable.

F23 create report · F11 back to list

C

Scan and record — barcode, report, media

F16Scanner — aiming
10:40No service · 76%
CloseScan property label
Native camera preview

Hold the frame over the Code 128B label on the dock post or hydro box.

Offline. Scanning uses data on this device

Existing Code 128B labels are scanned as they are. Manual lookup stays one tap away, because gloves and cold make a scan fail often. The row of small links is a prototype control.

F17 matched · F22 manual lookup

F17Barcode matched
10:41No service · 76%
Label in frame · locked · read 4821
Barcode matched
Island 212 S. Duhamel Longuissa Bay · due, last visit Nov 22
BBubbler on record
Create report

"Barcode matched" appears only here, and on reports that began with a scan. Identity is drawn large enough to confirm before recording.

F23 report form · F16 rescan

F18Exception — unreadable label
10:42No service · 75%
Camera preview · label obscured
Can't read that label

Snow, ice or a faded label will do this. Wipe it if you can. Otherwise look the property up.

Tips Hold 20–30 cm back · keep the whole bar inside the frame · turn the torch on in bright snow glare.
Try again Look up property instead

No property is named until one is read. The way out is as prominent as the retry.

F16 retry · F22 manual lookup

F19Exception — unknown barcode
10:44No service · 75%
Read: 8177
Barcode read, no match
That label isn't in the patrol list

It scanned cleanly as 8177. No property on this device carries that code. It may be a retired label, or belong to another association.

Decision needed Whether an unknown code can be reported to the office as a label problem, and whether a visit can be recorded against it.
Find property by name Scan a different label

Different from F18: the read succeeded, the lookup failed. Showing the raw code lets the office trace it later.

F22 lookup · F16 rescan

F20Exception — record unavailable offline
10:46No service · 74%
Read: 8302
ID 8302 · details not downloaded
This property was added after your last refresh

We can't show the member or contact details until you're back on reception. You can still record the visit against ID 8302.

Record visit anyway

The report will be attached to ID 8302 and matched to the member when it uploads.

Cancel

Proposed: a record missing from this device shouldn't waste a trip. The visit is recorded against the scanned ID and matched at the office.

F23 report form · F16 cancel

F21Exception — camera permission denied
10:47No service · 74%
CloseScan property label
CAM

Camera access is off

Scanning labels and taking patrol photos both need the camera. Turn it on in Settings → Winter Patrol → Camera.

You can still patrol Look properties up by name or ID and save a written report without photos.
Open iOS Settings
Look up property instead

Android: the same screen offers "Open app info", and a second denial there is permanent until changed in system settings.

The written-report path stays open. Android differs only in the deep-link label and the permanent-denial rule.

F22 manual lookup

F39Exception — member not patrol-eligible
10:48No service · 73%
Camera preview · label read Read: 6093
Not on the patrol list

That label isn't patrol-eligible this season

It scans to a CCA member record. The patrol list covers Full and Honorary members with a payment recorded this year, and this record isn't on it. No member or contact details are held on this device.

Decision needed What a patroller does here: record the visit anyway, flag it to the office, or stop. No clause reaches it. A lapsed payment is not the same thing as a retired label.

Established (3.2(a)): the API exposes only Full or Honorary members with a current-year payment, so a label can scan cleanly and still sit outside the patrol list. Different from F19: there the record was missing. Here it exists, and eligibility is what fails.

F22 manual lookup · F16 rescan

F22Manual property lookup
10:49No service · 73%
BackFind property
2
Nearby firstA–Z
Island 212 · S. DuhamelLonguissa Bay · due · bubbler
Island 196 · T. & B. LindqvistLindqvist Narrows · due · bubbler
A report created this way is marked entered manually, not "barcode matched".
Native number pad

Where the entry came from is recorded. Scan and manual lookup are carried onto the report and never merged.

F23 report form

F23Patrol report — empty
10:50No service · 73%
CancelPatrol report
Island 212Barcode matched
S. Duhamel · Longuissa Bay
BBubbler on record — set by the office, not editable here
What did you find?
All secure, nothing to report…
Photos and video Add photo or video Add as many as you need. Limits on count and length are still undecided.
Save report
Add a comment or a photo to save.

The property header is pinned for the whole form. The master bubbler flag is read-only. "Barcode matched" is shown because the entry came from F17.

F24 typing · F25 capture

F24Report — comment entry
10:52No service · 72%
Island 212 · S. Duhamel
Shed door latch has come loose in the wind. Ice ridge across the north dock. Bubbler running.
All secure Tree down Ice damage Door or window open
Proposed: tap a phrase to insert it, so there is less typing with wet gloves. Free text is still the record.
Native keyboard · dictation availableDone — add media

Quick phrases and dictation are both proposals, and both exist to cut typing. Neither replaces the written comment.

F25 capture media

F25Capture — native camera
10:54No service · 72%
CancelIsland 212 · Duhamel
Native camera placeholder
PhotoVideo
Last
Flip

Decision needed: video length cap, resolution and total attachment size per report. All three affect upload over marina LTE. Not invented here.

F26 review capture

F26Review capture — keep or retake
10:55No service · 71%
Captured photo placeholder
Photo 3 · 10:55 a.m. · saved on device Take another

Retake, use, or keep shooting, then return to the report. Captures are written to the device straight away.

F27 back to report · F25 retake

F27Report — with attachments
10:56No service · 71%
CancelPatrol report
Island 212Barcode matched
S. Duhamel · Longuissa Bay
What did you find?
Shed door latch has come loose in the wind. Ice ridge across the north dock. Bubbler running.
Attachments · 3 Add another Tap a thumbnail to review · × removes it from this report
Save report Saves to this device. It uploads when you have reception.

No attachment cap is stated or implied. Local save and upload are described as two separate events.

F28 saved · F25 add media

F28Saved on this device
10:57No service · 70%

Report saved on this device

Island 212 · S. Duhamel · 10:57 a.m. · comment and 3 attachments.

Saved locally — confirmed
Waiting to upload — 3 reports queued
Emailed to the member — after upload

Shown only after the write to the device succeeds. The three lines keep local save, upload and member email separate.

F09 next property · F29 saved reports

D

Know it is saved — reports, sync, recovery, settings

F29Saved reports — all states
11:10No service · 68%
Island 212 · S. DuhamelToday 10:57 · 3 attachments Saved locally Island 187 · R. CallowayToday 9:52 · 1 of 2 attachments sent Retry needed
Island 233 · K. OseiToday 9:31 · 2 attachments Uploading 40%
Mainland 07 · G. FontaineToday 8:47 · no comment yet Draft
Island 145 · P. & A. RidoutJan 9 · 2 attachments Uploaded

Five states, each with a word as well as a colour: draft, saved locally, uploading, uploaded, retry needed. Reports and sync live in one tab.

F30 saved detail · F31 retry needed · F33 sync

F30Report detail — saved locally
11:12No service · 68%
SavedReport
Island 212 · S. Duhamel Longuissa Bay · recorded today 10:57 a.m. by D. Whitfield Barcode matched
Saved on this device · waiting for reception
Comment

Shed door latch has come loose in the wind. Ice ridge across the north dock. Bubbler running.

Attachments · 3
Photo 1
Photo 2
Video 0:14
Check sync status
Edit report

"Barcode matched" persists on the record because this entry came from a scan. A manually entered report reads "entered manually" here instead.

F33 sync

F31Exception — retry needed, one attachment
13:31LTE · 55%
SavedReport
Island 187 · R. Calloway Bushy Bay · recorded today 9:52 a.m.
One attachment didn't upload
The report and its comment reached the CCA. The video stopped at 62% when reception dropped. Nothing has been lost.
Comment · sent

Large limb down across the path to the boathouse. No damage to the building.

Attachments · 2
SentPhoto 1
FailedVideo 0:22
Tap the failed attachment to check it before retrying.

The failure is scoped to the one file. The report is never described as lost, and the sent parts are marked sent.

F32 inspect · F35 retry

F32Failed attachment — inspect
13:32LTE · 55%
BackVideo 0:22
Video preview placeholder · plays from device
Upload stopped at 62%
Reception dropped mid-transfer. The file is intact on this device and plays fine. It just hasn't reached the CCA yet.
RecordedToday 9:50 a.m.
Size34 MB
Attempts2 · last 13:12
Retry upload now
Remove from report
Removing asks for confirmation and keeps the file in your camera roll.

Proposed: a look at the file before retrying, with its attempt history. Nothing is deleted quietly. Removal is explicit and confirmed.

F35 retry · F31 back

F33Sync — pending, offline
13:05No service · 58%
SavedSync
No connection
Uploads will resume on their own as soon as you have reception. You don't have to be in the app.
Last successful syncToday 9:38 a.m.
Reports waiting3
Attachments waiting7 · 112 MB
In the queue
Island 212 · Duhamel3 files
Island 233 · Osei2 files
Island 187 · Calloway1 file · retry
Reception returns → Prototype control. In the app this happens by itself.

Connection, queue and delivery are stated separately. Nothing here implies the member has been emailed.

F34 reconnected, sign-in required

F34Sync — sign in to upload
13:30LTE · 56%
SavedSync
Sign in to upload
Your reports are saved on this device.

You're back on reception, but your session has expired. Signing in sends the 3 reports waiting in the queue. Nothing is deleted while you wait.

ConnectionLTE — good
Saved on device3 reports · 7 files
SessionExpired

Established copy, used verbatim. The second action proves the point: an expired session never blocks the patrol, and the queue survives.

F35 uploading · F09 keep patrolling

F35Sync — uploading
13:33LTE · 54%
SavedSync
Uploading — 2 of 3 reports sent
83 MB of 112 MB · keep the app open on weak signal
Island 212 · DuhamelSent
Island 233 · OseiSent
Island 187 · Calloway62%
Video 0:22 — resuming from where it stopped
Members are emailed their report after it reaches the CCA. Not from this device.
Upload finishes →

Progress is per report, and the retried attachment resumes instead of restarting. Member email is named as a later step, done at the office.

F36 complete

F36Sync complete
13:38LTE · 53%
SavedSync
Everything is uploaded
3 reports and 7 attachments reached the CCA. Nothing is waiting on this device.
Last successful syncToday 13:38
Property data refreshedToday 13:38 · 400 properties
Member emailsSent by the CCA office
Proposed, not built Whether patrollers see confirmation that a member's email was delivered depends on the admin dispatch tool, which is a separate planned piece.
Back to patrol

Completion is stated as what reached the CCA. Member email is credited to the office, not claimed by the app.

F09 property map

F37Settings and help
13:45LTE · 52%
More
Signed in as Dana Whitfield · patroller d.whitfield@example.ca · session valid to Jan 24
Departure checklist
Property data downloaded — 400
Nothing waiting to upload
Face ID unlock enabled
Battery above 80% · currently 52%
How offline patrol works
Contact support705 555 0148
Device securityEncrypted at rest
App version0.4.2 (iOS) · 0.4.1 fallback
Sign out
Patrol Scan Saved
···More

Established (3.1(g)): on-device member data is encrypted at rest. Established (5.2): the previous known-good build stays installed as a fallback between seasons. Proposed: the departure checklist lives here permanently, so it can be re-run before every trip rather than only at first setup.

F38 sign out · F08 offline help

F38Sign out with unsynced reports
13:46LTE · 52%
More
You have 3 reports still on this device

They haven't reached the CCA yet. Sign in again later and they'll upload on their own.

Island 212 · Island 233 · Island 187 7 attachments · 112 MB waiting
Decision needed What sign-out does with a queue: keep it on the device for the same patroller, block sign-out until uploaded, or something between. Silent deletion is never an option.
Upload first Cancel

Drawn without a "Sign out anyway" button until the recovery policy is decided. The frame asks the question instead of answering it.

F34 upload first · F37 cancel

Open decisions and Android notes

Unresolved policy — not invented here
Biometric fallback — device passcode, app PIN, or forced online sign-in when Face ID fails or isn't enrolled. F07 Maximum offline authorization period — how long a device stays trusted, and what happens the day it lapses mid-patrol. F06 F08 Media limits — video length, resolution, attachments per report. F25 Unknown barcodes — can a patroller report a bad label, or record a visit against an unmatched code? F19 Ineligible records — what a patroller does when a label scans to a member outside Full or Honorary with a current-year payment (3.2(a)). F39 Sign-out with a queue — keep, block, or transfer. Never silent deletion. F38 Coordinates — may patrollers drop a pin for properties without one? F15
Android differences
Unlock — "Unlock with fingerprint" and the system biometric sheet. The app draws the prompt content, not the dialog. F07 Navigation — the same bottom bar, but with Material sizing and ripple. Back is a system gesture, so the in-screen Back label is dropped on detail screens. F14 Permissions — "Open app info" instead of iOS Settings, and a second denial is permanent until changed in system settings. F21 Sheets and dialogs — Material bottom sheets with a 28dp top radius. Confirmation uses a Material dialog. F13 F38 Uploads — background transfer runs as a foreground service with a persistent notification, so progress is visible outside the app. F35 Targets — 48dp Material floor kept; primary field actions stay at the 64dp preferred size.