AWS Hackathon · 2026

FRUSTRATION DETECTOR

Notices when someone is stuck on the web — and emails the person who can help, with a screenshot.

A Chrome extension and AWS backend that detects when someone is struggling while browsing — repeated reloads, error pages, frantic back-navigation, stuck forms, scam sites — and sends a plain-English alert with a screenshot to someone who can help. Built for the scenario where a grandparent is stuck on a government website alone, and their grandchild gets an email: "They visited the login page 4 times, hit an error, and gave up on a form — view screenshot."

Timeline2026
RoleFull-Stack + Cloud
TeamHackathon — AWS
PlatformChrome MV3 + AWS

The Challenge

Less tech-savvy users — often older relatives — get stuck on the web constantly: a confusing government portal, a login that keeps erroring, a form that won't submit, or a scam page designed to mislead them. They rarely ask for help in the moment, and by the time family hears about it, the context is gone. The challenge was to notice struggle as it happens and route it to someone who can step in.

The Solution

A Chrome extension watches for struggle signals locally and, once they cross a threshold, captures a screenshot and ships the event to an event-driven AWS backend. Lambda scores and stores events, a scheduled re-scan summarizes what happened in plain English, and when the total crosses a second threshold it emails a designated helper a clear summary plus a link to the screenshot.

01

On-Device Struggle Detection

A content script watches DOM signals — clicks, scroll, form abandonment, idle time, cursor thrash, scam phrases — while a background script tracks navigation signals like repeated reloads, back-navigation, HTTP errors, and known scam domains. When the local score crosses a threshold, it captures a tab screenshot and posts the event.

  • DOM + navigation signal scoring
  • Scam-phrase and scam-domain detection
  • Screenshot capture at score ≥ 10
02

Event-Driven AWS Backend

API Gateway routes events to a Lambda that validates and writes them to DynamoDB (30-day TTL) and uploads screenshots to S3 — both a raw image and a self-contained HTML viewer. A second Lambda runs every 15 minutes via EventBridge to re-score events per URL and build a plain-English summary.

  • API Gateway → Lambda → DynamoDB + S3
  • TTLs auto-expire events
  • EventBridge scheduled re-scoring
03

Caregiver Alerts

When the aggregated score crosses the alert threshold, the backend generates a 7-day presigned URL to the screenshot viewer and publishes to an SNS topic — emailing a helper which site the person was on, what happened, and a click-to-open full-size screenshot.

  • Presigned S3 links
  • SNS email with plain-English summary
  • UUIDs, field masking, TTLs

Extension

Chrome MV3 · JavaScript · content.js + background.js

Compute

Python Lambda · API Gateway (HTTP API) · EventBridge

Storage & Alerts

DynamoDB · S3 · SNS

Infrastructure

AWS CDK · Presigned URLs · TTL-based retention

2 Scoring layers — local + server
15m EventBridge re-scan cadence
6 AWS services wired together
30d Event TTL · screenshots 24h
01

Two-Stage Scoring

Scoring locally for an instant signal, then re-scoring server-side to aggregate across a session, balanced responsiveness against false alarms — a single threshold in either place alone was too noisy.

02

Event-Driven by Default

Letting API Gateway, EventBridge, and SNS glue stateless Lambdas together kept the system simple and cheap — no servers to run, and each piece scales and fails independently.

03

Privacy-Aware Engineering

UUIDs instead of names, field masking, presigned URLs, and short TTLs meant sensitive browsing context was handled carefully end to end — essential when monitoring someone's screen for their benefit.

04

Infrastructure as Code

Defining the whole backend in AWS CDK made the multi-service stack reproducible and deployable in one command — critical for iterating fast during a hackathon.

Next project Nudge