Skip to content

Repository files navigation

🌾 Sourdough — เครื่องคำนวณ & จับเวลา

Mobile-first PWA สำหรับคนทำขนมปัง Sourdough — คำนวณทุกอย่างที่ต้องคิดตั้งแต่ตั้งสูตรจนออกจากเตา ติดตั้งบนมือถือได้เหมือนแอปจริง ใช้งานได้แบบ offline

เปิดใช้งาน: https://dixonsatit.github.io/sourdough-app/


ทำอะไรได้บ้าง

แอปแบ่งเป็น 5 แท็บ ครอบคลุมการคำนวณหลักของ sourdough:

1. สูตร — Baker's Math

  • ใส่ baker's percentage (แป้ง = 100%) → แปลงเป็นกรัมทุกส่วน
  • คิดจากได้ 3 แบบ: น้ำหนักแป้ง / น้ำหนักโดว์รวม / จำนวนก้อน × น้ำหนักต่อก้อน
  • หักแป้ง–น้ำที่มาจาก starter อัตโนมัติ เพื่อให้ hydration รวม "ตรงเป๊ะ"
  • รองรับ starter hydration อื่น (ไม่ใช่ 100%) และส่วนผสมเพิ่ม (เมล็ด/โฮลวีต ฯลฯ)
  • บันทึกเป็น preset เรียกใช้ทีหลัง (เก็บใน localStorage)
  • แชร์สูตร — export เป็นลิงก์ + QR code (encode ทั้งสูตรใน URL, offline) · เปิดลิงก์/สแกน QR แล้วโหลดสูตรอัตโนมัติ · นำเข้าด้วยการวางลิงก์ก็ได้

2. สูตร% — Professional Baker's Formula

สูตรมือโปรแบบ 3 ตาราง (เหมือนในตำราเบเกอรี่):

  • Overall Formula — ส่วนผสมทั้งหมด (แป้งหลายชนิด, น้ำ, เกลือ, inclusions) เป็น baker's % เทียบแป้งรวม = 100%
  • Liquid Levain — คำนวณจาก prefermented flour % (เช่น 10% fermented flour) + levain hydration + seed %
  • Final Dough — สิ่งที่ต้องชั่งเข้าโดว์จริง = Overall − แป้ง/น้ำที่อยู่ใน levain (% เทียบแป้งในโดว์สุดท้าย)
  • แก้แป้ง/inclusions หลายชนิดได้ · scale ตามแป้งรวม/โดว์รวม/จำนวนก้อน
  • ปุ่ม (i) อธิบายความหมายของตัวเลขแต่ละตาราง · บันทึก preset + แชร์ลิงก์/QR เหมือนแท็บสูตร

3. น้ำ/อุณหภูมิ — DDT & Levain

  • Desired Dough Temperature (DDT): คำนวณอุณหภูมิน้ำที่ต้องใช้เพื่อคุมอุณหภูมิโดว์ให้ได้เป้า waterTemp = DDT × N − (แป้ง + ห้อง + levain) − friction
  • Levain build: จากอัตราส่วนป้อน (1:2:2, 1:5:5, 1:10:10) → ปริมาณที่ต้องชั่ง + เวลาถึง peak โดยประมาณ

4. ตารางเวลา — Schedule

  • บอกเวลาที่อยากได้ขนมปังเสร็จ → คำนวณย้อนกลับว่าต้องเริ่มลงมือกี่โมง
  • ครบทุกสเต็ป: levain → autolyse → mix → bulk (+stretch & fold) → pre-shape → shape → proof → อบ → พักเย็น
  • รองรับทั้ง cold proof (แช่ตู้เย็นข้ามคืน) และ proof อุณหภูมิห้อง
  • bulk ปรับตามอุณหภูมิด้วยโมเดล Q10

5. จับเวลา — Bulk Timer

  • ทำนายช่วงเวลา bulk fermentation จากอุณหภูมิ/hydration/starter (โมเดล Q10)
  • ไทม์ไลน์สด + เสียงเตือนเมื่อถึงเวลาสังเกตโดว์ / เลยช่วง
  • แจ้งเตือน (system notification) — เด้งเตือนตอนโดว์เข้าช่วงพร้อม แม้สลับไปแอปอื่น
    • รองรับ Notification Triggers (Chrome/Edge/Android) → เด้งแม้ปิดแอป · เครื่องที่ไม่รองรับใช้ตัวจับเวลาสำรอง (เด้งตอนแอปยังรันเบื้องหลัง)
    • iOS ต้อง Add to Home Screen ก่อนถึงจะเปิดสิทธิ์ได้
  • Aliquot tracking — บันทึก % การขึ้นของโดว์

ทั้งแท็บ สูตร และ สูตร% มีปุ่ม "รูปเมนู" สร้างการ์ดสูตรสวยๆ (PNG สไตล์เมนูตำรา พร้อม QR ในตัว) ดาวน์โหลด/แชร์ได้ — วาดบน canvas เอง ไม่พึ่ง CDN

  • เก็บประวัติการอบ และ เรียนรู้ปรับโมเดลให้คุณ อัตโนมัติเมื่อบันทึกครบ 3 ครั้ง

⚠️ ทุกการคำนวณเป็น "ตัวช่วยประมาณการ" — สภาพโดว์จริงเป็นตัวตัดสินเสมอ


โมเดลการคำนวณ

หัวข้อ สูตร
Baker's % ทุกอย่างเทียบน้ำหนักแป้ง (แป้ง = 100%)
Hydration water / flour × 100
DDT → water temp DDT × N − Σ(อุณหภูมิอื่น) − friction (N=4 มี levain, N=3 ไม่มี)
Fermentation t = t_ref × Q10^((T_ref − T)/10) × f(starter) × f(hydration) · baseline 27°C/20%/75% → 180 น. · Q10 ≈ 2

โค้ดคำนวณทั้งหมดอยู่ที่ src/lib/dough.js


เทคโนโลยี

  • Vite 6 + React 18
  • Tailwind CSS 3
  • vite-plugin-pwa (Workbox) — offline + Add to Home Screen
  • lucide-react icons
  • persistence ด้วย localStorage

รันในเครื่อง

npm install
npm run gen-icons   # สร้าง PNG icon จาก favicon.svg (ครั้งแรก)
npm run dev         # เปิด dev server
npm run build       # build ไป dist/
npm run preview     # ดู production build

Deploy

Push ขึ้น branch main แล้ว GitHub Actions (.github/workflows/deploy.yml) จะ build และ deploy ขึ้น GitHub Pages ให้อัตโนมัติ

ตั้งค่าใน repo: Settings → Pages → Source = GitHub Actions


License

MIT

About

Mobile PWA คำนวณสูตร & จับเวลาทำขนมปัง Sourdough — baker's math, DDT, ตารางเวลา, Q10 bulk timer

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages