|
|
<!DOCTYPE html> |
|
|
<html lang="en"> |
|
|
<head> |
|
|
<meta charset="UTF-8"> |
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0"> |
|
|
<title>Analytics - KODE 1</title> |
|
|
<link rel="icon" type="image/x-icon" href="/static/favicon.ico"> |
|
|
<script src="https://cdn.tailwindcss.com"></script> |
|
|
<script src="https://cdn.jsdelivr.net/npm/feather-icons/dist/feather.min.js"></script> |
|
|
<script src="https://unpkg.com/feather-icons"></script> |
|
|
<script src="https://cdn.jsdelivr.net/npm/chart.js"></script> |
|
|
<script> |
|
|
tailwind.config = { |
|
|
darkMode: 'class', |
|
|
theme: { |
|
|
extend: { |
|
|
colors: { |
|
|
primary: { |
|
|
50: '#f0f9ff', |
|
|
100: '#e0f2fe', |
|
|
200: '#bae6fd', |
|
|
300: '#7dd3fc', |
|
|
400: '#38bdf8', |
|
|
500: '#0ea5e9', |
|
|
600: '#0284c7', |
|
|
700: '#0369a1', |
|
|
800: '#075985', |
|
|
900: '#0c4a6e', |
|
|
}, |
|
|
secondary: { |
|
|
50: '#f8fafc', |
|
|
100: '#f1f5f9', |
|
|
200: '#e2e8f0', |
|
|
300: '#cbd5e1', |
|
|
400: '#94a3b8', |
|
|
500: '#64748b', |
|
|
600: '#475569', |
|
|
700: '#334155', |
|
|
800: '#1e293b', |
|
|
900: '#0f172a', |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
</script> |
|
|
</head> |
|
|
<body class="bg-secondary-50 dark:bg-secondary-900 text-secondary-900 dark:text-secondary-100"> |
|
|
|
|
|
<nav class="bg-white dark:bg-secondary-800 border-b border-secondary-200 dark:border-secondary-700 fixed w-full top-0 z-50"> |
|
|
<div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8"> |
|
|
<div class="flex justify-between h-16"> |
|
|
<div class="flex items-center"> |
|
|
<div class="flex-shrink-0 flex items-center"> |
|
|
<div class="w-10 h-10 bg-primary-500 rounded-lg flex items-center justify-center"> |
|
|
<i data-feather="cpu" class="w-6 h-6 text-white"></i> |
|
|
</div> |
|
|
<span class="ml-3 text-xl font-bold">KODE 1</span> |
|
|
</div> |
|
|
<div class="hidden md:ml-10 md:flex md:space-x-8"> |
|
|
<a href="index.html" class="text-secondary-700 dark:text-secondary-300 hover:text-primary-600 dark:hover:text-primary-400 px-3 py-2 text-sm font-medium">Dashboard</a> |
|
|
<a href="agents.html" class="text-secondary-700 dark:text-secondary-300 hover:text-primary-600 dark:hover:text-primary-400 px-3 py-2 text-sm font-medium">Agents</a> |
|
|
<a href="agent-builder.html" class="text-secondary-700 dark:text-secondary-300 hover:text-primary-600 dark:hover:text-primary-400 px-3 py-2 text-sm font-medium flex items-center space-x-1"> |
|
|
<span>Agent Builder</span> |
|
|
<span class="px-1.5 py-0.5 bg-primary-100 dark:bg-primary-900 text-primary-600 dark:text-primary-400 rounded-full text-xs font-medium">NEW</span> |
|
|
</a> |
|
|
<a href="tasks.html" class="text-secondary-700 dark:text-secondary-300 hover:text-primary-600 dark:hover:text-primary-400 px-3 py-2 text-sm font-medium">Tasks</a> |
|
|
<a href="workflows.html" class="text-secondary-700 dark:text-secondary-300 hover:text-primary-600 dark:hover:text-primary-400 px-3 py-2 text-sm font-medium">Workflows</a> |
|
|
<a href="#" class="text-primary-600 dark:text-primary-400 px-3 py-2 text-sm font-medium">Analytics</a> |
|
|
</div> |
|
|
</div> |
|
|
<div class="flex items-center space-x-4"> |
|
|
<button onclick="toggleTheme()" class="p-2 rounded-lg hover:bg-secondary-100 dark:hover:bg-secondary-700"> |
|
|
<i data-feather="moon" class="w-5 h-5 dark:hidden"></i> |
|
|
<i data-feather="sun" class="w-5 h-5 hidden dark:block"></i> |
|
|
</button> |
|
|
<div class="relative"> |
|
|
<button class="p-2 rounded-lg hover:bg-secondary-100 dark:hover:bg-secondary-700"> |
|
|
<i data-feather="bell" class="w-5 h-5"></i> |
|
|
<span class="absolute top-1 right-1 w-2 h-2 bg-red-500 rounded-full"></span> |
|
|
</button> |
|
|
</div> |
|
|
<div class="flex items-center space-x-2"> |
|
|
<img src="http://static.photos/people/40x40/1" alt="User" class="w-8 h-8 rounded-full"> |
|
|
<span class="text-sm font-medium">John Doe</span> |
|
|
</div> |
|
|
</div> |
|
|
</div> |
|
|
</div> |
|
|
</nav> |
|
|
|
|
|
|
|
|
<main class="pt-16"> |
|
|
|
|
|
<section class="bg-white dark:bg-secondary-800 border-b border-secondary-200 dark:border-secondary-700"> |
|
|
<div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-6"> |
|
|
<div class="flex justify-between items-center"> |
|
|
<div> |
|
|
<h1 class="text-2xl font-bold">Analytics Dashboard</h1> |
|
|
<p class="text-secondary-500 dark:text-secondary-400">Comprehensive insights into your AI agents and workflows</p> |
|
|
</div> |
|
|
<div class="flex space-x-3"> |
|
|
<select class="px-4 py-2 border border-secondary-300 dark:border-secondary-600 rounded-lg bg-white dark:bg-secondary-700 focus:outline-none focus:ring-2 focus:ring-primary-500"> |
|
|
<option>Last 7 days</option> |
|
|
<option>Last 30 days</option> |
|
|
<option>Last 3 months</option> |
|
|
<option>Last year</option> |
|
|
</select> |
|
|
<button class="px-4 py-2 bg-primary-600 text-white rounded-lg font-medium hover:bg-primary-700 transition-colors flex items-center space-x-2"> |
|
|
<i data-feather="download" class="w-4 h-4"></i> |
|
|
<span>Export Report</span> |
|
|
</button> |
|
|
</div> |
|
|
</div> |
|
|
</div> |
|
|
</section> |
|
|
|
|
|
|
|
|
<section class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-6"> |
|
|
<div class="grid grid-cols-1 md:grid-cols-4 gap-4"> |
|
|
<div class="bg-white dark:bg-secondary-800 rounded-xl shadow-lg p-6"> |
|
|
<div class="flex items-center justify-between"> |
|
|
<div> |
|
|
<p class="text-secondary-500 dark:text-secondary-400 text-sm">Total Agents</p> |
|
|
<p class="text-3xl font-bold text-primary-600 dark:text-primary-400">24</p> |
|
|
<p class="text-xs text-green-500 mt-1">+4 this month</p> |
|
|
</div> |
|
|
<div class="bg-primary-100 dark:bg-primary-900 p-3 rounded-lg"> |
|
|
<i data-feather="users" class="w-6 h-6 text-primary-600 dark:text-primary-400"></i> |
|
|
</div> |
|
|
</div> |
|
|
</div> |
|
|
<div class="bg-white dark:bg-secondary-800 rounded-xl shadow-lg p-6"> |
|
|
<div class="flex items-center justify-between"> |
|
|
<div> |
|
|
<p class="text-secondary-500 dark:text-secondary-400 text-sm">Tasks Completed</p> |
|
|
<p class="text-3xl font-bold text-green-600 dark:text-green-400">12.4K</p> |
|
|
<p class="text-xs text-green-500 mt-1">+23% from last period</p> |
|
|
</div> |
|
|
<div class="bg-green-100 dark:bg-green-900 p-3 rounded-lg"> |
|
|
<i data-feather="check-circle" class="w-6 h-6 text-green-600 dark:text-green-400"></i> |
|
|
</div> |
|
|
</div> |
|
|
</div> |
|
|
<div class="bg-white dark:bg-secondary-800 rounded-xl shadow-lg p-6"> |
|
|
<div class="flex items-center justify-between"> |
|
|
<div> |
|
|
<p class="text-secondary-500 dark:text-secondary-400 text-sm">Avg Success Rate</p> |
|
|
<p class="text-3xl font-bold text-purple-600 dark:text-purple-400">96.8%</p> |
|
|
<p class="text-xs text-green-500 mt-1">+2.3% improvement</p> |
|
|
</div> |
|
|
<div class="bg-purple-100 dark:bg-purple-900 p-3 rounded-lg"> |
|
|
<i data-feather="trending-up" class="w-6 h-6 text-purple-600 dark:text-purple-400"></i> |
|
|
</div> |
|
|
</div> |
|
|
</div> |
|
|
<div class="bg-white dark:bg-secondary-800 rounded-xl shadow-lg p-6"> |
|
|
<div class="flex items-center justify-between"> |
|
|
<div> |
|
|
<p class="text-secondary-500 dark:text-secondary-400 text-sm">Cost Savings</p> |
|
|
<p class="text-3xl font-bold text-orange-600 dark:text-orange-400">$24.5K</p> |
|
|
<p class="text-xs text-green-500 mt-1">+18% vs manual</p> |
|
|
</div> |
|
|
<div class="bg-orange-100 dark:bg-orange-900 p-3 rounded-lg"> |
|
|
<i data-feather="dollar-sign" class="w-6 h-6 text-orange-600 dark:text-orange-400"></i> |
|
|
</div> |
|
|
</div> |
|
|
</div> |
|
|
</div> |
|
|
</section> |
|
|
|
|
|
|
|
|
<section class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8"> |
|
|
<div class="grid grid-cols-1 lg:grid-cols-2 gap-6"> |
|
|
|
|
|
<div class="bg-white dark:bg-secondary-800 rounded-xl shadow-lg p-6"> |
|
|
<h2 class="text-xl font-bold mb-4">Task Performance</h2> |
|
|
<canvas id="taskPerformanceChart" width="400" height="200"></canvas> |
|
|
</div> |
|
|
|
|
|
|
|
|
<div class="bg-white dark:bg-secondary-800 rounded-xl shadow-lg p-6"> |
|
|
<h2 class="text-xl font-bold mb-4">Agent Usage Distribution</h2> |
|
|
<canvas id="agentUsageChart" width="400" height="200"></canvas> |
|
|
</div> |
|
|
</div> |
|
|
</section> |
|
|
|
|
|
|
|
|
<section class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-6"> |
|
|
<div class="bg-white dark:bg-secondary-800 rounded-xl shadow-lg overflow-hidden"> |
|
|
<div class="p-6 border-b border-secondary-200 dark:border-secondary-700"> |
|
|
<h2 class="text-xl font-bold">Agent Performance Details</h2> |
|
|
</div> |
|
|
<div class="overflow-x-auto"> |
|
|
<table class="w-full"> |
|
|
<thead class="bg-secondary-50 dark:bg-secondary-900"> |
|
|
<tr> |
|
|
<th class="text-left py-3 px-6 font-medium text-secondary-700 dark:text-secondary-300">Agent Name</th> |
|
|
<th class="text-left py-3 px-6 font-medium text-secondary-700 dark:text-secondary-300">Tasks</th> |
|
|
<th class="text-left py-3 px-6 font-medium text-secondary-700 dark:text-secondary-300">Success Rate</th> |
|
|
<th class="text-left py-3 px-6 font-medium text-secondary-700 dark:text-secondary-300">Avg Time</th> |
|
|
<th class="text-left py-3 px-6 font-medium text-secondary-700 dark:text-secondary-300">Cost</th> |
|
|
<th class="text-left py-3 px-6 font-medium text-secondary-700 dark:text-secondary-300">Efficiency</th> |
|
|
</tr> |
|
|
</thead> |
|
|
<tbody class="divide-y divide-secondary-200 dark:divide-secondary-700"> |
|
|
<tr class="hover:bg-secondary-50 dark:hover:bg-secondary-900"> |
|
|
<td class="py-4 px-6"> |
|
|
<div class="flex items-center space-x-2"> |
|
|
<div class="w-8 h-8 bg-gradient-to-br from-blue-500 to-purple-600 rounded-lg flex items-center justify-center"> |
|
|
<i data-feather="code" class="w-4 h-4 text-white"></i> |
|
|
</div> |
|
|
<span class="font-medium">CodeAgent Pro</span> |
|
|
</div> |
|
|
</td> |
|
|
<td class="py-4 px-6">3,456</td> |
|
|
<td class="py-4 px-6"> |
|
|
<span class="text-green-600 font-medium">98.5%</span> |
|
|
</td> |
|
|
<td class="py-4 px-6">2.3s</td> |
|
|
<td class="py-4 px-6">$1,234</td> |
|
|
<td class="py-4 px-6"> |
|
|
<div class="flex items-center space-x-2"> |
|
|
<div class="w-24 bg-secondary-200 dark:bg-secondary-700 rounded-full h-2"> |
|
|
<div class="bg-green-600 h-2 rounded-full" style="width: 95%"></div> |
|
|
</div> |
|
|
<span class="text-sm">95%</span> |
|
|
</div> |
|
|
</td> |
|
|
</tr> |
|
|
<tr class="hover:bg-secondary-50 dark:hover:bg-secondary-900"> |
|
|
<td class="py-4 px-6"> |
|
|
<div class="flex items-center space-x-2"> |
|
|
<div class="w-8 h-8 bg-gradient-to-br from-green-500 to-teal-600 rounded-lg flex items-center justify-center"> |
|
|
<i data-feather="edit-3" class="w-4 h-4 text-white"></i> |
|
|
</div> |
|
|
<span class="font-medium">WriterAI</span> |
|
|
</div> |
|
|
</td> |
|
|
<td class="py-4 px-6">2,891</td> |
|
|
<td class="py-4 px-6"> |
|
|
<span class="text-green-600 font-medium">96.2%</span> |
|
|
</td> |
|
|
<td class="py-4 px-6">1.8s</td> |
|
|
<td class="py-4 px-6">$987</td> |
|
|
<td class="py-4 px-6"> |
|
|
<div class="flex items-center space-x-2"> |
|
|
<div class="w-24 bg-secondary-200 dark:bg-secondary-700 rounded-full h-2"> |
|
|
<div class="bg-green-600 h-2 rounded-full" style="width: 88%"></div> |
|
|
</div> |
|
|
<span class="text-sm">88%</span> |
|
|
</div> |
|
|
</td> |
|
|
</tr> |
|
|
<tr class="hover:bg-secondary-50 dark:hover:bg-secondary-900"> |
|
|
<td class="py-4 px-6"> |
|
|
<div class="flex items-center space-x-2"> |
|
|
<div class="w-8 h-8 bg-gradient-to-br from-orange-500 to-red-600 rounded-lg flex items-center justify-center"> |
|
|
<i data-feather="bar-chart-2" class="w-4 h-4 text-white"></i> |
|
|
</div> |
|
|
<span class="font-medium">DataAnalyzer</span> |
|
|
</div> |
|
|
</td> |
|
|
<td class="py-4 px-6">1,234</td> |
|
|
<td class="py-4 px-6"> |
|
|
<span class="text-green-600 font-medium">99.1%</span> |
|
|
</td> |
|
|
<td class="py-4 px-6">3.1s</td> |
|
|
<td class="py-4 px-6">$756</td> |
|
|
<td class="py-4 px-6"> |
|
|
<div class="flex items-center space-x-2"> |
|
|
<div class="w-24 bg-secondary-200 dark:bg-secondary-700 rounded-full h-2"> |
|
|
<div class="bg-green-600 h-2 rounded-full" style="width: 92%"></div> |
|
|
</div> |
|
|
<span class="text-sm">92%</span> |
|
|
</div> |
|
|
</td> |
|
|
</tr> |
|
|
</tbody> |
|
|
</table> |
|
|
</div> |
|
|
</div> |
|
|
</section> |
|
|
</main> |
|
|
|
|
|
<script> |
|
|
feather.replace(); |
|
|
|
|
|
function toggleTheme() { |
|
|
document.documentElement.classList.toggle('dark'); |
|
|
localStorage.setItem('theme', document.documentElement.classList.contains('dark') ? 'dark' : 'light'); |
|
|
} |
|
|
|
|
|
if (localStorage.getItem('theme') === 'dark' || (!localStorage.getItem('theme') && window.matchMedia('(prefers-color-scheme: dark)').matches)) { |
|
|
document.documentElement.classList.add('dark'); |
|
|
} |
|
|
|
|
|
|
|
|
const taskCtx = document.getElementById('taskPerformanceChart').getContext('2d'); |
|
|
new Chart(taskCtx, { |
|
|
type: 'line', |
|
|
data: { |
|
|
labels: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'], |
|
|
datasets: [{ |
|
|
label: 'Completed Tasks', |
|
|
data: [165, 189, 234, 278, 292, 301, 312], |
|
|
borderColor: 'rgb(59, 130, 246)', |
|
|
backgroundColor: 'rgba(59, 130, 246, 0.1)', |
|
|
tension: 0.4 |
|
|
}, { |
|
|
label: 'Failed Tasks', |
|
|
data: [8, 12, 6, 9, 4, 7, 5], |
|
|
borderColor: 'rgb(239, 68, 68)', |
|
|
backgroundColor: 'rgba(239, 68, 68, 0.1)', |
|
|
tension: 0.4 |
|
|
}] |
|
|
}, |
|
|
options: { |
|
|
responsive: true, |
|
|
maintainAspectRatio: false, |
|
|
plugins: { |
|
|
legend: { |
|
|
position: 'bottom' |
|
|
} |
|
|
} |
|
|
} |
|
|
}); |
|
|
|
|
|
|
|
|
const agentCtx = document.getElementById('agentUsageChart').getContext('2d'); |
|
|
new Chart(agentCtx, { |
|
|
type: 'doughnut', |
|
|
data: { |
|
|
labels: ['CodeAgent Pro', 'WriterAI', 'DataAnalyzer', 'DesignBot', 'SecurityGuard'], |
|
|
datasets: [{ |
|
|
data: [35, 28, 18, 12, 7], |
|
|
backgroundColor: [ |
|
|
'rgb(59, 130, 246)', |
|
|
'rgb(16, 185, 129)', |
|
|
'rgb(251, 146, 60)', |
|
|
'rgb(168, 85, 247)', |
|
|
'rgb(99, 102, 241)' |
|
|
] |
|
|
}] |
|
|
}, |
|
|
options: { |
|
|
responsive: true, |
|
|
maintainAspectRatio: false, |
|
|
plugins: { |
|
|
legend: { |
|
|
position: 'bottom' |
|
|
} |
|
|
} |
|
|
} |
|
|
}); |
|
|
</script> |
|
|
</body> |
|
|
</html> |