Spaces:
Running
Ты — ведущий архитектор EdTech-платформ, full-stack разработчик, UX-дизайнер и визуальный сторителлер.
Browse filesПеред тобой задача — создать новое поколение образовательной веб-платформы по логистике:
динамичную, визуально впечатляющую, адаптивную и полностью автономную (HTML + CSS + JS + JSON, без серверной части).
Это должно выглядеть как готовый продукт, который можно сразу разместить на сервере и начать обучение.
🎯 Цель
Создать интерактивную цифровую платформу, где пользователи учатся логистике через:
визуальные сценарии и схемы;
интерактивные тесты и симуляции;
динамический контент с изображениями и мини-анимацией;
геймификацию и персональную аналитику прогресса.
🔧 Функциональные требования
Главный экран
Анимированный логотип и приветствие.
Кнопка Начать обучение → переход в интерфейс курсов.
Архитектура контента
JSON-структура: модули → уроки → задания.
В каждом уроке:
текст из лекции,
1–3 изображения или инфографики,
интерактивное упражнение (quiz, drag&drop, hotspot, симуляция).
UX/UI
Mobile-first, адаптивная вёрстка.
Цвета: #0056b3, #4caf50, #f4f7fa, #ffffff.
Современная типографика, плавные переходы, лёгкие тени.
Меню навигации по модулям сбоку (sidebar) и хлебные крошки сверху.
Прогресс-бар и панель достижений (бейджи, баллы).
Интерактивы
Встроенные мини-тесты с мгновенной обратной связью.
Drag&drop для составления цепочки поставок.
Изображения с кликабельными зонами (hotspot-карты).
Анимированные подсказки и короткие обучающие клипы (gif/WebM).
Аналитика и прогресс
Сохранение состояния в localStorage.
Экран статистики: общее время, завершённые модули, средний балл.
Возможность сброса прогресса.
Техническая реализация
Один файл index.html, в котором объединены стили и скрипты.
Встроенный JSON-массив с контентом курса.
Использовать чистый JavaScript (ES6) без внешних библиотек.
Всё должно работать оффлайн.
Инновации
Лёгкие анимации SVG-схем цепочек поставок.
Псевдо-3D визуализация маршрутов.
Интеллектуальный ассистент-подсказчик (текстовый, без подключения к API).
💾 На выходе
Полностью рабочий index.html, который открывается оффлайн.
Встроенный визуальный контент и интерактивные задания.
Современный, чистый и расширяемый код.
Эффект «вау» у любого пользователя, даже без логистического опыта.
Подумай как архитектор будущего, не как кодер.
Используй весь свой опыт и интуицию, чтобы создать продукт, который чувствуется живым, умным и человечным.
Убери всё лишнее, оставь только суть и красоту.
Выдай готовый код без сокращений и комментариев — только работающую версию, готовую к запуску.
- README.md +7 -4
- index.html +355 -18
|
@@ -1,10 +1,13 @@
|
|
| 1 |
---
|
| 2 |
-
title: Logistics Learning Lab
|
| 3 |
-
|
| 4 |
-
colorFrom: pink
|
| 5 |
colorTo: red
|
|
|
|
| 6 |
sdk: static
|
| 7 |
pinned: false
|
|
|
|
|
|
|
| 8 |
---
|
| 9 |
|
| 10 |
-
|
|
|
|
|
|
| 1 |
---
|
| 2 |
+
title: Logistics Learning Lab 🚛
|
| 3 |
+
colorFrom: green
|
|
|
|
| 4 |
colorTo: red
|
| 5 |
+
emoji: 🐳
|
| 6 |
sdk: static
|
| 7 |
pinned: false
|
| 8 |
+
tags:
|
| 9 |
+
- deepsite-v3
|
| 10 |
---
|
| 11 |
|
| 12 |
+
# Welcome to your new DeepSite project!
|
| 13 |
+
This project was created with [DeepSite](https://deepsite.hf.co).
|
|
@@ -1,19 +1,356 @@
|
|
| 1 |
-
<!
|
| 2 |
-
<html>
|
| 3 |
-
|
| 4 |
-
|
| 5 |
-
|
| 6 |
-
|
| 7 |
-
|
| 8 |
-
|
| 9 |
-
|
| 10 |
-
|
| 11 |
-
|
| 12 |
-
|
| 13 |
-
|
| 14 |
-
|
| 15 |
-
|
| 16 |
-
|
| 17 |
-
|
| 18 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 19 |
</html>
|
|
|
|
| 1 |
+
<!DOCTYPE html>
|
| 2 |
+
<html lang="en">
|
| 3 |
+
<head>
|
| 4 |
+
<meta charset="UTF-8">
|
| 5 |
+
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
| 6 |
+
<title>Logistics Learning Lab</title>
|
| 7 |
+
<script src="https://cdn.tailwindcss.com"></script>
|
| 8 |
+
<script src="https://unpkg.com/feather-icons"></script>
|
| 9 |
+
<script src="https://cdn.jsdelivr.net/npm/feather-icons/dist/feather.min.js"></script>
|
| 10 |
+
<script>
|
| 11 |
+
tailwind.config = {
|
| 12 |
+
theme: {
|
| 13 |
+
extend: {
|
| 14 |
+
colors: {
|
| 15 |
+
primary: '#0056b3',
|
| 16 |
+
secondary: '#4caf50',
|
| 17 |
+
}
|
| 18 |
+
}
|
| 19 |
+
}
|
| 20 |
+
}
|
| 21 |
+
</script>
|
| 22 |
+
<style>
|
| 23 |
+
@keyframes float {
|
| 24 |
+
0%, 100% { transform: translateY(0); }
|
| 25 |
+
50% { transform: translateY(-10px); }
|
| 26 |
+
}
|
| 27 |
+
.floating {
|
| 28 |
+
animation: float 3s ease-in-out infinite;
|
| 29 |
+
}
|
| 30 |
+
.progress-ring__circle {
|
| 31 |
+
transition: stroke-dashoffset 0.5s;
|
| 32 |
+
transform: rotate(-90deg);
|
| 33 |
+
transform-origin: 50% 50%;
|
| 34 |
+
}
|
| 35 |
+
.hotspot:hover .hotspot-tooltip {
|
| 36 |
+
opacity: 1;
|
| 37 |
+
transform: translateY(0);
|
| 38 |
+
}
|
| 39 |
+
.sidebar {
|
| 40 |
+
transition: all 0.3s ease;
|
| 41 |
+
}
|
| 42 |
+
</style>
|
| 43 |
+
</head>
|
| 44 |
+
<body class="bg-gray-50 font-sans">
|
| 45 |
+
<!-- Navigation -->
|
| 46 |
+
<nav class="bg-white shadow-sm fixed w-full z-10">
|
| 47 |
+
<div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8">
|
| 48 |
+
<div class="flex justify-between h-16">
|
| 49 |
+
<div class="flex items-center">
|
| 50 |
+
<div class="flex-shrink-0 flex items-center">
|
| 51 |
+
<div class="floating">
|
| 52 |
+
<svg width="40" height="40" viewBox="0 0 40 40" fill="none" xmlns="http://www.w3.org/2000/svg">
|
| 53 |
+
<path d="M20 40C31.0457 40 40 31.0457 40 20C40 8.9543 31.0457 0 20 0C8.9543 0 0 8.9543 0 20C0 31.0457 8.9543 40 20 40Z" fill="#0056b3"/>
|
| 54 |
+
<path d="M26 16L20 10L14 16" stroke="white" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
|
| 55 |
+
<path d="M20 30V10" stroke="white" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
|
| 56 |
+
<path d="M10 20L20 30L30 20" stroke="white" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
|
| 57 |
+
</svg>
|
| 58 |
+
</div>
|
| 59 |
+
<span class="ml-3 text-xl font-bold text-primary">Logistics Learning Lab</span>
|
| 60 |
+
</div>
|
| 61 |
+
</div>
|
| 62 |
+
<div class="hidden md:ml-6 md:flex md:items-center">
|
| 63 |
+
<button id="menu-btn" class="p-1 rounded-full text-primary hover:text-primary-dark focus:outline-none">
|
| 64 |
+
<i data-feather="menu"></i>
|
| 65 |
+
</button>
|
| 66 |
+
</div>
|
| 67 |
+
</div>
|
| 68 |
+
</div>
|
| 69 |
+
</nav>
|
| 70 |
+
|
| 71 |
+
<!-- Mobile Menu -->
|
| 72 |
+
<div id="mobile-menu" class="hidden md:hidden fixed inset-0 z-20 bg-white">
|
| 73 |
+
<div class="px-2 pt-2 pb-3 space-y-1 sm:px-3">
|
| 74 |
+
<a href="#" class="block px-3 py-2 rounded-md text-base font-medium text-primary bg-primary-light">Home</a>
|
| 75 |
+
<a href="#" class="block px-3 py-2 rounded-md text-base font-medium text-gray-600 hover:text-primary hover:bg-primary-light">Modules</a>
|
| 76 |
+
<a href="#" class="block px-3 py-2 rounded-md text-base font-medium text-gray-600 hover:text-primary hover:bg-primary-light">Progress</a>
|
| 77 |
+
<a href="#" class="block px-3 py-2 rounded-md text-base font-medium text-gray-600 hover:text-primary hover:bg-primary-light">Achievements</a>
|
| 78 |
+
</div>
|
| 79 |
+
</div>
|
| 80 |
+
|
| 81 |
+
<!-- Main Content -->
|
| 82 |
+
<div class="pt-16 flex">
|
| 83 |
+
<!-- Sidebar -->
|
| 84 |
+
<div id="sidebar" class="hidden md:block w-64 bg-white shadow-md fixed h-full overflow-auto sidebar">
|
| 85 |
+
<div class="p-4">
|
| 86 |
+
<h3 class="text-lg font-semibold text-gray-800">Course Modules</h3>
|
| 87 |
+
<div class="mt-4 space-y-2">
|
| 88 |
+
<div class="module-item p-2 rounded hover:bg-primary-light cursor-pointer">
|
| 89 |
+
<div class="flex items-center">
|
| 90 |
+
<div class="w-8 h-8 rounded-full bg-primary text-white flex items-center justify-center">1</div>
|
| 91 |
+
<span class="ml-3 text-gray-700">Introduction to Logistics</span>
|
| 92 |
+
</div>
|
| 93 |
+
</div>
|
| 94 |
+
<div class="module-item p-2 rounded hover:bg-primary-light cursor-pointer">
|
| 95 |
+
<div class="flex items-center">
|
| 96 |
+
<div class="w-8 h-8 rounded-full bg-gray-300 text-gray-600 flex items-center justify-center">2</div>
|
| 97 |
+
<span class="ml-3 text-gray-500">Supply Chain Basics</span>
|
| 98 |
+
</div>
|
| 99 |
+
</div>
|
| 100 |
+
<div class="module-item p-2 rounded hover:bg-primary-light cursor-pointer">
|
| 101 |
+
<div class="flex items-center">
|
| 102 |
+
<div class="w-8 h-8 rounded-full bg-gray-300 text-gray-600 flex items-center justify-center">3</div>
|
| 103 |
+
<span class="ml-3 text-gray-500">Transportation Modes</span>
|
| 104 |
+
</div>
|
| 105 |
+
</div>
|
| 106 |
+
<div class="module-item p-2 rounded hover:bg-primary-light cursor-pointer">
|
| 107 |
+
<div class="flex items-center">
|
| 108 |
+
<div class="w-8 h-8 rounded-full bg-gray-300 text-gray-600 flex items-center justify-center">4</div>
|
| 109 |
+
<span class="ml-3 text-gray-500">Warehouse Management</span>
|
| 110 |
+
</div>
|
| 111 |
+
</div>
|
| 112 |
+
<div class="module-item p-2 rounded hover:bg-primary-light cursor-pointer">
|
| 113 |
+
<div class="flex items-center">
|
| 114 |
+
<div class="w-8 h-8 rounded-full bg-gray-300 text-gray-600 flex items-center justify-center">5</div>
|
| 115 |
+
<span class="ml-3 text-gray-500">Inventory Control</span>
|
| 116 |
+
</div>
|
| 117 |
+
</div>
|
| 118 |
+
</div>
|
| 119 |
+
</div>
|
| 120 |
+
<div class="p-4 border-t">
|
| 121 |
+
<h3 class="text-lg font-semibold text-gray-800">Your Progress</h3>
|
| 122 |
+
<div class="mt-4 flex items-center">
|
| 123 |
+
<div class="relative w-16 h-16">
|
| 124 |
+
<svg class="w-16 h-16" viewBox="0 0 36 36">
|
| 125 |
+
<path class="text-gray-200" d="M18 2.0845
|
| 126 |
+
a 15.9155 15.9155 0 0 1 0 31.831
|
| 127 |
+
a 15.9155 15.9155 0 0 1 0 -31.831" fill="none" stroke-width="2" stroke-dasharray="100, 100"/>
|
| 128 |
+
<path class="progress-ring__circle text-primary" stroke-dasharray="25, 100" d="M18 2.0845
|
| 129 |
+
a 15.9155 15.9155 0 0 1 0 31.831
|
| 130 |
+
a 15.9155 15.9155 0 0 1 0 -31.831" fill="none" stroke-width="2" stroke-linecap="round"/>
|
| 131 |
+
<text x="18" y="20.5" text-anchor="middle" font-size="8" fill="#0056b3" font-weight="bold">25%</text>
|
| 132 |
+
</svg>
|
| 133 |
+
</div>
|
| 134 |
+
<div class="ml-4">
|
| 135 |
+
<p class="text-sm text-gray-600">Completed 1 of 5 modules</p>
|
| 136 |
+
<div class="w-full bg-gray-200 rounded-full h-2 mt-1">
|
| 137 |
+
<div class="bg-primary h-2 rounded-full" style="width: 25%"></div>
|
| 138 |
+
</div>
|
| 139 |
+
</div>
|
| 140 |
+
</div>
|
| 141 |
+
</div>
|
| 142 |
+
</div>
|
| 143 |
+
|
| 144 |
+
<!-- Content Area -->
|
| 145 |
+
<div class="flex-1 md:ml-64 p-5">
|
| 146 |
+
<!-- Hero Section -->
|
| 147 |
+
<div class="bg-gradient-to-r from-primary to-primary-dark rounded-xl p-8 text-white">
|
| 148 |
+
<h1 class="text-4xl font-bold mb-4">Master Logistics Like a Pro</h1>
|
| 149 |
+
<p class="text-xl mb-6">Interactive learning platform designed to take you from beginner to logistics expert</p>
|
| 150 |
+
<button class="bg-secondary hover:bg-secondary-dark text-white font-bold py-3 px-6 rounded-lg shadow-md transition duration-300">
|
| 151 |
+
Start Learning Now
|
| 152 |
+
</button>
|
| 153 |
+
</div>
|
| 154 |
+
|
| 155 |
+
<!-- Current Module -->
|
| 156 |
+
<div class="mt-8 bg-white rounded-xl shadow-md overflow-hidden">
|
| 157 |
+
<div class="p-6">
|
| 158 |
+
<div class="flex items-center">
|
| 159 |
+
<div class="w-10 h-10 rounded-full bg-primary text-white flex items-center justify-center">1</div>
|
| 160 |
+
<h2 class="ml-4 text-2xl font-bold text-gray-800">Introduction to Logistics</h2>
|
| 161 |
+
</div>
|
| 162 |
+
|
| 163 |
+
<div class="mt-6 grid md:grid-cols-3 gap-6">
|
| 164 |
+
<!-- Lesson Content -->
|
| 165 |
+
<div class="md:col-span-2">
|
| 166 |
+
<h3 class="text-xl font-semibold text-gray-800 mb-4">What is Logistics?</h3>
|
| 167 |
+
<p class="text-gray-600 mb-4">Logistics is the detailed coordination of complex operations involving people, facilities, or supplies. It's the management of the flow of things between the point of origin and the point of consumption to meet requirements of customers or corporations.</p>
|
| 168 |
+
|
| 169 |
+
<div class="bg-gray-50 p-4 rounded-lg my-4">
|
| 170 |
+
<div class="flex">
|
| 171 |
+
<div class="flex-shrink-0">
|
| 172 |
+
<i data-feather="info" class="text-primary"></i>
|
| 173 |
+
</div>
|
| 174 |
+
<div class="ml-3">
|
| 175 |
+
<p class="text-sm text-gray-600">Did you know? The term logistics comes from the Greek word "logistikos" meaning "skilled in calculating."</p>
|
| 176 |
+
</div>
|
| 177 |
+
</div>
|
| 178 |
+
</div>
|
| 179 |
+
|
| 180 |
+
<div class="relative mt-6 rounded-lg overflow-hidden">
|
| 181 |
+
<img src="http://static.photos/technology/1024x576/1" alt="Logistics Network" class="w-full h-auto">
|
| 182 |
+
<div class="absolute inset-0 flex items-center justify-center">
|
| 183 |
+
<button class="bg-white bg-opacity-90 rounded-full p-4 shadow-lg transform hover:scale-110 transition">
|
| 184 |
+
<i data-feather="play" class="text-primary"></i>
|
| 185 |
+
</button>
|
| 186 |
+
</div>
|
| 187 |
+
</div>
|
| 188 |
+
</div>
|
| 189 |
+
|
| 190 |
+
<!-- Interactive Elements -->
|
| 191 |
+
<div class="space-y-6">
|
| 192 |
+
<!-- Quiz Card -->
|
| 193 |
+
<div class="bg-white border border-gray-200 rounded-lg shadow-sm p-4">
|
| 194 |
+
<h4 class="font-medium text-gray-800 mb-3">Quick Check</h4>
|
| 195 |
+
<p class="text-sm text-gray-600 mb-3">Which of these is NOT part of logistics?</p>
|
| 196 |
+
<div class="space-y-3">
|
| 197 |
+
<div class="quiz-option p-3 border border-gray-200 rounded-lg cursor-pointer hover:bg-primary-light">
|
| 198 |
+
<span class="text-gray-700">Transportation</span>
|
| 199 |
+
</div>
|
| 200 |
+
<div class="quiz-option p-3 border border-gray-200 rounded-lg cursor-pointer hover:bg-primary-light">
|
| 201 |
+
<span class="text-gray-700">Warehousing</span>
|
| 202 |
+
</div>
|
| 203 |
+
<div class="quiz-option p-3 border border-gray-200 rounded-lg cursor-pointer hover:bg-primary-light correct-option">
|
| 204 |
+
<span class="text-gray-700">Product Design</span>
|
| 205 |
+
</div>
|
| 206 |
+
<div class="quiz-option p-3 border border-gray-200 rounded-lg cursor-pointer hover:bg-primary-light">
|
| 207 |
+
<span class="text-gray-700">Inventory Management</span>
|
| 208 |
+
</div>
|
| 209 |
+
</div>
|
| 210 |
+
<div id="quiz-feedback" class="hidden mt-3 p-2 rounded text-sm"></div>
|
| 211 |
+
</div>
|
| 212 |
+
|
| 213 |
+
<!-- Hotspot Image -->
|
| 214 |
+
<div class="bg-white border border-gray-200 rounded-lg shadow-sm p-4">
|
| 215 |
+
<h4 class="font-medium text-gray-800 mb-3">Click on the truck</h4>
|
| 216 |
+
<div class="relative">
|
| 217 |
+
<img src="http://static.photos/transportation/320x240/1" alt="Logistics Vehicle" class="w-full rounded">
|
| 218 |
+
<div class="hotspot absolute top-1/3 left-1/2 w-6 h-6 bg-white rounded-full border-2 border-primary flex items-center justify-center cursor-pointer">
|
| 219 |
+
<div class="w-2 h-2 bg-primary rounded-full"></div>
|
| 220 |
+
<div class="hotspot-tooltip absolute -top-8 left-1/2 transform -translate-x-1/2 -translate-y-full bg-white shadow-md p-2 rounded text-xs text-gray-700 opacity-0 transition-all duration-200">
|
| 221 |
+
Delivery Truck
|
| 222 |
+
</div>
|
| 223 |
+
</div>
|
| 224 |
+
</div>
|
| 225 |
+
</div>
|
| 226 |
+
</div>
|
| 227 |
+
</div>
|
| 228 |
+
|
| 229 |
+
<!-- Navigation -->
|
| 230 |
+
<div class="mt-8 flex justify-between">
|
| 231 |
+
<button class="flex items-center text-primary hover:text-primary-dark font-medium">
|
| 232 |
+
<i data-feather="chevron-left" class="mr-1"></i>
|
| 233 |
+
Previous
|
| 234 |
+
</button>
|
| 235 |
+
<button class="flex items-center bg-primary hover:bg-primary-dark text-white font-medium py-2 px-4 rounded-lg">
|
| 236 |
+
Next Lesson
|
| 237 |
+
<i data-feather="chevron-right" class="ml-1"></i>
|
| 238 |
+
</button>
|
| 239 |
+
</div>
|
| 240 |
+
</div>
|
| 241 |
+
</div>
|
| 242 |
+
|
| 243 |
+
<!-- Achievements -->
|
| 244 |
+
<div class="mt-8">
|
| 245 |
+
<h2 class="text-2xl font-bold text-gray-800 mb-4">Your Achievements</h2>
|
| 246 |
+
<div class="grid grid-cols-2 md:grid-cols-4 gap-4">
|
| 247 |
+
<div class="bg-white p-4 rounded-lg shadow-sm text-center">
|
| 248 |
+
<div class="w-16 h-16 mx-auto bg-primary-light rounded-full flex items-center justify-center">
|
| 249 |
+
<i data-feather="award" class="text-primary"></i>
|
| 250 |
+
</div>
|
| 251 |
+
<h4 class="mt-2 text-sm font-medium text-gray-800">First Steps</h4>
|
| 252 |
+
<p class="text-xs text-gray-500">Completed first lesson</p>
|
| 253 |
+
</div>
|
| 254 |
+
<div class="bg-white p-4 rounded-lg shadow-sm text-center opacity-50">
|
| 255 |
+
<div class="w-16 h-16 mx-auto bg-gray-100 rounded-full flex items-center justify-center">
|
| 256 |
+
<i data-feather="check-circle" class="text-gray-400"></i>
|
| 257 |
+
</div>
|
| 258 |
+
<h4 class="mt-2 text-sm font-medium text-gray-400">Module Master</h4>
|
| 259 |
+
<p class="text-xs text-gray-400">Complete a module</p>
|
| 260 |
+
</div>
|
| 261 |
+
<div class="bg-white p-4 rounded-lg shadow-sm text-center opacity-50">
|
| 262 |
+
<div class="w-16 h-16 mx-auto bg-gray-100 rounded-full flex items-center justify-center">
|
| 263 |
+
<i data-feather="star" class="text-gray-400"></i>
|
| 264 |
+
</div>
|
| 265 |
+
<h4 class="mt-2 text-sm font-medium text-gray-400">Quick Learner</h4>
|
| 266 |
+
<p class="text-xs text-gray-400">Finish in top 25%</p>
|
| 267 |
+
</div>
|
| 268 |
+
<div class="bg-white p-4 rounded-lg shadow-sm text-center opacity-50">
|
| 269 |
+
<div class="w-16 h-16 mx-auto bg-gray-100 rounded-full flex items-center justify-center">
|
| 270 |
+
<i data-feather="zap" class="text-gray-400"></i>
|
| 271 |
+
</div>
|
| 272 |
+
<h4 class="mt-2 text-sm font-medium text-gray-400">Speed Demon</h4>
|
| 273 |
+
<p class="text-xs text-gray-400">Fast completion</p>
|
| 274 |
+
</div>
|
| 275 |
+
</div>
|
| 276 |
+
</div>
|
| 277 |
+
</div>
|
| 278 |
+
</div>
|
| 279 |
+
|
| 280 |
+
<script>
|
| 281 |
+
// Course data
|
| 282 |
+
const courseData = {
|
| 283 |
+
modules: [
|
| 284 |
+
{
|
| 285 |
+
id: 1,
|
| 286 |
+
title: "Introduction to Logistics",
|
| 287 |
+
completed: true,
|
| 288 |
+
lessons: [
|
| 289 |
+
{
|
| 290 |
+
title: "What is Logistics?",
|
| 291 |
+
content: "Logistics is the detailed coordination of complex operations involving people, facilities, or supplies...",
|
| 292 |
+
completed: true
|
| 293 |
+
},
|
| 294 |
+
{
|
| 295 |
+
title: "History of Logistics",
|
| 296 |
+
content: "Logistics has been a key element of military strategy since ancient times...",
|
| 297 |
+
completed: false
|
| 298 |
+
}
|
| 299 |
+
]
|
| 300 |
+
},
|
| 301 |
+
{
|
| 302 |
+
id: 2,
|
| 303 |
+
title: "Supply Chain Basics",
|
| 304 |
+
completed: false,
|
| 305 |
+
lessons: [
|
| 306 |
+
{
|
| 307 |
+
title: "Supply Chain Components",
|
| 308 |
+
content: "A supply chain is a network between a company and its suppliers...",
|
| 309 |
+
completed: false
|
| 310 |
+
}
|
| 311 |
+
]
|
| 312 |
+
}
|
| 313 |
+
],
|
| 314 |
+
achievements: [
|
| 315 |
+
{ id: 1, name: "First Steps", description: "Completed first lesson", earned: true },
|
| 316 |
+
{ id: 2, name: "Module Master", description: "Complete a module", earned: false }
|
| 317 |
+
]
|
| 318 |
+
};
|
| 319 |
+
|
| 320 |
+
// Initialize UI elements
|
| 321 |
+
document.addEventListener('DOMContentLoaded', function() {
|
| 322 |
+
feather.replace();
|
| 323 |
+
|
| 324 |
+
// Toggle mobile menu
|
| 325 |
+
document.getElementById('menu-btn').addEventListener('click', function() {
|
| 326 |
+
const menu = document.getElementById('mobile-menu');
|
| 327 |
+
menu.classList.toggle('hidden');
|
| 328 |
+
});
|
| 329 |
+
|
| 330 |
+
// Quiz interaction
|
| 331 |
+
document.querySelectorAll('.quiz-option').forEach(option => {
|
| 332 |
+
option.addEventListener('click', function() {
|
| 333 |
+
const feedback = document.getElementById('quiz-feedback');
|
| 334 |
+
|
| 335 |
+
if (this.classList.contains('correct-option')) {
|
| 336 |
+
feedback.textContent = 'Correct! Product design is not part of logistics.';
|
| 337 |
+
feedback.classList.remove('bg-red-100', 'text-red-700');
|
| 338 |
+
feedback.classList.add('bg-green-100', 'text-green-700');
|
| 339 |
+
} else {
|
| 340 |
+
feedback.textContent = 'Incorrect. Try again!';
|
| 341 |
+
feedback.classList.remove('bg-green-100', 'text-green-700');
|
| 342 |
+
feedback.classList.add('bg-red-100', 'text-red-700');
|
| 343 |
+
}
|
| 344 |
+
|
| 345 |
+
feedback.classList.remove('hidden');
|
| 346 |
+
});
|
| 347 |
+
});
|
| 348 |
+
|
| 349 |
+
// Save progress to localStorage
|
| 350 |
+
if (!localStorage.getItem('logisticsProgress')) {
|
| 351 |
+
localStorage.setItem('logisticsProgress', JSON.stringify(courseData));
|
| 352 |
+
}
|
| 353 |
+
});
|
| 354 |
+
</script>
|
| 355 |
+
</body>
|
| 356 |
</html>
|