1. Create a Supabase Project¶
Time: ~3 minutes
Supabase is a free hosted database that handles real-time syncing between your presenter screen and students' phones. You need one Supabase project for this tool.
Create the project¶
- Go to supabase.com and sign in (or create a free account)
- Click New Project
- Fill in:
- Name: anything you like (e.g.,
classroom-polls) - Database password: save this somewhere, but you won't need it for this tool
- Region: pick the one closest to you
- Name: anything you like (e.g.,
- Click Create new project and wait ~2 minutes for it to provision
Run the database schema¶
The file schema.sql in the project root creates the three tables this tool needs (sessions, questions, votes) and sets up security and real-time syncing.
- In your Supabase dashboard, click SQL Editor in the left sidebar
- Click New query
- Open
schema.sqlfrom the project, copy the entire contents, and paste it in - Click Run (or ++ctrl+enter++)
You should see "Success. No rows returned" — that means it worked.
What the schema creates
| Table | Purpose |
|---|---|
sessions |
A polling session (one per class period), with a unique 6-character join code |
questions |
The questions within a session — multiple choice, word cloud, or open-ended |
votes |
Each student's response (one vote per student per question) |
It also enables Row Level Security (so the anon key is safe to use in client-side code) and Realtime (so votes appear instantly).
Copy your API credentials¶
You'll need two values in the next step.
- Go to Project Settings (gear icon, bottom of left sidebar)
- Click API
-
Copy these two values:
Value Where to find it Looks like Project URL Under "Project URL" https://abcdefg.supabase.coanon public key Under "Project API keys" A long string starting with eyJ...
Use the anon key, not the service_role key
The anon key is safe for client-side code. The service_role key has full admin access and should never be exposed.
Next: 2. Configure Credentials