Practitionist / Practitionist/elluminar_web
Community: pods, XP/streaks/leaderboards, creator AMAs
Nobody has claimed this yet.
- 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;Announcementfor community comms- Org-scoped leaderboards computable from
XpEvent × ProgramEnrollmentjoins (no schema change)
Implementation plan
- 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). - Streak job: daily scheduled function updates
UserStreakfrom activity (LessonProgress/attendance), timezone-aware perUser.timezone; streak-freeze rule (1/month) in PlatformConfig. - Badge awarder: criteria evaluator over XpEvents/streaks; award → notification + profile display.
- 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.
- Leaderboards: weekly XP boards per course/cohort (materialized query, cached), org-scoped board for enterprise program cohorts (admin compliance view), opt-out respected.
- AMA flow: creators schedule
LiveSession(purpose: AMA)from studio; announcement fan-out; replays attach to a community tab. - Learner dashboard widgets: streak flame, XP progress, pod card, upcoming AMAs.
- 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
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- 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