Gamification
Recognize member engagement through a badge system, participation tracking, and community rankings. Gamification increases retention and fosters friendly competition.Gamification Module
Navigate to Meetings Module → Gamificación tab. FromMeetingsModule.tsx:lines 733:
Asigna reconocimientos y visualiza la participación de la comunidad.
Badge System
Award digital badges to members for achievements and milestones.Badge Types
Fromtypes.ts:lines 679:
Badge Configuration
Each badge type has associated metadata: FromMeetingsModule.tsx:lines 31-37:
Badge Structure
Fromtypes.ts:lines 682-690:
Awarding Badges
Choose Badge Type
Select badge level:
| Type | Points | Use Case |
|---|---|---|
| Estrella (⭐) | 20 | Consistent attendance |
| Bronce (🥉) | 30 | Active participation |
| Plata (🥈) | 50 | Outstanding contribution |
| Oro (🥇) | 80 | Leadership or mentorship |
| Especial (🏆) | 100 | Exceptional achievement |
MeetingsModule.tsx:lines 747-759.
Award Implementation
MeetingsModule.tsx:lines 746-760.
Participation Tracking
Automatic logging of member event attendance.Participation Record
Fromtypes.ts:lines 693-701:
Automatic Creation
When member joins an event:- System creates
ParticipationRecord - Increments user’s participation count
- Adds points based on event type
- Updates ranking
Participation tracking requires integration with the event registration system. Ensure events call
db.gamification.recordParticipation(userId, eventId) when members join.Community Ranking
Display top participants by accumulated points.Ranking Calculation
FromMeetingsModule.tsx:lines 780-795:
Points System
Sources:-
Badges: Points defined in
BADGE_CONFIG- Estrella: 20 pts
- Bronce: 30 pts
- Plata: 50 pts
- Oro: 80 pts
- Especial: 100 pts
-
Participation: Points per event (configurable)
- Default: 10 pts per event
Ranking Display
FromMeetingsModule.tsx:lines 775-797:
- Top 3: Special emoji badges (🥇🥈🥉)
- 4-10: Gray numbered badges
- Highlight: First place gets amber/gold styling
Ranking in Analytics
Ranking also appears in Calendar Analytics tab. FromCalendarModule.tsx:lines 531-550:
- Same data source:
db.gamification.getRanking() - Shows top 8 members
- Includes participation and badge counts
Badge Gallery (Member View)
Members see their badges in a Badge Gallery widget (implementation in member dashboard).Gallery Structure
FromMeetingsModule.tsx:lines 800-825:
Empty State
If member has no badges:Analytics Integration
Gamification data enriches other analytics:Calendar Analytics
FromCalendarModule.tsx:lines 490-550:
- Participation ranking: Top 8 members
- Points distribution: Visual breakdown
- Badge count: Total per member
Member Profiles
(Implementation in member system):- Badge showcase: Grid of earned badges
- Participation history: Timeline of attended events
- Current rank: Position in community ranking
- Next milestone: Progress to next badge level
Best Practices
Be Consistent
Award badges regularly (weekly or monthly) to maintain motivation.
Personalize Labels
Use custom labels to make badges meaningful (“Liderazgo Marzo” vs “Badge #5”).
Explain Reasons
Always provide clear reason text. Members value recognition when they understand why.
Celebrate Top Performers
Highlight ranking leaders in newsletters or community announcements.
Badge Award Guidelines
Estrella (⭐) — 20 pts
Criteria:- Attended 3+ events in a month
- Submitted all feedback surveys
- Basic participation
Medalla Bronce (🥉) — 30 pts
Criteria:- Active in discussions
- Attended 5+ events
- Helped other members
Medalla Plata (🥈) — 50 pts
Criteria:- Led a breakout session
- Attended 8+ events in a month
- High-quality feedback
Medalla Oro (🥇) — 80 pts
Criteria:- Mentored new members
- 100% attendance for 2+ months
- Exceptional community support
Especial (🏆) — 100 pts
Criteria:- Organized an event
- 6+ months of consistent participation
- Significant positive impact
Troubleshooting
Badge Not Appearing in Member Profile
- Verify badge was saved: Check
db.gamification.getBadges() - Confirm
userIdmatches member’s actual ID - Check member profile widget is fetching badges
- Review browser console for errors
Points Not Updating
- Ensure badge points are defined in
BADGE_CONFIG - Verify participation records are being created
- Check ranking calculation logic
- Refresh ranking:
db.gamification.refreshRanking()
Ranking Order Wrong
- Confirm sorting is by points (descending)
- Check for tied scores (implement secondary sort by date)
- Verify all badges have correct point values
- Recalculate:
db.gamification.recalculateAllPoints()
Member Can’t Access Events After Feedback
- Check
ParticipationRecord.feedbackBlocksNextisfalseafter submission - Verify feedback submission updates record correctly
- Review blocking logic in event registration flow
- Test feedback completion flow end-to-end
Advanced Features
Streaks
(Not yet implemented — future enhancement) Track consecutive weeks/months of participation:Leaderboards
(Partially implemented) Expand ranking system:- All-time: Total points
- Monthly: Points earned this month
- Activity-specific: Points from specific event types
Badge Tiers
(Future enhancement) Multiple levels per badge type:Related Documentation
- Feedback System - Required for participation tracking
- Zoom Integration - Events that generate participation
- Calendar Management - Activity events and analytics