Jump to content

Recommended Posts

Posted

Hi everyone,

Needed a way to embed polls and quizzes directly into page content — shortcode in any text field, renders as a cache-safe interactive widget. Built it, it works well, sharing it.

GitHub: https://github.com/mxmsmnv/Pulse

Screenshot:

pulse.png.1def5cffb44d16172719d3f865cb20de.png

What it does

Polls and quizzes embedded via shortcode into any text field:

[[pulse:poll name="my-poll"]]
[[pulse:quiz name="my-quiz"]]

Polls — voting with live results, multi-select, allow-other option, duplicate protection (cookie+IP, user session, or soft).

Quizzes — three modes:

  • graded — points, pass/fail threshold, answer review
  • personality — options award points to outcomes, winning outcome shown at end
  • exam — graded plus timer, attempt limit, question bank, certificate

Visual questions — question-level images and image-option layouts.

Admin workspace — Setup → Pulse with full CRUD, analytics, CSV/JSON export, import, clone, and demo installer.

Security:

  • All scoring server-side — is_correct / outcome_points never reach the client before submission
  • CSRF mandatory on all submissions (token from /pulse/state)
  • Honeypot + rate limiting by hashed IP
  • Voter cookies and IPs stored as salted hashes only
  • Exam HMAC-signed question sets, server-enforced timeouts, signed certificates

Cache-safe: renders a static shell, hydrates via JS — works with ProCache.

Requirements: ProcessWire 3.0+, PHP 8.2+

MIT License.

  • Like 2
  • Thanks 1

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...