Real-time interactive polling for audiences, classrooms & events.
| Create Poll | Join Poll | Mobile |
|---|---|---|
![]() |
![]() |
![]() |
LivePoll is a Mentimeter-inspired live polling platform that lets hosts create interactive polls and audiences respond in real-time. Watch bar charts animate live as votes come in. Join with a 6-digit room code or QR scan. Zero setup for participants — just open the link.
| Feature | Description |
|---|---|
| 🎯 Live Voting | Real-time results update as participants vote |
| 🔢 Room Codes | Join with a 6-digit code or scan QR |
| 📊 Animated Charts | Smooth bar chart animations on every vote |
| 📱 Mobile-First | Fully responsive — works on any device |
| 🎨 Bold Design | Editorial dark theme with electric lime accent |
| 🔗 URL Join | Share a direct link ?join=123456 |
| 🧭 Multi-Question | Create polls with multiple questions |
| 👥 Live Presence | See participant count in real-time |
| ✅ Answer Highlight | Your choice highlighted in results |
| 🔐 Google Sign-In | Optional login to save polls to your account |
| 📋 My Polls Dashboard | View all your past polls, results & vote data |
- Click "Create a Poll"
- Enter your poll title and add questions with options
- Click "Launch Poll" — get a room code + QR
- Share the code with your audience
- Click "Start Poll" when ready
- Click "Show Results" to reveal votes, "Next →" for the next question
- Go to the live URL or enter the room code
- Wait for the host to start
- Tap your answer — see live results after the host reveals them
livepoll/
├── index.html # Single-page app shell (all screens)
├── css/
│ └── style.css # DM Sans + DM Serif Text, dark editorial theme
├── js/
│ ├── config.js # Firebase configuration
│ ├── sync.js # Firebase real-time wrapper + auth
│ ├── poll.js # Poll CRUD, vote logic & user polls
│ ├── charts.js # Animated bar chart renderer
│ └── app.js # Screen management & event handling
├── tests/
│ └── test_livepoll.py # Playwright E2E test suite (24 tests)
├── .github/
│ └── workflows/
│ └── deploy.yml # GitHub Actions → GitHub Pages
├── CLAUDE.md # AI agent project commands
└── README.md
| Layer | Technology |
|---|---|
| Frontend | HTML5, CSS3, Vanilla JavaScript (ES6+) |
| Auth | Firebase Authentication (Google Sign-In) |
| Real-time | Firebase Realtime Database |
| Typography | DM Serif Text + DM Sans (Google Fonts) |
| QR Codes | QRCode.js (CDN) |
| Testing | Playwright (Python) |
| CI/CD | GitHub Actions |
| Hosting | GitHub Pages |
git clone https://github.com/alfredang/livepoll.git
cd livepoll
# Serve locally
python3 -m http.server 8080
# or: npx serve -l 8080
# Open http://localhost:8080pip install playwright
playwright install chromium
python3 .claude/test-app/scripts/with_server.py \
--server "python3 -m http.server 8080" --port 8080 \
-- python3 tests/test_livepoll.py- Create a project at Firebase Console
- Add a Web App → copy the config into
js/config.js - Enable Realtime Database → Start in test mode
- Enable Authentication → Sign-in method → Enable Google
- Add your domain to Authorized domains (e.g.
yourdomain.github.io) - Deploy and you're live!
Built with OpenClaw — AI-powered personal agent platform.
Inspired by Mentimeter.
MIT



