# Co-op Check-in A tokenized, mobile-friendly web form that lets external co-op contacts update their organization's tracking data on CiviCRM, plus a read-only activity report showing every value the co-op has shared over time. Built to wrap CiviCRM's existing custom-field schema without modifying it. ## How it works Each co-op has a designated **Primary Contact** (the individual) linked to the **Organization** record in CiviCRM. Staff send that contact a personalized link generated against the contact's CiviCRM checksum: - `https://check-in.fci.coop/?cid=&cs=` — the form - `https://check-in.fci.coop/report?cid=&cs=` — the report When the link is opened, the app verifies the checksum against CiviCRM, resolves the organization through the Primary Contact relationship, and loads the right view. **Form.** Sections are organized by the co-op development stages (Inquiry → Convene & Prepare → Grow & Plan → Connect & Gather → Excite & Build → Fulfill & Stabilize). The org's current stage controls which sections are editable; past and current stages are open for editing, future stages render as previews with their fields locked so the co-op can see the framework ahead. Fields prefill with each value's most recent non-empty entry from past check-ins. On submit, a new "Check-in (organizing)" activity is created; nothing is overwritten. **Stage authority.** The current stage is derived from the most recent "Check-in (organizing)" activity whose Stage field is set. Staff own stage transitions by manually setting Stage on a check-in activity they create; the form itself never writes Stage, so org self-submissions can't override a staff transition. Orgs with no stage-bearing activity default to "Inquiry." **Report.** A read-only view of every field that has ever held a value, grouped by stage. Each row shows the most recent value prominently; an "N earlier entries" disclosure expands a chronological list of prior values with their dates. Empty stages and untouched fields are hidden so the page stays calm. ## Visual & UX details - **Field Almanac** aesthetic: warm cream paper, deep botanical green ink, a sparing terracotta accent. Fraunces (display) and DM Sans (body) at variable weights. Subtle paper-grain texture via layered CSS gradients. - **Journey rail** runs down the left side on desktop, with a marker per stage and a "Now" pill at the current stage. Past stages are filled with a checkmark, future stages are dashed and locked. A small inter-card stem stands in for the rail on mobile. - **Draft auto-save** to `localStorage` (30-day TTL) so partial answers survive page refreshes; a "Draft restored" banner appears on return. - **Successful submit** lands on a destination screen instead of a reloaded form, preventing accidental duplicate submits from back-button or autofill replay. - **Currency live preview**, date min/max bounds (1900–2100), and thousands-separator formatting on numeric fields. - **Hand-drawn stage icons** for each of the six stages; FCI brand logo in the header. ## Accessibility - Real `