Practitionist / Practitionist/elluminar_web

Community: pods, XP/streaks/leaderboards, creator AMAs

Open
#15 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

community post-mvp v1
Dominant language
TypeScript
Stars
1
Forks
0
Avg merge
17h 2m
Merged PRs (30d)
18

Description

Why / Context

PRD §7.2D: self-paced completion is "the industry's oldest unsolved problem" and small peer pods (4–6 learners) are one of the few interventions with real evidence. Streaks/XP/leaderboards double as a gamified compliance view for enterprise admins; creator AMAs and alumni community raise retention and repeat purchase.

Schema already in place — NO migration required

  • Pod / PodMember (course- or cohort-scoped, capacity default 6)
  • XpEvent, UserStreak, Badge/UserBadge (6 badges seeded)
  • LiveSession(purpose: AMA|WEBINAR) for AMAs; Announcement for community comms
  • Org-scoped leaderboards computable from XpEvent × ProgramEnrollment joins (no schema change)

Implementation plan

  1. XP engine (src/lib/community/xp.ts): award rules (lesson complete, quiz pass, streak day, project milestones, accepted answers) emitted from existing completion paths; idempotent per (kind, refId).
  2. Streak job: daily scheduled function updates UserStreak from activity (LessonProgress/attendance), timezone-aware per User.timezone; streak-freeze rule (1/month) in PlatformConfig.
  3. Badge awarder: criteria evaluator over XpEvents/streaks; award → notification + profile display.
  4. Pod formation: opt-in at enrollment; matcher groups 4–6 by cohort/timezone/pace (scheduled batch); pod page = members, shared progress bar, pod thread (existing DiscussionThread scope), optional meeting link.
  5. Leaderboards: weekly XP boards per course/cohort (materialized query, cached), org-scoped board for enterprise program cohorts (admin compliance view), opt-out respected.
  6. AMA flow: creators schedule LiveSession(purpose: AMA) from studio; announcement fan-out; replays attach to a community tab.
  7. Learner dashboard widgets: streak flame, XP progress, pod card, upcoming AMAs.
  8. Anti-gaming: XP caps per day per source; audit of top movers.

Acceptance criteria

  • Completing lessons/quizzes awards XP once; leaderboard updates weekly
  • Streaks track daily activity across timezones; badge at 7/30 days
  • Opt-in learners are placed into pods ≤6 with a working pod thread
  • Enterprise admin sees an org-scoped leaderboard for their program cohort
  • AMA scheduled in studio appears on learner dashboards and sends reminders

Dependencies / sequencing

  • MVP M9 (progress events) required; issue #10 (notifications) for reminders/digests

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reading src/lib/community/xp.ts, the existing lesson and quiz completion paths, and the seeded Pod, XpEvent, UserStreak, Badge, LiveSession, Announcement, and DiscussionThread models. Confirm the M9 progress-event dependency and issue #10 notifications before splitting the work into sequenced slices. Done means all listed acceptance criteria work without a migration.

Written by the indexing model from the issue text.

Assessment

Tech stack
typescript
Domain
backend, frontend, full-stack
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.