# Project Overview: LCBP3 Document Management System (V1.4.1)

นี่คือภาพรวมของระบบบริหารจัดการเอกสารโครงการ (DMS) V1.4.1 ที่กำลังพัฒนาสำหรับโครงการแหลมฉบังเฟส 3 (LCBP3) เป้าหมายหลักคือการสร้างเว็บแอปพลิเคชั่นที่ทันสมัย ปลอดภัย และมีประสิทธิภาพสูงเพื่อจัดการและควบคุมการสื่อสารด้วยเอกสารที่ซับซ้อน ลดการใช้กระดาษ และเพิ่มความสะดวกในการทำงานร่วมกันระหว่างองค์กร

## Key Performance Indicators (KPIs)

### API Response Time

< 200ms

(90th Percentile)

### Search Performance

< 500ms

(Elasticsearch)

### File Upload (50MB)

< 30s

(Inc. Virus Scan)

### Cache Hit Ratio

> 80%

(Redis)

## System Architecture & Technology Stack

สถาปัตยกรรมระบบเป็นแบบ API-First ที่ทำงานบน QNAP Container Station (Docker) โดยมีการแบ่งส่วนบริการ (Services) อย่างชัดเจน เพื่อความสะดวกในการจัดการและบำรุงรักษา

Internet User
→
↓
QNAP (WAN)
→
↓
Nginx Proxy Manager

### Public Facing Services (ผ่าน NPM)

Frontend (Next.js)
Backend (NestJS)
Gitea (Git)
n8n (Automation)

### Internal Services (Backend เรียกใช้)

MariaDB (Database)
Redis (Cache)
Elasticsearch (Search)
ClamAV (Virus Scan)

## Development Roadmap

แผนการพัฒนาถูกแบ่งออกเป็น Phase (Backend) และ Sprints (Frontend) เพื่อให้สามารถส่งมอบงานได้อย่างต่อเนื่องและเป็นระบบ

### Backend (NestJS)

#### Phase 0-1: Setup & Core

Infrastructure, DB Schema, ORM

#### Phase 2-3: Auth & RBAC

JWT, Passport, CASL 4-Level

#### Phase 4-5: Core Features

Document Upload, RFA Workflow

#### Phase 6-8: Integration & Deploy

Search, Cache, Notification, Deploy

### Frontend (Next.js)

#### Sprint 1-2: Setup & Auth

shadcn/ui, NextAuth, Layout

#### Sprint 3: Dashboard

Charts (Recharts), KPIs

#### Sprint 4-5: Document Module

TanStack Table, Upload, Search

#### Sprint 6-7: Workflow & Deploy

RFA Forms, Testing, Deploy

## Feature Focus: 4-Level RBAC

ระบบควบคุมสิทธิ์ (RBAC) เป็นหัวใจสำคัญของความปลอดภัย โดยใช้สถาปัตยกรรม 4 ระดับ (4-Level) เพื่อการควบคุมที่ละเอียดสูงสุด

🌍 Level 1: Global

(Super Admin, System Settings)

🏢 Level 2: Organization

(Org Admin, Manage Users & Projects)

🏗️ Level 3: Project

(Project Manager, View All Project Docs)

📄 Level 4: Contract

(Contractor, Access Own Contract Docs Only)

## Document Statistics (Mockup Data)

Dashboard จะแสดงสถิติเอกสารแบบ Real-time (อ้างอิงจาก View: `v_document_statistics` ในฐานข้อมูล) เพื่อช่วยในการติดตามและบริหารจัดการโครงการ

### เอกสารตามประเภท (By Type)

แสดงจำนวนเอกสารทั้งหมดโดยแบ่งตามประเภทหลัก ช่วยให้เห็นภาพรวมของเอกสารในระบบ

### สถานะเอกสาร (By Status)

แสดงสัดส่วนของสถานะเอกสารในปัจจุบัน (เช่น ร่าง, รออนุมัติ, อนุมัติแล้ว) เพื่อติดตาม Workflow