Files

🛠️ Implementation Specification

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

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


📊 Document Status

Attribute Value
Version 1.8.6
Status Active
Last Updated 2026-04-10
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

5. Git Conventions

มาตรฐานการใช้ Git และ Commit Messages

  • Branch Naming (feature/, fix/, hotfix/)
  • Commit Message Format (Conventional Commits)
  • PR/Merge กระบวนการ
  • Git Cheatsheet — คำสั่งที่ใช้บ่อย

6. Code Snippets

ตัวอย่างโค้ดที่ใช้ซ้ำบ่อย (Reusable Patterns)

  • Backend DTO Pattern with @IsUUID()
  • Frontend RHF + Zod Form Pattern
  • UUID Safe Pattern
  • Backend Error Handling Pattern
  • Workflow Transition Pattern
  • Redis Cache Pattern
  • Frontend TanStack Query Pattern

7. UUID Implementation Plan

แผนการ Implement Hybrid Identifier (ADR-019)

  • Migration Strategy (INT → UUIDv7)
  • Backend: UuidBaseEntity Pattern
  • Frontend: publicId Usage Guidelines
  • API Response Standardization

8. i18n Guidelines

แนวทางการทำ Localization

  • i18n Key Structure (Thai/English)
  • Error Message Keys vs Hardcoded Text
  • Frontend Locale Organization
  • Comments Language Policy (Thai for business, English for technical)

🧪 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.2.0 (React 19.2.4) Shadcn/UI, Tailwind 4.2.2
Database MariaDB 11.8 Redis 7 (Cache/Lock)
Search Elasticsearch -
Testing Jest, Vitest Playwright


LCBP3-DMS Implementation Specification v1.8.6

FullStackBackendFrontendTestingGitSnippetsUUIDi18n

Main READMEArchitectureRequirements