Majority Wrapped 2025 - Progress Tracker¶
✅ Completed¶
Step 1: Data Aggregation (2025-12-17)¶
- [x] Created
wrapped/generate_wrapped_stats.pyscript - [x] Aggregates all 143 repo CSVs from
pr_stats_output/ - [x] Maps GitHub usernames to emails/display names via
majority_dev_users_20251217_131102.csv - [x] Generated
wrapped/wrapped_stats.csvwith the following columns:email- for user lookupdisplay_name- friendly namegithub_username- GH handleprs_shipped- total PRs mergedlines_added- lines of code writtenlines_deleted- lines cleaned uprepos_touched- unique repos contributed toreviews_given- PRs approvedtop_commenter_count- PRs where user was most active reviewerbusiest_month- month with most activityfavorite_repo- most contributed repofastest_merge_minutes- quickest PR turnaround (excludes auto-merges under 5 min)
Stats:
- 50 users processed
- 42 users with PR activity
- 12,635 PRs analyzed
- Top contributor: Victor Blomqvist (804 PRs)
✅ Completed¶
Step 2: Build Static Website (2025-12-17)¶
- [x] Create HTML structure in
wrapped/index.html - [x] Email input form with "Unwrap 2025" button
- [x] CSV loading and parsing (custom lightweight parser)
- [x] Case-insensitive email matching
- [x] Loading state while parsing
Step 3: Stats Display Cards (2025-12-17)¶
- [x] PRs Shipped card (hero stat)
- [x] Lines of Code card
- [x] Code Cleaner card (lines deleted)
- [x] Repos Touched card
- [x] Reviews Given card
- [x] Top Commenter card
- [x] Busiest Month card
- [x] Favorite Repo card
- [x] Speed Record (fastest merge) card
Step 4: Styling & Animation (2025-12-17)¶
- [x] Majority-inspired + hacker aesthetic design
- Dark terminal-style background with grid pattern
- Majority teal (#00D4AA) as primary accent
- JetBrains Mono for code/hacker feel
- Space Grotesk for headings (clean, modern)
- Subtle scanline effect for retro vibe
- [x] Large bold typography for numbers with gradient
- [x] Sequential fade/slide-in animations with staggered delays
- [x] Animated number counting effect
- [x] Mobile-responsive layout
- [x] "User not found" error message with styling
- [x] Hover effects on cards with glow
🔲 To Do¶
Step 5: Testing & Polish¶
- [x] Test with multiple users
- [x] Mobile testing on phone ✅
- [ ] Test edge cases (no PRs, missing data)
- [ ] Cross-browser testing
- [ ] Final polish
📁 Files¶
| File | Purpose |
|---|---|
wrapped/generate_wrapped_stats.py |
Data aggregation script |
wrapped/wrapped_stats.csv |
Aggregated user stats |
wrapped/index.html |
Static website (TODO) |