What is kept, and who decides.

QuizDock is designed to support privacy-conscious, data-minimised deployments. Everything stays in your database, the host decides at launch what is kept about each participant, and participants are told. The organisation that runs the instance is the data controller.

What does QuizDock store, and where?

WhereWhat
PostgreSQLAccounts: the identifier from the provider (or a local name), display name, e-mail if the provider gives one, roles, language, preferences.
Archived sessions: host, PIN, room, number of players, success rate, a copy of the quiz, the host's privacy choices, the date to keep it until.
Results per participant: nickname, score, rank, counts, average time, best streak, linked to the account if there is one.
Each answer: only with Record all answers.
Feedback: nickname, a 1 to 5 rating, an optional comment.
Audit: who did what in the administration, with the client's IP address.
RedisLive games (4 hours), sign-in sessions (forgotten after 24 hours unused), the sign-in handshake (10 minutes), a count of wrong PINs per address (60 seconds).
DiskUploaded media and the templates folder.

What does the host choose before a game?

In the lobby, under Before starting. The choices are fixed once the game starts.

  • Personalised tracking, on by default. On, results are recorded under each participant's account or nickname. Off, no individual result is kept, only the group's overall results. Unavailable in open access.
  • Record all answers, off by default. Keeps every answer of every participant; it needs tracking on. The app warns that this is personal data: inform participants, purge afterwards. An author can also turn it on for the next time a ready quiz is played.
  • Let participants pick their display name, with an identity provider. Results stay attached to the account either way: a chosen name is not anonymity.
  • Archive this quiz's results, ticked by default when the quiz ends. Unticked, nothing of the session is archived.

What are participants told?

The player page shows the notice that matches the host's choices, one of five:

  • “Your individual results are not recorded — only the group’s overall results are.”
  • “Your taking part and your score are recorded under your account.”
  • “Your taking part and your score are recorded under your account — and every one of your answers is kept.”
  • “Your taking part and your score are recorded with each quiz's results, under your nickname.”
  • “Your taking part and your score are recorded with each quiz's results, under your nickname — and every one of your answers is kept.”

The application has no privacy-policy page: the operator publishes their own.

Start a room →

How long is data kept?

  • Archived sessions: marked to be kept 365 days after they ended. Fixed, not configurable. Deleted only when someone runs ./quizdock sessions:purge (--dry-run to preview) or Purge old sessions in Administration › Quizzes; schedule it with cron if needed. The statistics history goes with them.
  • Feedback stays with its quiz. The audit is never deleted.
  • Unused media are deleted by the hourly clean-up after 24 hours.
  • Live games expire from Redis after 4 hours.

Privacy and retention for administrators →

Do participants need an account?

In local mode, no: the PIN and a nickname of 2 to 20 characters. With an identity provider, every participant signs in, unless the operator sets ALLOW_ANONYMOUS_PARTICIPANTS=true and the host chooses Open access at launch: then the PIN and a nickname are enough, and personal tracking is off.

What does the browser keep?

Cookies: with an identity provider only, two, HttpOnly and SameSite=Lax, for the sign-in. No tracking or advertising cookies in any mode.

Browser storage: interface preferences, the name or nickname and avatar, a device identifier, sound levels, the reconnection token, unsaved quiz edits, which quizzes were already rated, the last invitation address. The administration and setup tokens are kept for the open tab only.

Content Security Policy: scripts, styles, fonts and connections come from the instance only, and no frame is allowed. So there are no analytics, no CDN, no web fonts, no embeds; text uses the system's fonts. Two exceptions, both images: a picture in a quiz's Markdown may come from any https address, and so may a logo set with APP_LOGO_URL.

Does the server send data anywhere?

One request is on by default: the update check asks api.github.com for the latest release, at most once a day. GitHub sees the server's IP address and version, nothing else; UPDATE_CHECK=false turns it off. The community catalogue is off by default and sends no identity, quiz or result. With an identity provider, the server talks to it. There is no telemetry, no e-mail and no webhook.

Every outgoing request →

What is not built yet?

  • Deleting or anonymising an account.
  • Deleting a single archived session.
  • A retention period you can configure, or an automatic purge.
  • A privacy-policy page in the application.

What is the operator responsible for?

The organisation running the instance is the data controller. It decides the legal basis, informs participants and publishes its privacy notice, tells hosts what they may record, schedules the purge, protects the backups (they contain the same data) and answers requests from the people concerned.

Questions

Is QuizDock GDPR compliant?

Software alone cannot be. QuizDock is designed to support privacy-conscious, data-minimised deployments: data stays in your database, the host chooses at launch what is kept per participant, and participants are told. Compliance depends on how the organisation running it uses it; that organisation is the data controller. Some tools are missing, such as deleting an account.

Are results kept by default?

Yes. Individual tracking is on and archiving is ticked by default, so each participant's score and rank are kept with their account or nickname. Every single answer is kept only when the host turns on Record all answers. The host can turn tracking off: then only the group's overall results are kept.

Can participants play without an account?

Yes. In local mode, the PIN and a nickname are enough. With an identity provider, participants sign in, unless the operator allows open games and the host opens one: then the PIN and a nickname are enough, and nothing is kept per person.

How long are results kept?

An archived session is marked to be kept 365 days after it ended. This is fixed, not a setting, and nothing is deleted automatically: ./quizdock sessions:purge, or Purge old sessions in the administration, deletes the expired ones. Schedule it if you need it to run regularly.

Can a user ask for their account to be deleted?

Not from the application today. QuizDock has no account deletion or anonymisation, and no way to delete a single archived session. Neither the administration nor the command line offers it.

Does QuizDock use cookies?

Only with an identity provider: two cookies, HttpOnly and SameSite=Lax, for the sign-in. No tracking or advertising cookies, in any mode. Other preferences stay in the browser's own storage.