https://hackthecode.github.io/pu-foam-app/
Модерно приложение за изчисления и рецепти при производство на пенополиуретан (дунапрен). Данните се теглят на живо от Google Sheets таблицата при всяко отваряне.
- Калкулатор — материали на пуск и общо + плътност (кг/м³) от размерите и теглото на блока.
- Калибратор — двупосочно: обороти (RPM) ↔ количество (грамове), по коефициент от таблицата.
- Рецепти — браузър с търсачка по номер / вид / боя и детайлен изглед в кг и грамове.
- 33LV — амин/катализатор: грамове ↔ пулсове по калибровка гр/пулс.
- Тестов блок — мащабира рецепта към точно целево тегло (3/5/10 кг) със запазени пропорции.
- Сборен — до 10 рецепти × брой пускове: материали за всяка рецепта поотделно и общо за всички (+ себестойност, споделяне, сравнение със склада).
- Склад — наличности по суровина (кг), доставки с „+“, какво не достига за плана от „Сборен“, списък за поръчка, приспадане на плана.
- Печат / PDF — бутон в Калкулатор, Сборен, Склад и Тестов блок (в диалога за печат избери „Запази като PDF“).
- Избор на рецепта с търсене — по номер, вид или боя, навсякъде където се избира рецепта.
- Известие за нова версия — щом има обновление, излиза бутон „Обнови“.
node serve.js
После отвори: http://localhost:8123
- Качи папката на уеб хостинг с HTTPS (напр. GitHub Pages, Netlify, Vercel — безплатни).
Важно: за инсталиране и service worker е нужен HTTPS (или localhost).
- Отвори адреса в Chrome на телефона.
- Меню (⋮) → „Инсталиране на приложението“ / „Добави към началния екран“.
- Приложението се появява с икона и работи на цял екран като нативно.
- При всяко отваряне приложението тегли най-новите данни от таблицата (network-first, със заобикаляне на кеша).
- Без интернет работи с последно изтеглените данни (запазени локално).
- Бутонът ↻ горе вдясно обновява данните ръчно.
Google Sheets таблица (листове: Recipe, Formula, calibration, 33LV, Notes, Calculator). Калибровъчните коефициенти за калибратора се четат от листа Calculator (колона грамове/RPM).
index.html — обвивка и табове
css/styles.css — тъмна индустриална тема
js/config.js — ID на таблицата и URL логика
js/csv.js — CSV парсер + parseNum (европейски формат)
js/parse.js — модели от листовете
js/data.js — live-sync (мрежа + локален кеш)
js/app.js — логика на табовете
manifest.webmanifest — PWA манифест
sw.js — service worker (кешира само обвивката, НЕ данните)
icons/ — икони (PNG-тата са рендерирани от icon.svg)
serve.js — локален тест сървър
При всяка промяна по файловете вдигни CACHE в sw.js (напр. v9 → v10) и APP_VERSION в js/config.js.
Така отворените приложения показват бутон „Обнови“.
- Телефон: долна лента с Калкулатор, Сборен, Рецепти, Склад и меню „Още“ (Калибратор, 33LV, Тестов блок, Дневник).
- Компютър (от 960 px): странична лента с всички раздели и две колони — въвеждане вляво, резултати вдясно.