ข้ามไปยังเนื้อหาหลัก
ProgrammerThailand

ไอเดีย (Idea) idea recipe beginner

ไอเดีย #14: ระบบเก็บสูตรอาหารและวางแผนเมนูรายสัปดาห์

"เย็นนี้กินอะไรดี" เป็นคำถามที่ตอบยากที่สุดของหลายบ้าน พอคิดไม่ออกก็สั่งเดลิเวอรีซ้ำร้านเดิม หรือไปตลาดแล้วซื้อของมาเกิน ผักเน่าคาตู้เย็นทุกสัปดาห์ ส่วนสูตรต้มข่าของคุณแม่ก็จดอยู่ในสมุดเล่มเก่า หาไม่เจอตอนจะใช้ ระบบเก็บสูตรอาหารที่วางแผนเมนูรายสัปดาห์ แล้วรวมวัตถุดิบออกมาเป็นรายการซื้อของให้อัตโนมัติ เป็นโปรเจกต์ที่ทำแล้วได้ใช้เองในบ้านจริง ๆ

ใครจะใช้

  • คนทำอาหารประจำบ้าน — เก็บสูตร วางเมนู และเตรียมไปจ่ายตลาด
  • สมาชิกในบ้าน — ดูเมนูของสัปดาห์ และโหวตหรือขอเมนูที่อยากกิน
  • คนที่อยากคุมอาหาร — ดูภาพรวมว่าสัปดาห์นี้กินอะไรไปบ้าง

ฟีเจอร์ขั้นต่ำ (MVP)

  • CRUD สูตรอาหาร: ชื่อ หมวด จำนวนที่เสิร์ฟ ขั้นตอนการทำ และเวลาที่ใช้
  • วัตถุดิบของแต่ละสูตร แยกเป็นชื่อ ปริมาณ และหน่วย (กรัม ช้อนโต๊ะ ฟอง กำ)
  • ค้นหาสูตรจากชื่อหรือจากวัตถุดิบที่มีอยู่ในตู้เย็น
  • ตารางวางแผนเมนูรายสัปดาห์ เลือกสูตรลงช่องมื้อเช้า กลางวัน เย็น
  • สร้างรายการซื้อของ รวมวัตถุดิบซ้ำจากหลายเมนูให้เหลือบรรทัดเดียว และติ๊กได้ว่าซื้อแล้ว
  • ปรับจำนวนที่เสิร์ฟแล้วคำนวณปริมาณวัตถุดิบใหม่ให้อัตโนมัติ

ต่อยอดได้อีก

  • ระบบคลังวัตถุดิบในบ้าน หักของที่มีอยู่ออกจากรายการซื้อ
  • แจ้งเตือนวัตถุดิบใกล้หมดอายุ แล้วแนะนำสูตรที่ใช้ของนั้น
  • แชร์รายการซื้อของให้คนในบ้านผ่าน LINE
  • แอปมือถือด้วย Flutter ที่เปิดรายการซื้อของได้แม้อยู่ในตลาดที่สัญญาณไม่ดี

โครงข้อมูลตั้งต้น

  • recipes — id, user_id, name, category, servings, steps, cook_minutes
  • ingredients — id, name, default_unit
  • recipe_ingredients — recipe_id, ingredient_id, quantity, unit
  • meal_plans — id, user_id, plan_date, meal (breakfast/lunch/dinner), recipe_id, servings
  • shopping_items — id, user_id, week_start, ingredient_id, quantity, unit, is_bought

ระดับความยาก และสิ่งที่จะได้เรียนรู้

ระดับ มือใหม่ ใช้ Yii2 หรือ Laravel + MySQL/PostgreSQL ส่วนหน้าเว็บจะใช้ JavaScript ธรรมดาหรือ Vue ก็ได้ สิ่งที่จะได้เรียนรู้:

  • ความสัมพันธ์แบบ many-to-many ผ่านตารางกลาง
  • การ query แบบ GROUP BY เพื่อรวมวัตถุดิบจากหลายเมนู
  • การทำฟอร์มแบบเพิ่มแถวได้ (dynamic form) สำหรับวัตถุดิบ
  • การทำ UI ปฏิทินรายสัปดาห์แบบลากวาง

ข้อควรระวัง

  • เรื่องหน่วยเป็นกับดักใหญ่ "1 ถ้วย" กับ "200 กรัม" รวมกันตรง ๆ ไม่ได้ ควรเริ่มจากรวมเฉพาะหน่วยเดียวกันก่อน แล้วค่อยทำตารางแปลงหน่วย
  • ชื่อวัตถุดิบภาษาไทยสะกดได้หลายแบบ เช่น กระเทียม กับ กระเทียมไทย ควรให้เลือกจากรายการที่มีอยู่แทนการพิมพ์อิสระ
  • ถ้าเปิดให้หลายครอบครัวใช้ ต้องแยกข้อมูลแต่ละ user ให้ชัด อย่าให้เห็นสูตรส่วนตัวของคนอื่น

สายทำอาหารกับสายโค้ดที่เป็นคนเดียวกันมีไหมครับ อยากรู้ว่าจะจัดการเรื่องแปลงหน่วยแบบไหนให้ใช้ง่ายแต่ไม่ซับซ้อนเกินไป และถ้าเป็นคุณจะเพิ่มฟีเจอร์อะไรให้บ้านตัวเองได้ใช้จริง ทำแล้วเอามาแชร์ในกระทู้นี้ได้เลย

0 คะแนน

0 คำตอบ

ยังไม่มีคำตอบ

รู้คำตอบ? ช่วยแบ่งปันได้เลย

ตอบคำถามนี้

เข้าสู่ระบบเพื่อตอบคำถามและโหวต

เข้าสู่ระบบ สมัครสมาชิก