# 🛠ïļ Implementation Specification > **āđāļ™āļ§āļ—āļēāļ‡āļāļēāļĢāļžāļąāļŽāļ™āļēāđāļĨāļ°āļĄāļēāļ•āļĢāļāļēāļ™āļ—āļēāļ‡āđ€āļ—āļ„āļ™āļīāļ„āļ‚āļ­āļ‡āļĢāļ°āļšāļš LCBP3-DMS** > > āđ€āļ­āļāļŠāļēāļĢāļŠāļļāļ”āļ™āļĩāđ‰āļĢāļ§āļšāļĢāļ§āļĄāļĄāļēāļ•āļĢāļāļēāļ™āļāļēāļĢāđ€āļ‚āļĩāļĒāļ™āđ‚āļ›āļĢāđāļāļĢāļĄ āđāļ™āļ§āļ—āļēāļ‡āļāļēāļĢāļžāļąāļ’āļ™āļē āđāļĨāļ°āļĢāļēāļĒāļĨāļ°āđ€āļ­āļĩāļĒāļ”āļāļēāļĢāļ™āļģāļŠāļ–āļēāļ›āļąāļ•āļĒāļāļĢāļĢāļĄāđ„āļ›āđƒāļŠāđ‰āļ‡āļēāļ™āļˆāļĢāļīāļ‡ āļ—āļąāđ‰āļ‡āđƒāļ™āļŠāđˆāļ§āļ™āļ‚āļ­āļ‡ Backend āđāļĨāļ° Frontend --- ## 📊 Document Status | Attribute | Value | | ------------------ | -------------------------------- | | **Version** | 1.7.0 | | **Status** | Active | | **Last Updated** | 2025-12-18 | | **Owner** | Nattanin Peancharoen | | **Classification** | Internal Technical Documentation | --- ## 📚 Table of Contents - [āļŦāļĨāļąāļāļāļēāļĢāļžāļąāļ’āļ™āļēāļŦāļĨāļąāļ (Core Principles)](#-āļŦāļĨāļąāļāļāļēāļĢāļžāļąāļ’āļ™āļēāļŦāļĨāļąāļ-core-principles) - [āļ„āļđāđˆāļĄāļ·āļ­āļāļēāļĢāļžāļąāļ’āļ™āļē (Implementation Guides)](#-āļ„āļđāđˆāļĄāļ·āļ­āļāļēāļĢāļžāļąāļ’āļ™āļē-implementation-guides) - [āļĄāļēāļ•āļĢāļāļēāļ™āļāļēāļĢāđ€āļ‚āļĩāļĒāļ™āđ‚āļ›āļĢāđāļāļĢāļĄ (Coding Standards)](#-āļĄāļēāļ•āļĢāļāļēāļ™āļāļēāļĢāđ€āļ‚āļĩāļĒāļ™āđ‚āļ›āļĢāđāļāļĢāļĄ-coding-standards) - [Technology Stack Recap](#-technology-stack-recap) - [Testing Strategy](#-testing-strategy) - [Related Documents](#-related-documents) --- ## ðŸŽŊ āļŦāļĨāļąāļāļāļēāļĢāļžāļąāļ’āļ™āļēāļŦāļĨāļąāļ (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](./03-01-fullftack-js-v1.7.0.md) **āđāļ™āļ§āļ—āļēāļ‡āļāļēāļĢāļžāļąāļ’āļ™āļēāļ āļēāļžāļĢāļ§āļĄāļ—āļąāđ‰āļ‡āļĢāļ°āļšāļš (v1.7.0)** - āđ‚āļ„āļĢāļ‡āļŠāļĢāđ‰āļēāļ‡āđ‚āļ›āļĢāđ€āļˆāļāļ•āđŒ (Monorepo-like focus) - Naming Conventions & Code Style - Secrets & Environment Management - Two-Phase File Storage Algorithm - Double-Lock Mechanism for Numbering ### 2. [Backend Guidelines](./03-02-backend-guidelines.md) **āđāļ™āļ§āļ—āļēāļ‡āļāļēāļĢāļžāļąāļ’āļ™āļē NestJS Backend** - Modular Architecture Detail - DTO Validation & Transformer - TypeORM Best Practices & Optimistic Locking - JWT Authentication & CASL Authorization - BullMQ for Background Jobs ### 3. [Frontend Guidelines](./03-03-frontend-guidelines.md) **āđāļ™āļ§āļ—āļēāļ‡āļāļēāļĢāļžāļąāļ’āļ™āļē Next.js 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](./03-04-document-numbering.md) **āļĢāļēāļĒāļĨāļ°āđ€āļ­āļĩāļĒāļ”āļāļēāļĢāļ™āļģāļĢāļ°āļšāļšāļ­āļ­āļāđ€āļĨāļ‚āļ—āļĩāđˆāđ€āļ­āļāļŠāļēāļĢāđ„āļ›āđƒāļŠāđ‰āļ‡āļēāļ™** - 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](./03-05-testing-strategy.md)** - **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 (Node.js) | TypeORM, BullMQ | | **Frontend** | Next.js 14+ | Shadcn/UI, Tailwind | | **Database** | MariaDB 11.8 | Redis 7 (Cache/Lock) | | **Search** | Elasticsearch | - | | **Testing** | Jest, Vitest | Playwright | --- ## 🔗 Related Documents - 📋 [Requirements Specification](../01-requirements/README.md) - 🏗ïļ [Architecture Specification](../02-architecture/README.md) - 🚀 [Operations Specification](../04-operations/README.md) - ðŸŽŊ [Active Tasks](../06-tasks/README.md) ---
**LCBP3-DMS Implementation Specification v1.7.0** [FullStack](./03-01-fullftack-js-v1.7.0.md) â€Ē [Backend](./03-02-backend-guidelines.md) â€Ē [Frontend](./03-03-frontend-guidelines.md) â€Ē [Testing](./03-05-testing-strategy.md) [Main README](../../README.md) â€Ē [Architecture](../02-architecture/README.md) â€Ē [Requirements](../01-requirements/README.md)