Part 1 · The case
Dr Farah runs a one-day community health talk at a local mosque hall. Eighty people show up. She wants to answer one honest question at the end of the day: did this talk actually change what people know and feel?
The classic way to answer that is a pre and post survey. Same questions asked twice — once before the talk, once after — and then compare. The problem is never the questions. It's the plumbing: printed forms get lost, WhatsApp replies are chaotic, and typing the data into Excel at 11pm is where most projects quietly die.
What Dr Farah wants is boring: a QR code on a poster, a phone- friendly form, and a dashboard she can open the same night to show her team the "before vs after" numbers. That's what this project builds — and we'll build it two different ways so you can pick.
Part 2 · What you're building
A Community Event Pre/Post Survey. Two short forms with the same questions, one comparison dashboard, and a clear "before vs after" story at the end of the day.
- Pre survey — a short form at the door. Same core questions you'll ask again at the end.
- Post survey — the same questions, plus a couple of "what did you take away?" items.
- Comparison dashboard — one page for the organiser: how many replied, average scores before vs after, top take-aways.
- No accounts for respondents — people at a community event will not sign up. A short link (or QR code) is enough.
Part 3 · Who uses it & how
Part 4 · The survey (pre vs post)
The core rule: ask the same questions before and after. Otherwise "before vs after" is nonsense.
- Shared block (asked twice) — five short "how much do you agree" statements on a 1–5 scale (e.g. "I know the warning signs of diabetes").
- Pre only — one demographic block (age range, whether they've attended a similar talk before).
- Post only — two open questions ("one thing you'll do differently this week", "one topic you still want covered") and a 1–5 satisfaction score.
- An event code — a short string like
KKM-2026-04stamped on every response, so the same tools can host many events over time.
Part 5 · Two ways to build this
Same product, two very different tool choices. Pick the one that matches how much control you want and how much your team already knows.
/pre and /post), one private admin dashboard, one database with two tables. Everything lives inside the app you built. Best when you want a branded, polished experience and full control over the questions.Part 6 · Variant A · The Power Prompt (Lovable Cloud)
A few plain-language notes before the prompt:
- Two public pages —
/preand/post. Anyone with the link can submit. No sign-in. - One private page —
/admin. Sign-in required. Only the organiser account can read totals. Every row in the database is stamped with an event code; the admin filters by it. - Two tables —
pre_responsesandpost_responses. Same shared columns, plus the pre-only or post-only columns. - The rule that keeps it safe — the public forms are allowed to write a new row (with the event code) but never read anyone's rows back. Only the signed-in admin can read.
Goal — Build a community event pre/post survey tool. Two public forms and one private dashboard. The dashboard shows before-vs-after averages per question and total response counts, for one event code at a time.
Roles — Two audiences. Respondents have no account and see only the form for the event they were invited to. Admin signs in and sees the dashboard for the events they own.
Layout — Three routes.
/pre?event=CODEshows the pre-survey form with the event code prefilled and read-only./post?event=CODEshows the post-survey form the same way./adminshows a dropdown of the admin's events, response counts, and a bar chart per shared question (pre average vs post average).Data — Table
events(code, title, owner). Tablepre_responsesandpost_responseseach have: id, event_code, submitted_at, and one column per survey question. Rules: anyone can insert into the two response tables (if the event_code exists); only the event owner can read them. Only the event owner can read or edit theireventsrow.Features — Email/password sign-in for admin (with forgot-password email). Admin creates an event and gets two shareable links (pre and post) that already include the event code. Dashboard filters by event code and shows: total pre responses, total post responses, and a bar chart per shared question. Empty states are polite ("No responses yet — share the pre link.").
Output — A short-link poster the admin can print with a QR code, and a live dashboard for the debrief.
Part 7 · Variant B · The Power Prompt (Google + Lovable)
In this variant, Lovable does not collect any data. It only reads two CSV links (one per Google Sheet tab) and draws the same dashboard. That means: no database, no sign-in for respondents, and the dashboard itself is a very small app.
Goal — Build a read-only dashboard that compares two Google Sheet CSVs — one pre-event survey, one post-event survey — and shows before-vs-after averages per shared question.
Inputs — Two "Publish to web" CSV URLs the admin pastes into a settings screen:
PRE_CSV_URLandPOST_CSV_URL. Also a plain-text list of the shared question column names (the questions asked on both forms). Store all three in a small settings table keyed to the signed-in admin.Layout — Two routes.
/settingsfor the admin to paste the two CSV URLs and the shared question names./dashboardfetches both CSVs, parses them, and shows: total pre rows, total post rows, last-updated time, and a bar chart per shared question (pre average vs post average, 1–5 scale).Auth — Only the admin signs in. Respondents never touch this app — they only interact with the Google Forms.
Behaviour — The dashboard refreshes when the admin opens it and has a "Reload" button. Google publishes CSVs with a short cache delay (a few minutes), so tell the admin the numbers are near-live, not instant.
Part 8 · Wiring the Google Sheet (Variant B)
This is the plumbing that trips most people. Do it once, and the dashboard reads live for the rest of the event.
- 1Create two Google Forms
One for pre, one for post. Same first five questions, in the same order, on both. Add the event code as a short answer question with a default value if the form settings allow it, or just tell people what to type.
- 2Send both forms into one Google Sheet
In each form, open Responses → Link to Sheets. Point them at the same spreadsheet. You'll get two tabs, usually named 'Form Responses 1' and 'Form Responses 2'. Rename them 'Pre' and 'Post' so you don't mix them up later.
- 3Publish each tab to the web as CSV
In the Google Sheet: File → Share → Publish to web. Pick the 'Pre' tab, format 'Comma-separated values (.csv)', click Publish. Copy the URL. Repeat for the 'Post' tab. These are the two links the Lovable dashboard will fetch.
- 4Paste both URLs into /settings
Open the Lovable dashboard at /settings while signed in as the admin, paste PRE_CSV_URL and POST_CSV_URL, save. Open /dashboard — the charts render from the sheet.
- 5Test with a fake submission
Submit one fake pre response and one fake post response through the Google Forms. Wait ~2 minutes (Google caches published sheets), hit 'Reload' on the dashboard. If the count goes up, the wiring is correct.
Part 9 · Sharing the form with respondents
Both variants share the same distribution playbook — a link, printed as a QR code, on the posters at the event.
- Variant A — your two links are the Lovable app's own routes:
https://yourapp/pre?event=KKM-2026-04andhttps://yourapp/post?event=KKM-2026-04. Print each as a QR on its own A4 poster. - Variant B — Google Forms gives you a "Send" button → "link" tab → a shortened
forms.gleURL. Use that for the QR code. Two QRs, two posters. - Turn a link into a QR — any free QR generator works. Paste the link, download the PNG, drop it onto an A4 with the event title and one instruction: "Scan to start."
- Show the right QR at the right time — pre poster at the door before the talk, post poster on the wall after. Same event, two moments.
Part 10 · Which variant should you pick?
Part 11 · Strengths & trade-offs
Variant A · Lovable Cloud
- Full control over the look, the questions, and the URL. Feels like a real product, not a form.
- One event code system across many events over time — reusable.
- Trade-off: you now own a database. Set up the rules carefully and don't collect data you don't need.
Variant B · Google Forms + Sheets
- Fastest path to the first response. Google handles forms, storage, and email confirmations for free.
- Data stays in a spreadsheet the whole team already knows.
- Trade-off: the published CSV is public — anyone with the URL can read it. Never collect identifiers there.
- Trade-off: Google caches published CSVs for a few minutes. Fine for a debrief; not instant real-time.
Part 12 · Sample survey questions
A starter set you can copy for a community health talk. Same five shared questions on a 1–5 agree scale, plus the pre-only and post-only extras.
- Shared (pre & post) — 1 to 5, Strongly disagree → Strongly agree
- Q1. I know the main warning signs of diabetes.
- Q2. I know at least three small daily habits that reduce my risk.
- Q3. I feel confident talking to a doctor about my results.
- Q4. I know where to get a free health screening near me.
- Q5. I feel motivated to change one thing this week.
- Pre-only
- Age range (under 25 / 25–39 / 40–59 / 60+).
- Have you attended a similar talk before? (Yes / No)
- Post-only
- One thing you will do differently this week (short answer).
- One topic you still want covered (short answer).
- Overall, how useful was this talk? (1–5)
Part 13 · Extend it
- Multi-event history — the admin picks any past event from a dropdown and re-opens its dashboard for a report.
- Optional matched pairs — a short private code the respondent makes up, repeated on the post form, so you can look at movement per person without collecting real names.
- Auto-generate the two QR posters — the admin creates the event and downloads two A4 PDFs, ready to print.
- Export to CSV from the admin dashboard (Variant A) — one file per event, opened directly in Excel or Google Sheets.
- A public 'thank you' page after submit with a link to the next event.