Screening tests can find some cancers early, before symptoms, when they are easier to treat. The American Cancer Society (ACS) publishes clear guidelines on who should be screened and when. But the adults those guidelines are written for often put off checkups, while teens, who learn about health at school and often look things up for their families, have no easy way to turn what they know into action at home.

ScreenTalk is a free, private web app that makes teens their family's prevention advocates. A teen adds family members by nickname and age (no names or accounts). ScreenTalk maps each person to the ACS guidelines for breast, colorectal, cervical, lung, and prostate screening, endometrial awareness, and the HPV vaccine, labeling each as "Talk now," "Discuss," or "Coming up in X years," with a link to the exact ACS page. ScreenTalk writes an editable conversation starter, then lets the teen rehearse the talk with a parent who pushes back ("I feel fine," "too expensive," "scared of a colonoscopy"), with coaching tips cited to ACS, NCI, and CDC and a score at the end. Checkup questions, a tracker, a reminder, a Myth or Fact game, and free resources close the loop. The whole app works in English and Spanish, including the printed checkup sheet.

ScreenTalk is education, not diagnosis: it never calculates risk or says anyone "needs" a test. It runs entirely in the browser with no server or tracking. Each topic also shows the U.S. Preventive Services Task Force view, flagged where it differs, and when insurance covers it at no cost. 79 unit tests and 183 browser tests check guideline boundaries and real user flows in both languages. Our goal: more families having the screening conversation, sooner.

Inspiration

Cancer screening only works if people actually go. In a lot of families, health is not something people talk about at dinner, and parents put their own checkups last. I realized teens are in a strange position: we learn this in health class and we're the ones who Google things for our parents, but nobody gives us a way to act on it. I wanted to build the tool that turns "I read that…" into "Mom, can we find you an appointment?"

