-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathindex.html
More file actions
142 lines (131 loc) · 7.65 KB
/
index.html
File metadata and controls
142 lines (131 loc) · 7.65 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Dashboard | Orange Dev Tracker | Bitcoin Data Labs</title>
<meta name="description"
content="Real-time analytics and KPIs for Bitcoin Core development. Track unique contributors, maintainers, codebase size, and commit trends.">
<link rel="canonical" href="https://sorukumar.github.io/orange-dev-tracker/index.html">
<script src="https://cdn.jsdelivr.net/npm/echarts@5.4.3/dist/echarts.min.js"></script>
<link href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;600&display=swap" rel="stylesheet">
<link rel="stylesheet" href="https://bitcoindatalabs.org/styles/styles.css">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.1/css/all.min.css">
<link rel="icon" type="image/png" href="https://bitcoindatalabs.org/favicon.png">
<!-- Open Graph -->
<meta property="og:title" content="Dashboard | Orange Dev Tracker | Bitcoin Data Labs">
<meta property="og:description" content="Real-time analytics and KPIs for Bitcoin Core development.">
<meta property="og:image" content="https://sorukumar.github.io/orange-dev-tracker/assets/og-image.png">
<link rel="stylesheet" href="styles/style.css">
</head>
<body class="has-fixed-header">
<div id="header"></div>
<div class="container">
<!-- The shared header now handles the app navigation links automatically -->
<!-- Vital Signs: KPIs -->
<section id="vital-signs" style="margin-bottom: 30px;">
<div class="kpi-grid">
<div class="kpi-card">
<div class="kpi-label">Unique Contributors</div>
<div class="kpi-value" id="kpi-contributors">-</div>
<div class="kpi-sub">All-time Authors</div>
</div>
<div class="kpi-card">
<div class="kpi-label">Maintainers</div>
<div class="kpi-value" id="kpi-maintainers">-</div>
<div class="kpi-sub">Total / Active</div>
</div>
<div class="kpi-card">
<div class="kpi-label">Codebase Size</div>
<div class="kpi-value" id="kpi-codebase">-</div>
<div class="kpi-sub">Lines of Code</div>
</div>
<div class="kpi-card">
<div class="kpi-label">Total Commits</div>
<div class="kpi-value" id="kpi-total-commits">-</div>
<div class="kpi-sub">History Length</div>
</div>
<div class="kpi-card">
<div class="kpi-label">Social Interest</div>
<div class="kpi-value" id="kpi-social" style="font-size: 1.8em;">-</div>
<div class="kpi-sub">Stars / Forks / Watchers</div>
</div>
</div>
</section>
<!-- Row 1: Structural Distribution (Status Quo) -->
<section style="display: flex; gap: 20px; margin-bottom: 30px; min-height: 400px; flex-wrap: wrap;">
<!-- Left 2/5: Work Snapshot -->
<div class="card" style="flex: 2; min-width: 350px; display: flex; flex-direction: column;">
<h3>Unique Commits by Area (Current Snapshot)</h3>
<div id="chart-snapshot-work" style="flex: 1; height: 350px;"></div>
</div>
<!-- Right 3/5: Human Pyramid -->
<div class="card" style="flex: 3; min-width: 350px; display: flex; flex-direction: column;">
<div style="display: flex; justify-content: space-between; align-items: center; margin-bottom: 15px;">
<h3 style="margin: 0;">The Engagement Pyramid</h3>
<div class="toggle-group"
style="display: flex; background: #EDF2F7; padding: 2px; border-radius: 6px; font-size: 11px; font-weight: 600;">
<button id="btn-pyramid-total" class="active"
style="padding: 4px 10px; border: none; background: #fff; border-radius: 4px; cursor: pointer; box-shadow: 0 1px 2px rgba(0,0,0,0.05); color: inherit;">Total</button>
<button id="btn-pyramid-authored"
style="padding: 4px 10px; border: none; background: transparent; border-radius: 4px; cursor: pointer; color: #718096;">Authored</button>
</div>
</div>
<div id="chart-engagement-tiers" style="flex: 1; height: 350px;"></div>
</div>
</section>
<!-- Row 2: The Hero Narrative (Historial Context) -->
<section class="card" style="margin-bottom: 30px;">
<div style="display: flex; justify-content: space-between; align-items: center; margin-bottom: 15px;">
<h3 style="margin: 0;">Evolution of Functional Areas (Commit Trends) <span
class="partial-year-badge">2026 Partial</span></h3>
<div class="toggle-group"
style="display: flex; background: #EDF2F7; padding: 2px; border-radius: 6px; font-size: 11px; font-weight: 600;">
<button id="btn-category-total" class="active"
style="padding: 4px 10px; border: none; background: #fff; border-radius: 4px; cursor: pointer; box-shadow: 0 1px 2px rgba(0,0,0,0.05); color: inherit;">Total</button>
<button id="btn-category-authored"
style="padding: 4px 10px; border: none; background: transparent; border-radius: 4px; cursor: pointer; color: #718096;">Authored</button>
</div>
</div>
<div id="chart-category" style="height: 450px; width: 100%;"></div>
</section>
<!-- Row 3: Momentum (Velocity & Adoption) -->
<section style="display: flex; gap: 20px; margin-bottom: 30px; min-height: 400px; flex-wrap: wrap;">
<!-- Left 1/2: Recruitment -->
<div class="card" style="flex: 1; min-width: 350px; display: flex; flex-direction: column;">
<h3>Recruitment Velocity <span class="partial-year-badge">2026 Partial</span></h3>
<div id="chart-growth" style="flex: 1; height: 350px;"></div>
</div>
<!-- Right 1/2: Social Adoption -->
<div class="card" style="flex: 1; min-width: 350px; display: flex; flex-direction: column;">
<h3>Social Proof</h3>
<div id="chart-social" style="flex: 1; height: 350px;"></div>
</div>
</section>
</div>
<div id="footer"></div>
<script src="https://bitcoindatalabs.org/components/app-components.js"></script>
<script src="js/utils.js"></script>
<script src="js/theme.js"></script>
<script src="js/charts-dashboard.js?v=5"></script>
<script src="js/app.js?v=5"></script>
<script>
document.addEventListener('DOMContentLoaded', () => {
BitcoinLabsApp.init({
isApp: true,
appName: 'orange-dev-tracker',
appHomeUrl: 'index.html',
navLinks: [
{ name: 'Dashboard', url: 'index.html' },
{ name: 'The Story', url: 'story.html' },
{ name: 'Contributors', url: 'contributors.html' },
{ name: 'Codebase', url: 'codebase.html' },
{ name: 'Engineering', url: 'engineering.html' },
{ name: 'Health & Culture', url: 'health.html' },
{ name: 'Methodology', url: 'methodology.html' }
]
});
});
</script>
</body>
</html>