Files
lcbp3/specs/05-Engineering-Guidelines/README.md
T
admin 2f0d67d8b2
Build and Deploy / deploy (push) Successful in 7m11s
260317:0837 Refactor to n8n
2026-03-17 08:37:01 +07:00

5.8 KiB

🛠️ Implementation Specification

แนวทางการพัฬนาและมาตรฐานทางเทคนิคของระบบ LCBP3-DMS

เอกสารชุดนี้รวบรวมมาตรฐานการเขียนโปรแกรม แนวทางการพัฒนา และรายละเอียดการนำสถาปัตยกรรมไปใช้งานจริง ทั้งในส่วนของ Backend และ Frontend


📊 Document Status

Attribute Value
Version 1.8.1
Status Active
Last Updated 2026-03-16
Owner Nattanin Peancharoen
Classification Internal Technical Documentation

📚 Table of Contents


🎯 หลักการพัฒนาหลัก (Core Principles)

เพื่อให้ระบบมีความมั่นคง ยืดหยุ่น และดูแลรักษาง่าย การพัฒนาต้องยึดหลักการดังนี้:

  1. Type Safety Everywhere - ใช้ TypeScript อย่างเข้มงวด ห้ามใช้ any
  2. Modular Dependency - แยก Logic ตาม Module หลีกเลี่ยง Circular Dependency
  3. Idempotency - การสร้างหรือแก้ไขข้อมูลต้องรองรับการกดซ้ำได้ (Idempotency-Key)
  4. Security by Default - ตรวจสอบ Permission (RBAC) และ Validation ในทุก Endpoint
  5. Fail Fast & Log Everything - ดักจับ Error ตั้งแต่เนิ่นๆ และบันทึก Audit Logs ที่สำคัญ

📖 คู่มือการพัฒนา (Implementation Guides)

1. FullStack JS Guidelines

แนวทางการพัฒนาภาพรวมทั้งระบบ (v1.8.1 — includes NestJS 11 Patterns)

  • โครงสร้างโปรเจกต์ (Monorepo-like focus)
  • Naming Conventions & Code Style
  • Secrets & Environment Management
  • Two-Phase File Storage Algorithm
  • Double-Lock Mechanism for Numbering

2. Backend Guidelines

แนวทางการพัฒนา NestJS 11 Backend

  • Modular Architecture Detail
  • DTO Validation & Transformer
  • TypeORM Best Practices & Optimistic Locking
  • JWT Authentication & CASL Authorization
  • BullMQ for Background Jobs

3. Frontend Guidelines

แนวทางการพัฒนา Next.js 16 Frontend

  • App Router Patterns
  • Shadcn/UI & Tailwind Styling
  • TanStack Query for Data Fetching
  • React Hook Form + Zod for Client Validation
  • API Client Interceptors (Auth & Idempotency)

4. Document Numbering System

รายละเอียดการนำระบบออกเลขที่เอกสารไปใช้งาน

  • Table Schema: Templates, Counters, Audit
  • Double-Lock Strategy (Redis Redlock + Database VersionColumn)
  • Reservation Flow (Phase 1: Reserve, Phase 2: Confirm)
  • API Specs for Numbering Management

🧪 Testing Strategy

รายละเอียดอยู่ในเอกสาร: Testing Strategy

  • Unit Testing: NestJS (Jest), React (Vitest)
  • Integration Testing: API Endpoints (Supertest)
  • E2E Testing: Playwright สำหรับ Critical Flows
  • Special Tests: Concurrency Tests สำหรับ Document Numbering

🛠️ Technology Stack Recap

Layer Primary Technology Secondary/Supporting
Backend NestJS 11 (Express v5) TypeORM, BullMQ
Frontend Next.js 16 (React 19) Shadcn/UI, Tailwind
Database MariaDB 11.8 Redis 7 (Cache/Lock)
Search Elasticsearch -
Testing Jest, Vitest Playwright


LCBP3-DMS Implementation Specification v1.8.1

FullStackBackendFrontendTesting

Main READMEArchitectureRequirements