# 📋 **แผนการพัฒนา Frontend (Next.js) - LCBP3-DMS v1.5.1** **สถานะ:** DRAFT **วันที่:** 2025-12-04 **อ้างอิง:** Requirements v1.5.1 & FullStackJS Guidelines v1.5.1 **Classification:** Internal Technical Documentation --- ## 🎯 **ภาพรวมโครงการ (Project Overview)** พัฒนา Frontend สำหรับระบบบริหารจัดการเอกสารโครงการ (Document Management System) เวอร์ชัน 1.5.1 โดยเน้นการรองรับฟีเจอร์ใหม่ใน Backend v1.5.1 ได้แก่ **Unified Workflow Engine**, **Advanced Document Numbering**, และ **Enhanced Master Data Management** พร้อมทั้งปรับปรุง UX/UI ให้ทันสมัยและใช้งานง่าย --- ## 📐 **สถาปัตยกรรมระบบ (System Architecture)** ### **Technology Stack** - **Framework:** Next.js 14+ (App Router, React 18, TypeScript) - **Styling:** Tailwind CSS + Shadcn/UI - **State Management:** - **Server:** TanStack Query (React Query) - **Client:** Zustand - **Form:** React Hook Form + Zod - **Workflow Visualization:** ReactFlow (สำหรับ Workflow Builder) - **Editor:** Monaco Editor (สำหรับ DSL Editing) - **Validation:** Zod + AJV (JSON Schema) ### **โครงสร้างโมดูล (Module Structure)** ``` 📁src ├── 📁app │ ├── 📁(auth) # Login, Forgot Password │ ├── 📁(dashboard) # Main App Layout │ │ ├── 📁admin # Admin Panel (Users, Master Data, Config) │ │ ├── 📁correspondences │ │ ├── 📁rfas │ │ ├── 📁drawings │ │ ├── 📁transmittals │ │ ├── 📁circulations │ │ └── 📁tasks │ └── 📁api # NextAuth & Proxy ├── 📁components │ ├── 📁admin # Admin-specific components │ ├── 📁workflow # Workflow Builder & Visualizer │ ├── 📁numbering # Numbering Template Editor │ └── 📁ui # Shadcn UI Components └── 📁lib ├── 📁api # API Clients └── 📁stores # Zustand Stores ``` --- ## 🗓️ **แผนการพัฒนาแบบ Phase-Based** ### **Phase 1: Foundation & UI Components (Week 1)** **Goal:** เตรียมโครงสร้างโปรเจกต์และ Component พื้นฐาน #### **[ ] F1.1 Project Setup & Design System** - **Tasks:** - [ ] Setup Next.js 14 + Tailwind + Shadcn/UI - [ ] Configure Axios with **Idempotency Interceptor** - [ ] Implement Base Layout (Sidebar, Navbar, Breadcrumbs) - [ ] Setup **TanStack Query** & **Zustand** #### **[ ] F1.2 Authentication UI** - **Tasks:** - [ ] Login Page with Form Validation - [ ] Integrate NextAuth.js with Backend - [ ] Implement RBAC Guard (Protect Routes based on Permissions) --- ### **Phase 2: Admin & Master Data (Week 2-3)** **Goal:** ระบบจัดการผู้ใช้และข้อมูลหลัก (รองรับ v1.5.1 Requirements) #### **[ ] F2.1 User & Role Management** - **Tasks:** - [ ] User List & CRUD (Admin only) - [ ] Role Assignment UI - [ ] Permission Matrix Viewer #### **[ ] F2.2 Enhanced Master Data UI** - **Tasks:** - [ ] **Organization Management:** CRUD + Logo Upload - [ ] **Project & Contract Management:** CRUD + Relations - [ ] **[NEW] Discipline Management:** CRUD for `disciplines` - [ ] **[NEW] Sub-Type Management:** CRUD for `correspondence_sub_types` #### **[ ] F2.3 System Configuration** - **Tasks:** - [ ] **[NEW] Document Numbering Config:** - Template Editor (Monaco/Visual) - Sequence Viewer - [ ] **[NEW] Workflow Configuration:** - Workflow List - DSL Editor (Monaco) - Visual Builder (ReactFlow) --- ### **Phase 3: Core Modules (Week 4-5)** **Goal:** โมดูลหลัก Correspondence และ RFA #### **[ ] F3.1 Correspondence Module** - **Tasks:** - [ ] List View with Advanced Filters - [ ] **Create/Edit Form:** - Add **Discipline Selector** (Dynamic based on Contract) - Add **Sub-Type Selector** (Dynamic based on Type) - File Upload (Two-Phase) - [ ] Detail View with History & Comments #### **[ ] F3.2 RFA Module** - **Tasks:** - [ ] RFA List & Dashboard - [ ] **Dynamic RFA Form:** - Fields change based on RFA Type (DWG, MAT, MES) - Item List Management - [ ] **Approval Interface:** - Approve/Reject/Comment Actions - Workflow Status Visualization --- ### **Phase 4: Advanced Modules (Week 6-7)** **Goal:** โมดูล Drawing, Transmittal และ Circulation #### **[ ] F4.1 Drawing Module** - **Tasks:** - [ ] Shop Drawing & Contract Drawing Lists - [ ] Revision Management UI - [ ] Drawing Viewer (PDF/Image) #### **[ ] F4.2 Transmittal Module** - **Tasks:** - [ ] Transmittal Creation Form (Select Documents to send) - [ ] Transmittal Letter Preview (PDF Generation) - [ ] Transmittal History #### **[ ] F4.3 Circulation Module** - **Tasks:** - [ ] Circulation Sheet Creation (Select Assignees) - [ ] "My Tasks" Dashboard for Circulation - [ ] Completion & Tracking UI --- ### **Phase 5: Search & Dashboard (Week 8)** **Goal:** การค้นหาและหน้า Dashboard #### **[ ] F5.1 Advanced Search** - **Tasks:** - [ ] Unified Search Interface (Elasticsearch) - [ ] Faceted Filters (Type, Date, Project, Status) #### **[ ] F5.2 Dashboard & Monitoring** - **Tasks:** - [ ] Personal Dashboard (My Tasks, Pending Approvals) - [ ] Project Dashboard (KPIs, Stats) - [ ] **Admin Audit Logs Viewer** --- ## 🛡️ **Security & Performance Guidelines** 1. **Client-Side Validation:** ใช้ Zod Validate Form ก่อนส่งเสมอ 2. **Optimistic Updates:** ใช้ React Query `onMutate` เพื่อความลื่นไหล 3. **Code Splitting:** ใช้ `React.lazy` และ `Next.js Dynamic Imports` สำหรับ Component ใหญ่ๆ (เช่น Monaco Editor, ReactFlow) 4. **Secure Storage:** ห้ามเก็บ Token ใน LocalStorage (ใช้ HttpOnly Cookie ผ่าน NextAuth) --- **End of Frontend Plan V1.5.1**