Skip to content
← Back

Privacy policy

My Vote — com.mccwho.myvote

Last updated: May 9, 2026
Contact email: giulz.mcc@gmail.com

Summary

My Vote is an HTML5/PWA webapp: it runs in the browser and does not collect, transmit or share any personal data to servers operated by MCC. Multi-device mode uses WebRTC peer-to-peer between participants' browsers: votes, session names and voting options stay on the connected devices and never transit through our servers. Initial pairing (signaling) uses the public PeerJS service, which only sees ephemeral Peer IDs — never session contents. The webapp does not display ads, does not use analytics services, and does not integrate third-party SDKs.

Data stored locally on your device

The app stores in the local database (Room SQLite) and local preferences (DataStore):

  • Names and/or labels of voting sessions you create as host
  • Voting options entered (e.g. "Yes / No", "Pizza / Sushi / Burger")
  • Votes recorded during the session (in memory, while the session stays open)
  • Local history of recent sessions (in `localStorage`)
  • Reusable setup templates
  • Client-side recent sessions (peerId, alias, color — max 5)
  • Your preferences (theme, palette, range, custom STUN/TURN)
  • Offline cache managed by the service worker (static webapp assets)

All this data stays in the app's private storage on your device. Uninstalling the app deletes it.

Multi-device mode (local LAN)

The app supports a host/client mode that works exclusively on the local Wi-Fi network you are connected to. The host phone opens a small WebSocket server (Ktor) accessible only via the local IP; clients connect via QR or IP+PIN. Data flows only between devices on the same local Wi-Fi network and never passes through third-party servers. When the session ends, all connections are terminated. The app does not use the Internet for inter-device communication: the connection is strictly peer-to-peer.

Permissions requested and why

Permission Why
Camera (getUserMedia) Scan the QR code to join a voting session (client mode). The browser asks for explicit consent on first use. The video stream stays on-page and is never sent to any server.
Wake Lock API Keep the host phone's screen awake during the lobby and voting session, so the P2P connection isn't torn down when the screen would otherwise turn off (replaces the old Android app's ForegroundService).
localStorage Store session history, templates, preferences and recent sessions (client-side). Data stays in your browser and is never synced to any server.
WebRTC + PeerJS signaling Establish the peer-to-peer connection between participants' browsers. Signaling (SDP exchange) uses the public PeerJS service — it only sees ephemeral Peer IDs, never session contents. Once connected, data flows directly between browsers.
Service Worker Offline cache of the webapp's static assets (HTML/CSS/JS/icons) to allow functioning without a connection after the first load.

All permissions are used exclusively for the features described. No permission is used in the background or for other purposes.

What the app does NOT do

  • Does not collect personal identifiable data
  • Does not use analytics services (Google Analytics, etc.)
  • Does not display ads
  • Does not integrate third-party ad or tracking SDKs
  • Does not use crash reporting services (Sentry, etc.)
  • Does not share data with third parties, does not sell it
  • Does not create user profiles, does not require login or account
  • Does not install anything on your system without explicit consent (PWA is optional)

Data retention

Data stays on your device until:

  • you delete it manually from the app settings
  • you uninstall the app
  • you clear the app's data from Android settings

The developer has no access to this data and cannot recover it.

Children

The app is not specifically directed at children under 13. It is suitable for a general audience. The app does not collect data from any user, regardless of age.

Changes to this Privacy Policy

Any updates will be published on this page and take effect from the date listed at the top.

Contact