Solin Streaks icon

Solin Streaks

Maintained by Onno Schuit
A per-course learning streak for Moodle. Each learner gets a streak counter, streak freezes for occasional missed days, make-or-break reminders, and a privacy-aware leaderboard. It renders inline on the course page, is themeable, and uses no JavaScript.
Price option: Free

Supports Moodle 4.5-5.2 See all versions
Latest release: 0 days ago
Installations: 1
Downloads (last 90 days): 3

Frankenstyle name: mod_streak
Activities

Description

Solin Streaks adds a regular-practice learning streak to Moodle courses where learners are expected to return and complete meaningful activity over time. A teacher adds one Solin Streaks activity to a course, chooses a cadence (for example daily practice, once a week, or 3 days per week), and decides which course actions count. Each learner then gets a personal streak counter, streak freezes for occasional missed periods, gentle make-or-break reminders, and a friendly per-course leaderboard.

The streak counter and leaderboard render inline on the course page, so learners do not open a separate activity page to use the plugin. The plugin ships no JavaScript: everything is server-rendered HTML and CSS, themeable through templates and CSS tokens, so the same activity can suit very different audiences (compliance programs, onboarding, professional development, schools, universities, language learning).

Features

  • Per-learner streak counter — current streak plus personal best, shown with a branded flame on the course page.
  • Configurable cadence — Daily by default, or Weekly / Fortnightly / Monthly with a per-period goal ("3 of 7 days this week").
  • Streak freeze — a configurable number of forgiven misses per period (with a cap), so one bad day does not wipe out weeks of effort.
  • Make-or-break reminders — delivered through Moodle's Message API (email, notification, mobile push where available), only when a streak is actually at risk, respecting each user's notification preferences.
  • Privacy-aware per-course leaderboard — participants ranked by current streak, with photo or colored-initials avatars and top-three medals. Any learner can opt out and is then removed from everyone else's view while still seeing their own private counter.
  • Streak lifecycle / end date — use the course end date, a custom end date, or run evergreen. At the end date the leaderboard freezes into a final standing rather than vanishing.
  • Qualifying action — choose what counts toward a day: any activity completion (default), a course-progress advance, or login only.
  • Institutional breaks — a site holiday calendar so scheduled closures do not break anyone's streak.
  • Themeable and mobile-ready — override templates, pix icons, CSS tokens, or the renderer without forking; the activity also renders in the Moodle App.

Why an activity module, not a block?

Solin Streaks is deliberately an activity module, even though it is not "content" you open and work through in the usual sense. A block might seem the obvious choice, but two practical reasons ruled it out. First, placement: the streak counter and leaderboard render inline at the top of the course's main column, where every learner sees them immediately — Moodle's default themes have no block region at the top of the central column, so a block could only sit in a side column, far less prominent. Second, mobile: activity modules render directly in the course in the Moodle App (Solin Streaks ships app support), whereas blocks have limited, inconsistent visibility in the app and are not shown inline with course content.

When to use it

Best for courses where regular activity is meaningful: daily practice, weekly compliance tasks, recurring onboarding, exam preparation, spaced repetition, micro-learning, language learning, or professional-development programs that run over a longer period. It is not a good fit for one-off compliance modules or short courses that need a single activity completed once.

Privacy

Solin Streaks implements the Moodle Privacy API. It stores per-learner streak state (current and longest streak, freezes, progress, opt-out, final standing) and a ledger of the days a learner earned a qualifying action; both are exportable and deletable per user.

Background reading: which gamification mechanics the evidence supports, and which ones tend to backfire: https://solin.co/gamification-in-moodle-what-works-what-backfires/ 

Source code: https://github.com/solin-repo/moodle-mod_streak 

Report an issue: https://github.com/solin-repo/moodle-mod_streak/issues 

Contributors

Awards

Privacy friendly
Automated testing support