
Great Start , nice setup.. Now maintain this build , and add two More pages. 1. Ai training and management, 2. The DeepCAL, a Powerful Freight Analyser (Logistics Calculator), that has shipping components and allows users to add and analyze more freight forwarder , it uses the engine the algorim to run it - Follow Up Deployment
bbc7de7
verified
<html lang="en"> | |
<head> | |
<meta charset="UTF-8"> | |
<meta name="viewport" content="width=device-width, initial-scale=1.0"> | |
<title>DeepCAL - Emergency Logistics Dashboard</title> | |
<script src="https://cdn.tailwindcss.com"></script> | |
<link rel="stylesheet" href="https://unpkg.com/[email protected]/dist/leaflet.css" /> | |
<script src="https://unpkg.com/[email protected]/dist/leaflet.js"></script> | |
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css"> | |
<script src="https://cdn.jsdelivr.net/npm/chart.js"></script> | |
<style> | |
.glow-card { | |
box-shadow: 0 0 20px rgba(59, 130, 246, 0.5); | |
transition: all 0.3s ease; | |
} | |
.glow-card:hover { | |
box-shadow: 0 0 30px rgba(59, 130, 246, 0.8); | |
transform: translateY(-5px); | |
} | |
.map-container { | |
height: 500px; | |
border-radius: 12px; | |
overflow: hidden; | |
} | |
.path-line { | |
stroke: #3b82f6; | |
stroke-width: 3; | |
stroke-dasharray: 10; | |
animation: dash 30s linear infinite; | |
} | |
@keyframes dash { | |
to { | |
stroke-dashoffset: 1000; | |
} | |
} | |
.pulse { | |
animation: pulse 2s infinite; | |
} | |
@keyframes pulse { | |
0% { | |
transform: scale(1); | |
opacity: 0.8; | |
} | |
70% { | |
transform: scale(1.05); | |
opacity: 1; | |
} | |
100% { | |
transform: scale(1); | |
opacity: 0.8; | |
} | |
} | |
.nav-item.active { | |
border-bottom: 3px solid #3b82f6; | |
} | |
.status-delivered { | |
background: linear-gradient(to right, #10b981, #34d399); | |
} | |
.status-in-transit { | |
background: linear-gradient(to right, #f59e0b, #fbbf24); | |
} | |
.status-pending { | |
background: linear-gradient(to right, #8b5cf6, #a78bfa); | |
} | |
</style> | |
</head> | |
<body class="bg-gray-50"> | |
<!-- Header --> | |
<header class="bg-gradient-to-r from-blue-900 to-indigo-900 text-white"> | |
<div class="container mx-auto px-4 py-6"> | |
<div class="flex flex-col md:flex-row justify-between items-center"> | |
<div class="flex items-center mb-4 md:mb-0"> | |
<div class="w-12 h-12 rounded-full bg-blue-600 flex items-center justify-center mr-4"> | |
<i class="fas fa-box-open text-2xl text-white"></i> | |
</div> | |
<div> | |
<h1 class="text-3xl font-bold">DeepCAL</h1> | |
<p class="text-blue-200">Intelligent Emergency Logistics System</p> | |
</div> | |
</div> | |
<div class="bg-black bg-opacity-30 rounded-xl px-4 py-2 flex items-center"> | |
<div class="w-3 h-3 rounded-full bg-green-500 mr-2 animate-pulse"></div> | |
<span class="font-semibold">Operational Status: <span class="text-green-400">Active</span></span> | |
</div> | |
</div> | |
</div> | |
</header> | |
<!-- Main Dashboard --> | |
<div class="container mx-auto px-4 py-6"> | |
<!-- Summary Cards --> | |
<div class="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-4 gap-6 mb-8"> | |
<div class="bg-white glow-card rounded-xl p-6"> | |
<div class="flex justify-between items-center"> | |
<div> | |
<p class="text-gray-500">Total Shipments</p> | |
<p class="text-3xl font-bold">87</p> | |
</div> | |
<div class="w-12 h-12 rounded-full bg-blue-100 flex items-center justify-center"> | |
<i class="fas fa-truck-loading text-blue-600 text-xl"></i> | |
</div> | |
</div> | |
<div class="mt-4"> | |
<div class="flex items-center text-sm"> | |
<span class="text-green-500 mr-2"><i class="fas fa-arrow-up"></i> 32%</span> | |
<span>from last month</span> | |
</div> | |
</div> | |
</div> | |
<div class="bg-white glow-card rounded-xl p-6"> | |
<div class="flex justify-between items-center"> | |
<div> | |
<p class="text-gray-500">Active Shipments</p> | |
<p class="text-3xl font-bold">15</p> | |
</div> | |
<div class="w-12 h-12 rounded-full bg-orange-100 flex items-center justify-center"> | |
<i class="fas fa-shipping-fast text-orange-600 text-xl"></i> | |
</div> | |
</div> | |
<div class="mt-4"> | |
<div class="flex items-center text-sm"> | |
<span class="text-blue-500 mr-2"><i class="fas fa-clock"></i></span> | |
<span>5 high priority</span> | |
</div> | |
</div> | |
</div> | |
<div class="bg-white glow-card rounded-xl p-6"> | |
<div class="flex justify-between items-center"> | |
<div> | |
<p class="text-gray-500">Avg. Delivery Time</p> | |
<p class="text-3xl font-bold">9.4</p> | |
<p class="text-gray-500 text-sm">days</p> | |
</div> | |
<div class="w-12 h-12 rounded-full bg-purple-100 flex items-center justify-center"> | |
<i class="fas fa-stopwatch text-purple-600 text-xl"></i> | |
</div> | |
</div> | |
<div class="mt-4"> | |
<div class="flex items-center text-sm"> | |
<span class="text-green-500 mr-2"><i class="fas fa-arrow-down"></i> 12%</span> | |
<span>improved efficiency</span> | |
</div> | |
</div> | |
</div> | |
<div class="bg-white glow-card rounded-xl p-6"> | |
<div class="flex justify-between items-center"> | |
<div> | |
<p class="text-gray-500">Response Accuracy</p> | |
<p class="text-3xl font-bold">96.2%</p> | |
</div> | |
<div class="w-12 h-12 rounded-full bg-green-100 flex items-center justify-center"> | |
<i class="fas fa-bullseye text-green-600 text-xl"></i> | |
</div> | |
</div> | |
<div class="mt-4"> | |
<div class="flex items-center text-sm"> | |
<span class="text-green-500 mr-2"><i class="fas fa-plus"></i></span> | |
<span>AI predictive model</span> | |
</div> | |
</div> | |
</div> | |
</div> | |
<!-- Map and Charts Section --> | |
<div class="grid grid-cols-1 lg:grid-cols-3 gap-6 mb-8"> | |
<!-- Map Container --> | |
<div class="lg:col-span-2 bg-white glow-card rounded-xl p-6"> | |
<div class="flex justify-between items-center mb-4"> | |
<h2 class="text-xl font-bold text-gray-800">Global Shipment Tracking</h2> | |
<div class="flex space-x-2"> | |
<button class="px-3 py-1 bg-blue-100 text-blue-700 rounded-lg text-sm font-medium">Air</button> | |
<button class="px-3 py-1 bg-gray-100 text-gray-700 rounded-lg text-sm font-medium">Sea</button> | |
<button class="px-3 py-1 bg-gray-100 text-gray-700 rounded-lg text-sm font-medium">Road</button> | |
</div> | |
</div> | |
<div id="map" class="map-container"></div> | |
</div> | |
<!-- Status and Distribution --> | |
<div class="flex flex-col space-y-6"> | |
<div class="bg-white glow-card rounded-xl p-6"> | |
<h2 class="text-xl font-bold text-gray-800 mb-4">Delivery Status</h2> | |
<div class="space-y-4"> | |
<div class="status-delivered text-white rounded-lg p-4"> | |
<div class="flex justify-between items-center"> | |
<span>Delivered</span> | |
<span class="font-bold">72</span> | |
</div> | |
<div class="w-full bg-white bg-opacity-30 h-2 rounded-full mt-2"> | |
<div class="bg-white h-2 rounded-full" style="width: 88%"></div> | |
</div> | |
</div> | |
<div class="status-in-transit text-white rounded-lg p-4"> | |
<div class="flex justify-between items-center"> | |
<span>In Transit</span> | |
<span class="font-bold">12</span> | |
</div> | |
<div class="w-full bg-white bg-opacity-30 h-2 rounded-full mt-2"> | |
<div class="bg-white h-2 rounded-full" style="width: 16%"></div> | |
</div> | |
</div> | |
<div class="status-pending text-white rounded-lg p-4"> | |
<div class="flex justify-between items-center"> | |
<span>Pending</span> | |
<span class="font-bold">3</span> | |
</div> | |
<div class="w-full bg-white bg-opacity-30 h-2 rounded-full mt-2"> | |
<div class="bg-white h-2 rounded-full" style="width: 4%"></div> | |
</div> | |
</div> | |
</div> | |
</div> | |
<div class="bg-white glow-card rounded-xl p-6"> | |
<h2 class="text-xl font-bold text-gray-800 mb-4">Resource Distribution</h2> | |
<canvas id="resourceChart"></canvas> | |
</div> | |
</div> | |
</div> | |
<!-- Shipment Table --> | |
<div class="bg-white glow-card rounded-xl p-6 mb-8"> | |
<div class="flex flex-col md:flex-row justify-between items-center mb-6"> | |
<h2 class="text-xl font-bold text-gray-800">Recent Emergency Shipments</h2> | |
<div class="mt-4 md:mt-0 w-full md:w-64"> | |
<div class="relative"> | |
<input type="text" placeholder="Search shipments..." class="w-full pl-10 pr-4 py-2 rounded-lg border border-gray-300 focus:outline-none focus:ring-2 focus:ring-blue-500"> | |
<i class="fas fa-search absolute left-3 top-3 text-gray-400"></i> | |
</div> | |
</div> | |
</div> | |
<div class="overflow-x-auto"> | |
<table class="min-w-full divide-y divide-gray-200"> | |
<thead class="bg-gray-50"> | |
<tr> | |
<th scope="col" class="px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider">Ref. No.</th> | |
<th scope="col" class="px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider">Description</th> | |
<th scope="col" class="px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider">Origin</th> | |
<th scope="col" class="px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider">Destination</th> | |
<th scope="col" class="px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider">Status</th> | |
<th scope="col" class="px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider">Mode</th> | |
<th scope="col" class="px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider">Actions</th> | |
</tr> | |
</thead> | |
<tbody class="bg-white divide-y divide-gray-200"> | |
<tr> | |
<td class="px-6 py-4 whitespace-nowrap"> | |
<span class="px-2 py-1 bg-blue-100 text-blue-800 rounded-md text-xs font-semibold">SR_24-001</span> | |
</td> | |
<td class="px-6 py-4 whitespace-nowrap">Cholera kits and Tents</td> | |
<td class="px-6 py-4 whitespace-nowrap">Kenya</td> | |
<td class="px-6 py-4 whitespace-nowrap">Zimbabwe</td> | |
<td class="px-6 py-4 whitespace-nowrap"> | |
<span class="px-2 py-1 bg-green-100 text-green-800 rounded-md text-xs font-semibold">Delivered</span> | |
</td> | |
<td class="px-6 py-4 whitespace-nowrap"> | |
<span class="px-2 py-1 bg-blue-100 text-blue-800 rounded-md text-xs font-semibold"> | |
<i class="fas fa-plane mr-1"></i> Air | |
</span> | |
</td> | |
<td class="px-6 py-4 whitespace-nowrap text-sm text-gray-500"> | |
<button class="text-blue-600 hover:text-blue-900 mr-3"> | |
<i class="fas fa-eye"></i> | |
</button> | |
<button class="text-blue-600 hover:text-blue-900"> | |
<i class="fas fa-download"></i> | |
</button> | |
</td> | |
</tr> | |
<tr> | |
<td class="px-6 py-4 whitespace-nowrap"> | |
<span class="px-2 py-1 bg-purple-100 text-purple-800 rounded-md text-xs font-semibold">SR_24-002</span> | |
</td> | |
<td class="px-6 py-4 whitespace-nowrap">ORS, Body bags, Masks</td> | |
<td class="px-6 py-4 whitespace-nowrap">Kenya</td> | |
<td class="px-6 py-4 whitespace-nowrap">Zambia</td> | |
<td class="px-6 py-4 whitespace-nowrap"> | |
<span class="px-2 py-1 bg-green-100 text-green-800 rounded-md text-xs font-semibold">Delivered</span> | |
</td> | |
<td class="px-6 py-4 whitespace-nowrap"> | |
<span class="px-2 py-1 bg-blue-100 text-blue-800 rounded-md text-xs font-semibold"> | |
<i class="fas fa-plane mr-1"></i> Air | |
</span> | |
</td> | |
<td class="px-6 py-4 whitespace-nowrap text-sm text-gray-500"> | |
<button class="text-blue-600 hover:text-blue-900 mr-3"> | |
<i class="fas fa-eye"></i> | |
</button> | |
<button class="text-blue-600 hover:text-blue-900"> | |
<i class="fas fa-download"></i> | |
</button> | |
</td> | |
</tr> | |
<tr> | |
<td class="px-6 py-4 whitespace-nowrap"> | |
<span class="px-2 py-1 bg-orange-100 text-orange-800 rounded-md text-xs font-semibold">SR_24-005</span> | |
</td> | |
<td class="px-6 py-4 whitespace-nowrap">Cholera kits, Tents</td> | |
<td class="px-6 py-4 whitespace-nowrap">Kenya</td> | |
<td class="px-6 py-4 whitespace-nowrap">Zimbabwe</td> | |
<td class="px-6 py-4 whitespace-nowrap"> | |
<span class="px-2 py-1 bg-yellow-100 text-yellow-800 rounded-md text-xs font-semibold">In Transit</span> | |
</td> | |
<td class="px-6 py-4 whitespace-nowrap"> | |
<span class="px-2 py-1 bg-gray-100 text-gray-800 rounded-md text-xs font-semibold"> | |
<i class="fas fa-ship mr-1"></i> Sea | |
</span> | |
</td> | |
<td class="px-6 py-4 whitespace-nowrap text-sm text-gray-500"> | |
<button class="text-blue-600 hover:text-blue-900 mr-3"> | |
<i class="fas fa-eye"></i> | |
</button> | |
<button class="text-blue-600 hover:text-blue-900"> | |
<i class="fas fa-download"></i> | |
</button> | |
</td> | |
</tr> | |
<tr> | |
<td class="px-6 py-4 whitespace-nowrap"> | |
<span class="px-2 py-1 bg-blue-100 text-blue-800 rounded-md text-xs font-semibold">SR_24-008</span> | |
</td> | |
<td class="px-6 py-4 whitespace-nowrap">Laboratory Items</td> | |
<td class="px-6 py-4 whitespace-nowrap">Kenya</td> | |
<td class="px-6 py-4 whitespace-nowrap">Madagascar</td> | |
<td class="px-6 py-4 whitespace-nowrap"> | |
<span class="px-2 py-1 bg-green-100 text-green-800 rounded-md text-xs font-semibold">Delivered</span> | |
</td> | |
<td class="px-6 py-4 whitespace-nowrap"> | |
<span class="px-2 py-1 bg-blue-100 text-blue-800 rounded-md text-xs font-semibold"> | |
<i class="fas fa-plane mr-1"></i> Air | |
</span> | |
</td> | |
<td class="px-6 py-4 whitespace-nowrap text-sm text-gray-500"> | |
<button class="text-blue-600 hover:text-blue-900 mr-3"> | |
<i class="fas fa-eye"></i> | |
</button> | |
<button class="text-blue-600 hover:text-blue-900"> | |
<i class="fas fa-download"></i> | |
</button> | |
</td> | |
</tr> | |
<tr> | |
<td class="px-6 py-4 whitespace-nowrap"> | |
<span class="px-2 py-1 bg-green-100 text-green-800 rounded-md text-xs font-semibold">SR_24-047</span> | |
</td> | |
<td class="px-6 py-4 whitespace-nowrap">RDT Covid 19 Kits</td> | |
<td class="px-6 py-4 whitespace-nowrap">Kenya</td> | |
<td class="px-6 py-4 whitespace-nowrap">Chad</td> | |
<td class="px-6 py-4 whitespace-nowrap"> | |
<span class="px-2 py-1 bg-yellow-100 text-yellow-800 rounded-md text-xs font-semibold">In Transit</span> | |
</td> | |
<td class="px-6 py-4 whitespace-nowrap"> | |
<span class="px-2 py-1 bg-blue-100 text-blue-800 rounded-md text-xs font-semibold"> | |
<i class="fas fa-plane mr-1"></i> Air | |
</span> | |
</td> | |
<td class="px-6 py-4 whitespace-nowrap text-sm text-gray-500"> | |
<button class="text-blue-600 hover:text-blue-900 mr-3"> | |
<i class="fas fa-eye"></i> | |
</button> | |
<button class="text-blue-600 hover:text-blue-900"> | |
<i class="fas fa-download"></i> | |
</button> | |
</td> | |
</tr> | |
</tbody> | |
</table> | |
</div> | |
<div class="flex items-center justify-between border-t border-gray-200 px-4 py-3 sm:px-6"> | |
<div class="flex flex-1 justify-between sm:hidden"> | |
<a href="#" class="relative inline-flex items-center rounded-md border border-gray-300 bg-white px-4 py-2 text-sm font-medium text-gray-700 hover:bg-gray-50">Previous</a> | |
<a href="#" class="relative ml-3 inline-flex items-center rounded-md border border-gray-300 bg-white px-4 py-2 text-sm font-medium text-gray-700 hover:bg-gray-50">Next</a> | |
</div> | |
<div class="hidden sm:flex sm:flex-1 sm:items-center sm:justify-between"> | |
<div> | |
<p class="text-sm text-gray-700"> | |
Showing <span class="font-medium">1</span> to <span class="font-medium">5</span> of <span class="font-medium">87</span> results | |
</p> | |
</div> | |
<div> | |
<nav class="isolate inline-flex -space-x-px rounded-md shadow-sm" aria-label="Pagination"> | |
<a href="#" class="relative inline-flex items-center rounded-l-md px-2 py-2 text-gray-400 ring-1 ring-inset ring-gray-300 hover:bg-gray-50 focus:z-20 focus:outline-offset-0"> | |
<span class="sr-only">Previous</span> | |
<i class="fas fa-chevron-left h-5 w-5"></i> | |
</a> | |
<a href="#" aria-current="page" class="relative z-10 inline-flex items-center bg-blue-600 text-white px-4 py-2 text-sm font-semibold focus:z-20 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-blue-600">1</a> | |
<a href="#" class="relative inline-flex items-center px-4 py-2 text-sm font-semibold text-gray-900 ring-1 ring-inset ring-gray-300 hover:bg-gray-50 focus:z-20 focus:outline-offset-0">2</a> | |
<a href="#" class="relative hidden items-center px-4 py-2 text-sm font-semibold text-gray-900 ring-1 ring-inset ring-gray-300 hover:bg-gray-50 focus:z-20 focus:outline-offset-0 md:inline-flex">3</a> | |
<a href="#" class="relative inline-flex items-center rounded-r-md px-2 py-2 text-gray-400 ring-1 ring-inset ring-gray-300 hover:bg-gray-50 focus:z-20 focus:outline-offset-0"> | |
<span class="sr-only">Next</span> | |
<i class="fas fa-chevron-right h-5 w-5"></i> | |
</a> | |
</nav> | |
</div> | |
</div> | |
</div> | |
</div> | |
<!-- AI Insight Panel --> | |
<div class="bg-gradient-to-r from-blue-600 to-indigo-700 text-white glow-card rounded-xl p-6 mb-8"> | |
<div class="flex flex-col md:flex-row items-start md:items-center justify-between"> | |
<div class="mb-4 md:mb-0"> | |
<div class="flex items-center mb-2"> | |
<div class="w-10 h-10 rounded-full bg-white bg-opacity-20 flex items-center justify-center mr-3"> | |
<i class="fas fa-robot text-xl"></i> | |
</div> | |
<h2 class="text-xl font-bold">DeepCAL AI Insights</h2> | |
</div> | |
<p class="opacity-80">Real-time logistics intelligence for optimal resource deployment</p> | |
</div> | |
<button class="px-4 py-2 bg-white text-blue-600 rounded-lg font-semibold hover:bg-gray-100 transition"> | |
Generate Report <i class="fas fa-arrow-right ml-2"></i> | |
</button> | |
</div> | |
<div class="grid grid-cols-1 md:grid-cols-3 gap-6 mt-6"> | |
<div class="bg-white bg-opacity-10 p-4 rounded-lg"> | |
<div class="flex justify-between items-start mb-2"> | |
<h3 class="font-medium">Prediction Accuracy</h3> | |
<i class="fas fa-chart-line"></i> | |
</div> | |
<p class="text-2xl font-bold">94.6%</p> | |
<div class="mt-2 text-sm opacity-80"> | |
<span class="text-green-400"><i class="fas fa-arrow-up"></i> 2.3%</span> from last week | |
</div> | |
</div> | |
<div class="bg-white bg-opacity-10 p-4 rounded-lg"> | |
<div class="flex justify-between items-start mb-2"> | |
<h3 class="font-medium">Risk Prediction</h3> | |
<i class="fas fa-exclamation-triangle"></i> | |
</div> | |
<p class="text-2xl font-bold">Medium</p> | |
<div class="mt-2 text-sm opacity-80"> | |
12 shipments with potential delays | |
</div> | |
</div> | |
<div class="bg-white bg-opacity-10 p-4 rounded-lg"> | |
<div class="flex justify-between items-start mb-2"> | |
<h3 class="font-medium">Cost Optimization</h3> | |
<i class="fas fa-dollar-sign"></i> | |
</div> | |
<p class="text-2xl font-bold">$24,500</p> | |
<div class="mt-2 text-sm opacity-80"> | |
Potential savings in next 30 days | |
</div> | |
</div> | |
</div> | |
</div> | |
<!-- Performance Overview --> | |
<div class="grid grid-cols-1 lg:grid-cols-2 gap-6 mb-8"> | |
<div class="bg-white glow-card rounded-xl p-6"> | |
<h2 class="text-xl font-bold text-gray-800 mb-4">Carrier Performance</h2> | |
<div class="space-y-4"> | |
<div> | |
<div class="flex justify-between mb-1"> | |
<span class="font-medium text-gray-700">Kuehne Nagel</span> | |
<span class="text-sm text-gray-500">98%</span> | |
</div> | |
<div class="w-full bg-gray-200 rounded-full h-2.5"> | |
<div class="bg-green-500 h-2.5 rounded-full" style="width: 98%"></div> | |
</div> | |
</div> | |
<div> | |
<div class="flex justify-between mb-1"> | |
<span class="font-medium text-gray-700">Kenya Airways</span> | |
<span class="text-sm text-gray-500">95%</span> | |
</div> | |
<div class="w-full bg-gray-200 rounded-full h-2.5"> | |
<div class="bg-green-500 h-2.5 rounded-full" style="width: 95%"></div> | |
</div> | |
</div> | |
<div> | |
<div class="flex justify-between mb-1"> | |
<span class="font-medium text-gray-700">Freight in Time</span> | |
<span class="text-sm text-gray-500">92%</span> | |
</div> | |
<div class="w-full bg-gray-200 rounded-full h-2.5"> | |
<div class="bg-green-500 h-2.5 rounded-full" style="width: 92%"></div> | |
</div> | |
</div> | |
<div> | |
<div class="flex justify-between mb-1"> | |
<span class="font-medium text-gray-700">Siginon Logistics</span> | |
<span class="text-sm text-gray-500">89%</span> | |
</div> | |
<div class="w-full bg-gray-200 rounded-full h-2.5"> | |
<div class="bg-green-500 h-2.5 rounded-full" style="width: 89%"></div> | |
</div> | |
</div> | |
<div> | |
<div class="flex justify-between mb-1"> | |
<span class="font-medium text-gray-700">DHL Express</span> | |
<span class="text-sm text-gray-500">87%</span> | |
</div> | |
<div class="w-full bg-gray-200 rounded-full h-2.5"> | |
<div class="bg-green-500 h-2.5 rounded-full" style="width: 87%"></div> | |
</div> | |
</div> | |
</div> | |
</div> | |
<div class="bg-white glow-card rounded-xl p-6"> | |
<div class="flex justify-between items-center mb-4"> | |
<h2 class="text-xl font-bold text-gray-800">Regional Response Time</h2> | |
<div class="flex items-center"> | |
<span class="text-sm text-gray-600 mr-2">Days:</span> | |
<span class="bg-blue-100 text-blue-800 px-2 py-1 rounded-md text-xs">Avg. 9.4</span> | |
</div> | |
</div> | |
<canvas id="regionChart"></canvas> | |
</div> | |
</div> | |
</div> | |
<!-- Footer --> | |
<footer class="bg-gray-800 text-white py-8"> | |
<div class="container mx-auto px-4"> | |
<div class="grid grid-cols-1 md:grid-cols-4 gap-8"> | |
<div> | |
<h3 class="text-lg font-bold mb-4">DeepCAL</h3> | |
<p class="text-gray-400">Optimizing emergency logistics through AI-driven intelligence and resilient decision-making.</p> | |
</div> | |
<div> | |
<h3 class="text-lg font-semibold mb-4">Systems</h3> | |
<ul class="space-y-2"> | |
<li><a href="#" class="text-gray-400 hover:text-white">Decision Engine</a></li> | |
<li><a href="#" class="text-gray-400 hover:text-white">AI Prediction</a></li> | |
<li><a href="#" class="text-gray-400 hover:text-white">Resource Tracking</a></li> | |
<li><a href="#" class="text-gray-400 hover:text-white">Risk Assessment</a></li> | |
</ul> | |
</div> | |
<div> | |
<h3 class="text-lg font-semibold mb-4">Resources</h3> | |
<ul class="space-y-2"> | |
<li><a href="#" class="text-gray-400 hover:text-white">Documentation</a></li> | |
<li><a href="#" class="text-gray-400 hover:text-white">API Reference</a></li> | |
<li><a href="#" class="text-gray-400 hover:text-white">Status Dashboard</a></li> | |
<li><a href="#" class="text-gray-400 hover:text-white">Support Center</a></li> | |
</ul> | |
</div> | |
<div> | |
<h3 class="text-lg font-semibold mb-4">Emergency Contact</h3> | |
<div class="flex items-center text-gray-400 mb-2"> | |
<i class="fas fa-phone mr-2"></i> | |
<span>+254 700 123 456</span> | |
</div> | |
<div class="flex items-center text-gray-400 mb-2"> | |
<i class="fas fa-envelope mr-2"></i> | |
<span>[email protected]</span> | |
</div> | |
<div class="flex space-x-4 mt-4"> | |
<a href="#" class="text-gray-400 hover:text-white"><i class="fab fa-twitter"></i></a> | |
<a href="#" class="text-gray-400 hover:text-white"><i class="fab fa-linkedin"></i></a> | |
<a href="#" class="text-gray-400 hover:text-white"><i class="fab fa-github"></i></a> | |
</div> | |
</div> | |
</div> | |
<div class="border-t border-gray-700 mt-8 pt-6 text-center text-gray-500 text-sm"> | |
© 2023 DeepCAL Emergency Response System. All rights reserved. | |
</div> | |
</div> | |
</footer> | |
<script> | |
// Initialize the map | |
document.addEventListener('DOMContentLoaded', function() { | |
// Setup map | |
const map = L.map('map').setView([0, 25], 3); | |
L.tileLayer('https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png', { | |
attribution: '© <a href="https://www.openstreetmap.org/copyright">OpenStreetMap</a> contributors' | |
}).addTo(map); | |
// Nairobi coordinates | |
const nairobi = L.latLng(1.2404475, 36.990054); | |
// Destination coordinates | |
const destinations = [ | |
{name: "Zimbabwe", coords: [-17.80269125, 31.08848075]}, | |
{name: "Zambia", coords: [15.4136414, 28.3174378]}, | |
{name: "Madagascar", coords: [-14.71204234, 47.50866443]}, | |
{name: "Comoros", coords: [11.7209701, 43.2413774]}, | |
{name: "South Sudan", coords: [7.86237248, 29.69490516]} | |
]; | |
// Add marker for Nairobi | |
const nairobiMarker = L.marker(nairobi).addTo(map) | |
.bindPopup('Nairobi Hub<br>Kenya') | |
.openPopup(); | |
// Add markers for destinations and create lines | |
destinations.forEach(dest => { | |
const marker = L.marker(dest.coords).addTo(map) | |
.bindPopup(`${dest.name}`); | |
// Create a polyline from Nairobi to destination | |
const line = L.polyline([nairobi, dest.coords], { | |
color: '#3b82f6', | |
dashArray: '10', | |
opacity: 0.7 | |
}).addTo(map); | |
}); | |
// Resource distribution chart | |
const resourceCtx = document.getElementById('resourceChart').getContext('2d'); | |
new Chart(resourceCtx, { | |
type: 'doughnut', | |
data: { | |
labels: ['Emergency Kits', 'Pharmaceuticals', 'Lab Supplies', 'PPE', 'Field Support'], | |
datasets: [{ | |
data: [35, 25, 20, 15, 5], | |
backgroundColor: [ | |
'rgba(59, 130, 246, 0.8)', | |
'rgba(16, 185, 129, 0.8)', | |
'rgba(139, 92, 246, 0.8)', | |
'rgba(245, 158, 11, 0.8)', | |
'rgba(239, 68, 68, 0.8)' | |
], | |
borderColor: [ | |
'rgba(59, 130, 246, 1)', | |
'rgba(16, 185, 129, 1)', | |
'rgba(139, 92, 246, 1)', | |
'rgba(245, 158, 11, 1)', | |
'rgba(239, 68, 68, 1)' | |
], | |
borderWidth: 1 | |
}] | |
}, | |
options: { | |
responsive: true, | |
plugins: { | |
legend: { | |
position: 'bottom' | |
} | |
} | |
} | |
}); | |
// Regional response time chart | |
const regionCtx = document.getElementById('regionChart').getContext('2d'); | |
new Chart(regionCtx, { | |
type: 'bar', | |
data: { | |
labels: ['East Africa', 'Southern Africa', 'West Africa', 'Central Africa', 'Indian Ocean'], | |
datasets: [{ | |
label: 'Avg. Delivery Days', | |
data: [4.2, 8.5, 12.8, 10.3, 7.2], | |
backgroundColor: 'rgba(59, 130, 246, 0.8)', | |
borderColor: 'rgba(59, 130, 246, 1)', | |
borderWidth: 1 | |
}] | |
}, | |
options: { | |
responsive: true, | |
plugins: { | |
legend: { | |
display: false | |
} | |
}, | |
scales: { | |
y: { | |
beginAtZero: true, | |
title: { | |
display: true, | |
text: 'Days' | |
} | |
} | |
} | |
} | |
}); | |
}); | |
</script> | |
<p style="border-radius: 8px; text-align: center; font-size: 12px; color: #fff; margin-top: 16px;position: fixed; left: 8px; bottom: 8px; z-index: 10; background: rgba(0, 0, 0, 0.8); padding: 4px 8px;">Made with <img src="https://enzostvs-deepsite.hf.space/logo.svg" alt="DeepSite Logo" style="width: 16px; height: 16px; vertical-align: middle;display:inline-block;margin-right:3px;filter:brightness(0) invert(1);"><a href="https://enzostvs-deepsite.hf.space" style="color: #fff;text-decoration: underline;" target="_blank" >DeepSite</a> - 🧬 <a href="https://enzostvs-deepsite.hf.space?remix=MoShow/uyi" style="color: #fff;text-decoration: underline;" target="_blank" >Remix</a></p></body> | |
</html> |