ระบบออกใบเสนอราคาแบบ modern minimal พร้อมฐานข้อมูลลูกค้า สินค้า ประวัติเอกสาร และลายเซ็นผู้อนุมัติ
- Frontend: HTML, CSS, JavaScript
- Database: Supabase
- Serverless: Netlify Functions (Python)
- Backend for Render: Flask + Gunicorn
- Hosting: Netlify or Render
- สร้างใบเสนอราคาและคำนวณยอดรวมอัตโนมัติ
- ฐานข้อมูลลูกค้า
- ฐานข้อมูลสินค้า
- ประวัติใบเสนอราคา
- ลายเซ็นผู้จัดทำฝังในหน้าเอกสาร
- อัปโหลดลายเซ็นผู้อนุมัติรายเอกสาร
- ดีไซน์ responsive พร้อมโหมดพิมพ์ / export PDF ผ่าน browser print
index.htmlหน้าเว็บหลักassets/app.jslogic ทั้งระบบassets/styles.cssงานออกแบบ UIapp.pyFlask app สำหรับ Renderrequirements.txtdependency สำหรับ Renderrender.yamlservice definition สำหรับ Rendernetlify/functions/quote_summary.pyฟังก์ชัน Python สำหรับคำนวณยอดรวมและแปลงยอดเป็นข้อความเงินบาทsupabase/schema.sqlโครงสร้างฐานข้อมูล
- สร้างโปรเจกต์ใน Supabase
- เปิด SQL Editor
- รันไฟล์
supabase/schema.sql - คัดลอก
Project URLและanon public key - เปิดเว็บ แล้วกดปุ่ม
ตั้งค่า Supabase - วางค่า URL และ Anon Key แล้วบันทึก
หมายเหตุ:
- เวอร์ชันนี้ใช้
anon keyฝั่งเว็บโดยตรง เพื่อให้ deploy บน Netlify ได้ง่าย - ถ้าจะใช้จริงในหลายผู้ใช้ ควรเพิ่มระบบ auth และจำกัด policy ให้รัดกุมกว่านี้
- สร้าง repository ใหม่บน GitHub
- อัปโหลดไฟล์ทั้งหมดในโฟลเดอร์นี้ขึ้น repo
- ไปที่ Netlify แล้วเลือก
Add new site>Import an existing project - เลือก repository นี้
- ตั้งค่า build ดังนี้
- Build command: เว้นว่าง
- Publish directory:
.
- Deploy
Netlify จะอ่านค่า netlify.toml อัตโนมัติและเปิดใช้ Python Function ที่อยู่ใน netlify/functions
อ้างอิงจาก Render Docs:
- Python web service ใช้
pip install -r requirements.txtเป็น build command และgunicorn app:appเป็น start command - Render web service ต้องเปิดพอร์ตสาธารณะและเหมาะกับแอป dynamic มากกว่าการใช้ static site เมื่อต้องมี backend route
วิธี deploy แบบสร้าง service ใหม่โดยไม่ทับของเดิม:
- ไปที่ Render Dashboard
- กด
New +>Web Service - เลือก repo
chayottha-debug/MyProject - ตั้งค่าดังนี้
- Name:
siwakit-quote-studio-renderหรือชื่อใหม่ที่คุณต้องการ - Runtime:
Python 3 - Build Command:
pip install -r requirements.txt - Start Command:
gunicorn app:app
- Name:
- กด Deploy
ถ้าคุณใช้ Blueprint บน Render ได้:
- ใน repo นี้มี
render.yamlให้แล้ว - คุณสามารถให้ Render สร้าง service ใหม่จากไฟล์นี้ได้เลย
- เพิ่มระบบ login ด้วย Supabase Auth
- เพิ่มการสร้าง PDF แบบเซิร์ฟเวอร์จริง
- เพิ่ม bucket สำหรับเก็บไฟล์ลายเซ็นแทนการเก็บ data URL
- เพิ่มเลขภาษี / ข้อมูลบริษัท / เทมเพลตหลายแบบ