Mentimeter-like live polling for teaching. Teachers create multiple-choice polls, run live sessions, and show real-time results on a projector. Students join anonymously with a short code and vote once per question.
- Backend: Laravel (PHP 8.x)
- Frontend: React (Vite)
- Realtime: WebSockets (Laravel Reverb/Pusher/Socket.IO-compatible)
- Auth: OAuth via Basen (teachers only)
docs/requirements.md- MVP scope and constraintsdocs/datamodel.md- Core entities and relationsdocs/api.md- REST endpoints (MVP)docs/ws-events.md- WebSocket channels and events
- Copy
.env.exampleto.envand fill in values. - Install backend deps:
composer install
- Install frontend deps:
npm install
- Run migrations:
php artisan migrate
- Start dev servers:
php artisan servenpm run dev
- Students are fully anonymous (no accounts, no PII).
- Sessions are per live run; no cross-session analytics in MVP.
- Exports are aggregated CSV per session only.
- Realtime uses Laravel broadcasting; set
BROADCAST_CONNECTIONand Pusher/Reverb env values. - OAuth uses Basen; configure
BASEN_*env vars in production.