What it does

  • Family screening plan: Add people by nickname, age, and body (breast tissue / cervix / uterus / prostate, or Female/Male presets), smoking status, and optional family history. Each person gets a sorted list of ACS guideline topics with status badges and a source link.
  • USPSTF cross-check: every screening topic also shows what the U.S. Preventive Services Task Force says (the guideline many doctors and insurance plans follow), with a "Same as ACS" or "Differs from ACS" chip and a link. Example: for Mom at 46, ACS says a mammogram every year and USPSTF says every 2 years from 40 to 74; for a former smoker, an optional "years since quitting" field shows whether the USPSTF 15-year rule and the no-copay line still apply (ACS has no such cutoff).
  • What it costs: where it applies (breast 40+, colorectal 45 to 75, cervical 21 to 65, lung 50 to 80 with 20+ pack-years), a line saying most health plans must cover the screening with no copay or deductible from an in-network provider, citing HealthCare.gov (CuidadoDeSalud.gov in Spanish), and that $0 isn't guaranteed.
  • Start the talk from a card: a "Start the talk with Mom" button on each person jumps straight to a written conversation starter for that person, so the next step is one tap away on a phone.
  • Pack-year helper: packs/day × years, the measure ACS uses for lung screening (50–80, 20+ pack-years, smokes now or used to).
  • Questions for the checkup: a short, printable list per person.
  • Follow-through: a progress tracker (Not talked yet → We talked → Checkup booked → Up to date) and a one-tap 2-week calendar reminder made on the device.
  • Family timeline: SVG chart of everyone's screening windows. Solid = ACS recommends it, lighter = a choice to discuss, ▼ = age today. Screen-reader text included.
  • Conversation starters: casual, heartfelt, or text-message versions naming the exact topics. Editable, with copy/share and tips. A "Write it in" switch writes the message and the printed checkup sheet in English or Spanish whatever language the app is in, so a teen using English can hand a Spanish-reading parent a Spanish sheet.
  • The whole app in Spanish: one switch (or a ?lang=es link) turns the plan, guideline text, timeline, conversation starters, printed checkup sheet, game, habits, help, and sources into neutral Latin American Spanish. Medical terms follow the CDC and NCI Spanish pages, each topic links a CDC Spanish page, and the app says a native-speaker review is pending.
  • Rehearse the talk (English and Spanish): practice with Mom, Dad, Grandma, or Grandpa, who push back five times: "I feel fine," "no family history," "scared of a colonoscopy," "too expensive," "no time." Pick one of three replies; the parent reacts with a scripted line, an openness meter moves, and the next pushback opens warmer or more guarded. Every reply gets a coaching tip citing the ACS, NCI, or CDC page behind it (for example: CDC says polyps and colorectal cancer don't always cause symptoms; NCI says only about 5 to 10% of cancers are inherited; ACS says the most important thing is to get screened, whichever test you choose, including stool tests at home; ACS says the Affordable Care Act requires recommended colorectal screening with no co-pay or deductible). Ends with a score out of 10, the parent's final answer, and a better line to try for each round. Keyboard-friendly (Tab/Enter or keys 1 to 3) and works on phones.
  • Myth or Fact: 12 cards from NCI's Common Cancer Myths page and ACS guidance, each with an explanation and source.
  • Habits checklist: ACS's "Take control of your health" steps for teens to commit to.
  • Get help: ACS 24/7 helpline (1-800-227-2345), NCI Cancer Information Service (1-800-4-CANCER), how to get screened without a doctor, NBCCEDP, Vaccines for Children, quit-tobacco help.
  • Print / save as PDF to bring to a checkup.

How we built it

Plain HTML, CSS, and JavaScript with no framework, build step, dependencies, or paid APIs, so it runs anywhere and hosts free on GitHub Pages. The core is rules.js, a pure function that takes a profile and returns guideline topics, timeline segments, and notes. The rehearsal is rehearse.js: the bilingual script, its sources, and a pure engine for branching and scoring. Both run in the browser and in Node, so they're covered by 79 zero-dependency unit tests (every age and pack-year boundary, every age from 0 to 120, saved-data cleaning, calendar files, a scan of all output for diagnostic or risk-score language, checks that every rehearsal tip cites ACS, NCI, or CDC in both languages, and checks that English and Spanish have the same keys, the same medical logic at every age, and CDC/NCI Spanish terms). A Playwright script runs 183 browser checks of real user flows on desktop and phone sizes, including the whole app in Spanish, the printed sheet in Spanish, and WCAG AA text contrast in both languages. Data lives only in localStorage, and a Content-Security-Policy blocks all network requests. Every rule and tip was written from, and re-checked against, the live ACS, NCI, and CDC pages (October 10, 2026), and every screening topic was compared with the current USPSTF recommendations and HealthCare.gov's no-copay list (October 11, 2026); docs/quality-log.md in the repo records eight review rounds and what each fixed.

Challenges we ran into

  • Being accurate without giving medical advice. We rewrote every message as "ACS recommends… talk with a provider," never "you need," and added tests to enforce it.
  • Inclusive but faithful. ACS words some guidelines as "women" or "men"; we let users choose by anatomy so the plan fits everyone, while keeping ACS's wording in the guideline text.
  • Making a heavy topic approachable for teens without making it a joke: conversation tones, the timeline, the game, and a rehearsal where scaring your parent ("you could have cancer right now") visibly backfires.
  • Translating carefully. The Spanish rehearsal avoids gendered words where the parent could be Mom or Dad, and marks sources that are only in English. Translating the medical text meant matching the CDC and NCI Spanish terms (Papanicoláu, paquetes-año, prueba inmunoquímica fecal) and noticing where Spanish and English sources disagree: NCI's Spanish myths page says 38% of people get cancer in their lifetime and the English page says 39%, so the Spanish card says "about 4 in 10".
  • Two guidelines, one honest answer. ACS and the USPSTF disagree in places (mammograms every year vs. every 2 years in the 40s and early 50s; the USPSTF stops lung screening 15 years after quitting; PSA talks start at 55 for the USPSTF). Instead of picking one silently, each card shows both and flags the difference, so a teen isn't caught off guard when the doctor says something else.
  • The details matter. Re-reading the ACS pages turned up rules we first missed: the prostate talk starts at 40 for men with more than one close relative diagnosed early, cervical screening continues after a partial hysterectomy, and quit help is for people who still smoke. Each one became a test.

Accomplishments that we're proud of

  • Every single fact in the app links to ACS, NCI, or CDC.
  • Zero data leaves the device.
  • A tested rules engine that matches the current ACS guidelines at every boundary (79 unit tests + 183 browser checks), cross-checked against the USPSTF.
  • It goes past information to action: a rehearsal for the hard conversation, questions for the checkup, a progress tracker, and a reminder.
  • Accessible: keyboard-friendly, screen-reader text for the chart, WCAG AA contrast, works on a 360 px phone.

What we learned

  • How the ACS screening guidelines actually work (for example, colorectal screening now starts at 45 for average risk, and cervical screening is still needed after the HPV vaccine).
  • How to write health content that informs without diagnosing.
  • How to build and test a JavaScript app without any framework.

What's next for ScreenTalk

  • A native-speaker review of the Spanish (the whole app is translated; terms follow the CDC and NCI Spanish pages), then more languages.
  • Review by a health educator or clinician.
  • Measuring impact: how many families report a conversation or a booked checkup after a ScreenTalk night.
  • Running "ScreenTalk nights" with school health classes, libraries, and youth groups.

Built with

html5, css3, javascript, svg, localstorage, node.js (tests), playwright (tests), github-pages

Sources

Built With

Share this project:

Updates

Submission history