เวิร์กโฟลว์
งานสินค้าคงคลังและ POS เชื่อมการเคลื่อนไหวของสต็อกกับบันทึกการเงิน
กฎธุรกิจ
แยก Business Logic เป็น Domain Modules จาก Facade และ Database Queries
การคำนวณ
แยกฟังก์ชันคำนวณเป็น Pure Function เพื่อทดสอบด้วย Unit Test ได้อย่างอิสระ
การเปลี่ยนข้อมูล
ใช้ Prisma Transaction จัดกลุ่มการเปลี่ยนแปลงข้อมูลที่เกี่ยวข้องกัน
Shop Inventory & Sales Management System (Multi-tenant POS)
ระบบสินค้าคงคลังและ POS แบบ Multi-tenant เชื่อมโยงการเคลื่อนไหวของสต็อก บันทึกการเงิน และสิทธิ์ผู้ใช้ พัฒนาด้วย Next.js และ TypeScript โดยแยก Business Logic เป็น Domain และแยกส่วนคำนวณให้ทดสอบด้วย Unit Test ได้อย่างอิสระ
- Fullstack Developer
- Next.js 14, TypeScript, Prisma ORM, PostgreSQL, Vitest
ทดสอบการคำนวณโดยไม่ต้องรันทั้งแอปได้อย่างไร?
การเคลื่อนไหวของสต็อก บันทึกการเงิน และสิทธิ์ผู้ใช้มาพบกันในแอปเดียว ลองอ่านงานผ่านเวิร์กโฟลว์ กฎธุรกิจ การคำนวณ และการเปลี่ยนแปลงข้อมูล
ดูเบื้องหลังระบบนี้
หน้าแนะนำ Shop Inventory ERP พร้อมภาพตัวอย่าง Dashboard ภายในหน้า
หน้าที่รับผิดชอบ
- ออกแบบ System Architecture และ Database Schema ของระบบ
- ปรับปรุงโครงสร้างโค้ดด้วยรูปแบบ Facade และ Domain-Driven Design
- พัฒนาระบบยืนยันตัวตนและการตรวจสอบสิทธิ์ผู้ใช้งาน (RBAC)
- เขียน Logic การทำงานของระบบสินค้าคงคลังและระบบการเงิน
- เขียน Unit Test เพื่อตรวจสอบความถูกต้องของระบบตาม Business Requirements
- ตั้งค่าระบบ CI/CD และการนำระบบขึ้นใช้งานบน Vercel
การตัดสินใจด้านการออกแบบและพัฒนา
- ปรับปรุงโครงสร้าง Service Layer โดยแยกออกเป็น Subdomains ที่เล็กลง
- แยก Calculation Engine ออกมาเป็น Pure Function เพื่อให้ทดสอบได้ง่ายขึ้น
- ควบคุม Data Types ผ่านการใช้งาน TypeScript ร่วมกับ Zod
- ปรับแต่ง Prisma Query เพื่อบริหารจัดการ Connection Pool
ความสามารถหลัก
- ระบบ Multi-tenant แยกข้อมูลและการเข้าถึงของแต่ละร้านค้า
- โครงสร้าง Hybrid Domain-Driven Design แยกการทำงานของ Facade และ Core Business Logic
- ระบบ Database Transactions ผ่าน Prisma สำหรับควบคุมการทำงานพร้อมกัน (Concurrency)
- Stock Availability Engine เพื่อคำนวณและตัดสต็อกสินค้าแบบ Real-time
- ระบบบัญชีอัตโนมัติ สร้างบันทึกรายรับ-รายจ่ายและเอกสารภาษี
- ระบบจัดการสิทธิ์ผู้ใช้งาน (RBAC) ตามบทบาทหน้าที่
- ระบบ Audit Trail สำหรับเก็บบันทึกประวัติการทำรายการในระบบ
- การเขียน Unit Test เพื่อตรวจสอบการทำงานของฟังก์ชันหลัก (199 Test Cases)