Replace CLI + SQLite architecture with a Go web server + vanilla JS frontend using IndexedDB for all client-side data storage. - Remove: cli, store, report, static packages - Add: compute engine (BuildDashboard), server package, web UI - Add: setup page with CRUD for profiles, rooms, devices, occupants, AC - Add: dashboard with SVG temperature timeline, risk analysis, care checklist - Add: i18n support (English/German) with server-side Go templates - Add: LLM provider selection UI with client-side API key storage - Add: per-room indoor temperature, edit buttons, language-aware AI summary
88 lines
4.1 KiB
HTML
88 lines
4.1 KiB
HTML
{{define "content"}}
|
|
<div class="max-w-3xl mx-auto space-y-8">
|
|
<h1 class="text-2xl font-bold">{{t "guide.title"}}</h1>
|
|
<p class="text-gray-600 dark:text-gray-400">{{t "guide.intro"}}</p>
|
|
|
|
<div class="space-y-6">
|
|
<section class="bg-white dark:bg-gray-800 rounded-xl p-5 shadow-sm">
|
|
<h2 class="text-lg font-semibold mb-2">{{t "guide.step1.title"}}</h2>
|
|
<p class="text-sm text-gray-600 dark:text-gray-400">{{t "guide.step1.text"}}</p>
|
|
</section>
|
|
|
|
<section class="bg-white dark:bg-gray-800 rounded-xl p-5 shadow-sm">
|
|
<h2 class="text-lg font-semibold mb-2">{{t "guide.step2.title"}}</h2>
|
|
<p class="text-sm text-gray-600 dark:text-gray-400">{{t "guide.step2.text"}}</p>
|
|
</section>
|
|
|
|
<section class="bg-white dark:bg-gray-800 rounded-xl p-5 shadow-sm">
|
|
<h2 class="text-lg font-semibold mb-2">{{t "guide.step3.title"}}</h2>
|
|
<p class="text-sm text-gray-600 dark:text-gray-400">{{t "guide.step3.text"}}</p>
|
|
</section>
|
|
|
|
<section class="bg-white dark:bg-gray-800 rounded-xl p-5 shadow-sm">
|
|
<h2 class="text-lg font-semibold mb-2">{{t "guide.step4.title"}}</h2>
|
|
<p class="text-sm text-gray-600 dark:text-gray-400">{{t "guide.step4.text"}}</p>
|
|
</section>
|
|
|
|
<section class="bg-white dark:bg-gray-800 rounded-xl p-5 shadow-sm">
|
|
<h2 class="text-lg font-semibold mb-2">{{t "guide.step5.title"}}</h2>
|
|
<p class="text-sm text-gray-600 dark:text-gray-400">{{t "guide.step5.text"}}</p>
|
|
</section>
|
|
|
|
<section class="bg-white dark:bg-gray-800 rounded-xl p-5 shadow-sm">
|
|
<h2 class="text-lg font-semibold mb-2">{{t "guide.step6.title"}}</h2>
|
|
<p class="text-sm text-gray-600 dark:text-gray-400">{{t "guide.step6.text"}}</p>
|
|
</section>
|
|
</div>
|
|
|
|
<div class="space-y-6">
|
|
<h2 class="text-xl font-bold">{{t "guide.params.title"}}</h2>
|
|
<div class="bg-white dark:bg-gray-800 rounded-xl p-5 shadow-sm space-y-3">
|
|
<p class="text-sm text-gray-600 dark:text-gray-400">{{t "guide.params.shgc"}}</p>
|
|
<p class="text-sm text-gray-600 dark:text-gray-400">{{t "guide.params.ventilation"}}</p>
|
|
<p class="text-sm text-gray-600 dark:text-gray-400">{{t "guide.params.shading"}}</p>
|
|
<p class="text-sm text-gray-600 dark:text-gray-400">{{t "guide.params.orientation"}}</p>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="space-y-6">
|
|
<h2 class="text-xl font-bold">{{t "guide.risk.title"}}</h2>
|
|
<div class="bg-white dark:bg-gray-800 rounded-xl p-5 shadow-sm space-y-3">
|
|
<div class="flex items-center gap-2">
|
|
<span class="w-3 h-3 rounded-full bg-green-500"></span>
|
|
<p class="text-sm text-gray-600 dark:text-gray-400">{{t "guide.risk.low"}}</p>
|
|
</div>
|
|
<div class="flex items-center gap-2">
|
|
<span class="w-3 h-3 rounded-full bg-yellow-500"></span>
|
|
<p class="text-sm text-gray-600 dark:text-gray-400">{{t "guide.risk.moderate"}}</p>
|
|
</div>
|
|
<div class="flex items-center gap-2">
|
|
<span class="w-3 h-3 rounded-full bg-orange-500"></span>
|
|
<p class="text-sm text-gray-600 dark:text-gray-400">{{t "guide.risk.high"}}</p>
|
|
</div>
|
|
<div class="flex items-center gap-2">
|
|
<span class="w-3 h-3 rounded-full bg-red-600"></span>
|
|
<p class="text-sm text-gray-600 dark:text-gray-400">{{t "guide.risk.extreme"}}</p>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="space-y-6">
|
|
<h2 class="text-xl font-bold">{{t "guide.budget.title"}}</h2>
|
|
<div class="bg-white dark:bg-gray-800 rounded-xl p-5 shadow-sm">
|
|
<p class="text-sm text-gray-600 dark:text-gray-400">{{t "guide.budget.text"}}</p>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="space-y-6">
|
|
<h2 class="text-xl font-bold">{{t "guide.tips.title"}}</h2>
|
|
<div class="bg-white dark:bg-gray-800 rounded-xl p-5 shadow-sm space-y-2">
|
|
<p class="text-sm text-gray-600 dark:text-gray-400">{{t "guide.tips.tip1"}}</p>
|
|
<p class="text-sm text-gray-600 dark:text-gray-400">{{t "guide.tips.tip2"}}</p>
|
|
<p class="text-sm text-gray-600 dark:text-gray-400">{{t "guide.tips.tip3"}}</p>
|
|
<p class="text-sm text-gray-600 dark:text-gray-400">{{t "guide.tips.tip4"}}</p>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
{{end}}
|