40 lines
834 B
Markdown
40 lines
834 B
Markdown
# P2P Poll App
|
|
|
|
Small peer-to-peer polling app built with `Vite`, `TypeScript`, `Yjs`, `y-webrtc`, and `y-indexeddb`.
|
|
|
|
## Features
|
|
|
|
- single shared poll per room
|
|
- add options collaboratively
|
|
- one vote per user, changeable at any time
|
|
- peer-to-peer sync over WebRTC
|
|
- local browser persistence for refresh/reconnect recovery
|
|
- shareable room URL
|
|
|
|
## Run locally
|
|
|
|
```bash
|
|
npm install
|
|
npm run dev
|
|
```
|
|
|
|
Open the local URL in two tabs or browsers and use the same `?room=` query string to join the same poll.
|
|
|
|
Example:
|
|
|
|
```text
|
|
http://localhost:5173/?room=poll-demo
|
|
```
|
|
|
|
## Build
|
|
|
|
```bash
|
|
npm run build
|
|
```
|
|
|
|
## Notes
|
|
|
|
- The app uses public signaling through `y-webrtc` for MVP simplicity.
|
|
- Poll state is not stored on an application server.
|
|
- WebRTC connectivity can still depend on the network environment of the participating peers.
|