Starter SaaS & ERP Platform
แพลตฟอร์ม Multi-tenant ERP/SaaS พร้อมระบบเชื่อมต่อ LINE API สั่งซื้อผ่าน LIFF และระบบแยกข้อมูลระดับองค์กร (Data Isolation)
1. Overview
ระบบ Multi-tenant ERP/SaaS Boilerplate ที่ทำงานด้วยรูปแบบ Monorepo (Vue 3 Client + Express API) ภายในมีโมดูลระดับ Enterprise ครบถ้วน เช่น การขาย (Sales), การจัดซื้อ (Purchasing), คลังสินค้า (Inventory), บัญชี (Accounting) และ HRMS
2. Engineering Highlights
- Architecture: สถาปัตยกรรม Monorepo (
npm-workspaces) แยกฝั่ง Vue 3 (Vite + Pinia) Frontend และ Express REST API Backend พร้อมเชื่อมต่อฐานข้อมูลผ่าน Sequelize ORM - State & Data Flow: จัดการ Client State ด้วย Pinia Store, ตรวจสอบ Payload ผ่าน Express Validator และส่ง Event แบบ Real-time ด้วย Socket.IO ร่วมกับ Redis Adapter
- Key Challenge & Solution: การรับ Inbound Webhook จาก LINE Messaging API และระบบออกใบเสนอราคาผ่าน LIFF; แก้ปัญหาด้วยการทำ HMAC-SHA256 Signature Verification เพื่อตรวจสอบความถูกต้องของ Webhook ป้องกัน Replay Attack พร้อมระบบเรนเดอร์ Dynamic Flex Messages ส่งใบเสนอราคา/แจ้งเตือนคำสั่งซื้ออัตโนมัติ และต่อท่อผ่าน Cloudflare Tunnel อย่างปลอดภัยโดยไม่ต้องเปิด Public Port
3. Context & Problem
การพัฒนาระบบ SaaS ใหม่ตั้งแต่ต้นมีกระบวนการที่ซ้ำซ้อนและมักจะเกิดข้อผิดพลาดด้านโครงสร้าง โค้ดที่ดูแลรักษายาก โดยเฉพาะเรื่องความปลอดภัยในการแยกข้อมูลระหว่างองค์กร (Multi-tenancy) และความซับซ้อนในการจัดการ Webhook จากภายนอก
4. Goal
สร้างและดูแล SaaS Template ที่พร้อมเอาไปใช้ต่อยอดรับงานหรือทำโปรดักต์ได้จริง โดยตั้งเป้าให้ระบบรองรับ Use case การค้าในภูมิภาคเอเชีย ผ่านการผสานการทำงานอย่างลึกซึ้งกับ LINE Messaging API และระบบสั่งซื้อผ่าน LIFF
5. My Role & What I Built
ดูแลและต่อยอดสถาปัตยกรรมหลักของโปรเจกต์ในฐานะ Fork (Manchinn/starter-saas):
- LINE Integration: พัฒนาระบบรับ LINE Webhook และทำระบบการสั่งซื้อสินค้าผ่าน LIFF (LINE Front-end Framework) ให้เชื่อมกับฐานข้อมูล ERP ด้านหลังโดยตรง
- Core Features: พัฒนาระบบ Real-time alerts (Socket.IO), Stock Ledger (ตัดสต๊อก), และระบบแจ้งเตือนลูกค้าอัตโนมัติ
- Full-Stack Development: บริหารจัดการ Node.js, Express, Sequelize (Backend) และ Vue 3 (Frontend) ในโครงสร้างแบบ
npm-workspaces
6. Result & Current State
ระบบนี้ถูก Deploy และทำงานอยู่บนเครือข่ายจริง ปัจจุบันถูกใช้เป็นเทมเพลตตัวอย่าง (Demo) ในแบรนด์ “MaeKade” รันอยู่บนเซิร์ฟเวอร์ VPS ส่วนตัวผ่าน Docker และ Cloudflare Tunnel ได้อย่างสมบูรณ์แบบ
7. Demo & Code
- Demo (Live): https://demo.cslogbook.me
- GitHub: Manchinn/starter-saas