Anonymous questions, collectively surfaced.
-
Anonymous submissions Participants submit questions freely without any pressure. No names, no judgment.
-
AI-powered clustering Submissions are automatically grouped by meaning so hosts see themes, not clutter.
-
Host responses Hosts write a single response per cluster, answering everyone who asked the same thing at once.
-
Live session management Share a session code, link, or QR code. Track participants and submissions in real time.
-
Participant upvoting Once results are live, participants can upvote questions inside a cluster to surface what matters most.
-
Session summary & PDF export At the end of a session, a full summary of clusters and host responses can be downloaded as a PDF.
-
Optional accounts Sign in to have your submissions remembered across devices. The app is fully usable without an account.
-
Day & night mode Switch between light and dark themes with a customizable background selector.
1. Clone the repo
git clone https://github.com/Marqed4/PopularVote.git
cd PopularVote2. Install dependencies
npm install3. Set up environment variables
Create server/database/.env:
SUPABASE_URL=your_supabase_url
SUPABASE_KEY=your_supabase_anon_key
GEMINI_API_KEY=your_gemini_api_key
Create .env in the project root:
VITE_SUPABASE_URL=your_supabase_url
VITE_SUPABASE_ANON_KEY=your_supabase_anon_key
VITE_API_URL=your_server_url
4. Run the project
npm run devThis starts both the Vite frontend and the Node server concurrently. Open http://localhost:6967 in your browser.
- Frontend : React + Vite
- Backend : Node.js (Express) + Socket.io
- Database : PostgreSQL (via Supabase)
- Authentication : Google Identity Services (Google Auth API 2.0)
- AI : Google Gemini
- Styling : CSS
If you're thinking about contributing to PopularVote, first of all, thank you! Feel free to open an issue or submit a pull request — all feedback is welcomed.
For full contribution guidelines, please see the Contributing Guide.
This repository is licensed under GNU General Public License (GPLv3)
For all licensing, service notices, privacy details, and security policies, see the Legal Overview.






