Skip to content

Add anonymous post-meetup feedback survey at /feedback/#78

Open
alexwolson wants to merge 20 commits intomainfrom
feature/feedback-survey
Open

Add anonymous post-meetup feedback survey at /feedback/#78
alexwolson wants to merge 20 commits intomainfrom
feature/feedback-survey

Conversation

@alexwolson
Copy link
Collaborator

@alexwolson alexwolson commented Feb 24, 2026

Summary

  • Adds a new page at /feedback/ with a fully anonymous post-meetup feedback form
  • Submissions are written as JSON files to the CivicTechTO/feedback repo via the GitHub Contents API using a scoped PAT
  • Form uses progressive disclosure: core questions are always visible, first-timer and online-attendee sections appear conditionally, equity and open-ended questions live in optional expanders
  • Styled with a custom "The Public Square" civic editorial design — DM Serif Display + DM Sans, warm cream cards, Toronto red accents, pill toggles and numbered rating buttons

What's included

Token injection (_config.yml, .gitignore, Makefile, pages.yml):

  • feedback_token config key injected at build time from FEEDBACK_TOKEN GitHub Actions secret
  • _config.local.yml pattern for local dev (gitignored); Makefile picks it up automatically

Feedback page (_pages/feedback.md):

  • Meetup selector (last 10 hacknights)
  • Attendance mode + first-time questions (pill toggles)
  • Overall rating (1–5 numbered buttons)
  • Conditional first-timer section (felt welcome, understood what was happening, would return)
  • Conditional online-attendee section (A/V quality, felt included)
  • Optional "Tell us more" expander (open text)
  • Optional "About you" expander (gender identity, age range, racialized, disability, belonging, topic relevance)
  • Client-side GitHub API submission with success/error states

CSS (assets/css/custom.css): inline .rating-row base style (page-specific overrides live in the page's own <style> block)

Before merging

  1. Create the CivicTechTO/feedback public repo (with a submissions/ directory placeholder)
  2. Generate a fine-grained PAT scoped to that repo with Contents: Read and write
  3. Add FEEDBACK_TOKEN to this repo's Actions secrets

Test plan

  • Build site locally with _config.local.yml containing feedback_token: <your-pat>
  • Visit /feedback/, select a meetup — submit button should enable
  • Select "In person" / "Online" — online section should slide in/out
  • Select "Yes, first time" / "I've been before" — first-timer section should slide in/out
  • Submit the form — verify a JSON file appears in CivicTechTO/feedback/submissions/
  • Confirm the form hides and success message appears

🤖 Generated with Claude Code

alexwolson and others added 13 commits February 24, 2026 08:13
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Replaces default Pico styling with a custom "The Public Square" design:
- DM Serif Display + DM Sans typography via Google Fonts
- Warm cream/white card layout with Toronto red (#C8102E) accent
- Radio groups converted to pill toggle buttons
- Rating scales converted to square numbered buttons with serif numerals
- Conditional sections use CSS max-height transitions (replaces hidden attr)
- Custom details/summary expanders with +/− toggle
- Intro text moved to front matter excerpt for clean layout rendering

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Removes the dependency on the archives submodule for the feedback form.
Instead of a dropdown limited to meetups in the archives, uses a date
input defaulting to the most recent Tuesday. step=7 with a Tuesday min
restricts the browser calendar to Tuesdays; JS validates on change as a
fallback. Stores hacknight_date (ISO date string) instead of meetup_number
in the submitted JSON.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@alexwolson alexwolson marked this pull request as draft February 24, 2026 14:25
alexwolson and others added 7 commits February 24, 2026 09:28
Removes Google Fonts (DM Serif Display, DM Sans) and all custom --fb-*
colour variables. Replaces them with --pico-primary, --pico-card-background-color,
--pico-muted-*, etc. so the form matches the site's pumpkin theme and
respects dark/light mode automatically. Success/error states keep hardcoded
semantic colours (green/red) as Pico has no equivalent variables for these.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
When a first-timer selects Maybe, asks "What's giving you pause?".
When they select No, asks "What put you off?". Both slide in inline
below the pill buttons. Response stored as would_return_reason in
the new_attendee JSON object.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
All question labels/legends now share the same style: 0.875rem, 600
weight, --pico-color. Removes all-caps and muted-color treatment from
the date picker label and expander body labels, normalises the followup
label size, drops primary colour from the conditional section heading,
and fixes two broken --fb-muted variable references.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Adds a left-bordered notice banner at the top of the form and updates
the page excerpt subtitle to both state that responses are anonymous
but stored in a public GitHub repository.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…labels, centre form

- Swap all seven 1–5 numeric rating scales for 3-option pill buttons with
  descriptive text labels (e.g. Not great / Good / Great), removing the
  need for hint text and making stored responses self-explanatory
- Fix button hover behaviour so rating buttons match pill buttons
- Fix grammatically awkward "Poor" option for AV quality question
- Remove "(optional)" labels from expander headings and privacy note —
  every field on the form is optional
- Centre the form wrapper on wider screens with margin: 0 auto

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@alexwolson
Copy link
Collaborator Author

(Failed to deploy as the branch is not allowed to deploy - build succeeded).

@alexwolson alexwolson marked this pull request as ready for review February 25, 2026 00:38
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant