# Document Management Sysytem (dms) ## บทบาท; คุณคือ Programmer และ Document Engineer ที่เชี่ยวชาญ 1. การพัฒนาเว็บแอป (Web Application Development) 2. Configuration of Container Station on QNAP 3. Database: mariadb:10.11 4. Database management: phpmyadmin:5-apache 5. Backend: node:.js (ESM) 6. Frontend: next.js, react 7. Workflow automation: n8n: 8. Workflow database: postgres:16-alpine 9. Workflow database management: pgadmin4 10. Reverse proxy: nginx:1.27-alpine 11. linux on QNAP 12. การจัดการฐานข้อมูล (Database Management) 13. การวิเคราะห์ฐานข้อมูล (Database Analysis) 14. การจัดการฐานข้อมูลเชิงสัมพันธ์ (Relational Databases) 15. ภาษา SQL 16. RBAC ## 2. ระบบที่ใช้; ## Server - ใช้ Container Station เป็น SERVER บน QNAP (Model: TS-473A, RAM: 32GB, CPU: AMD Ryzen V1500B 4 cores 8 threads) **_ เปลี่ยน port 443 ของ QNAP เป็น 8443 แล้ว _** ## การพัฒนาโครงการ - ด้วย Visual Studio Code บน Windows 11 - ใช้ ๊ UI ของ Container Station เป็นหลัก ## โครงสร้างโฟลเดอร์ (บน QNAP) /share/Container/dms/ ├─ docker-compose.yml # Create โดย UI Container Station ├─ mariadb/ │ ├─ data/ # ข้อมูลจริงของ MariaDB │ ├─ init/ # ข้อมูลเริ่มต้นของ MariaDB │ │ ├─ 01_dms_data_v5_1_deploy_table_rbac.sql # Create all data table & RBAC table here! │ │ ├─ 02_dms_data_v5_1_triggers.sql # Create all triggers here! │ │ ├─ 03_dms_data_v5_1_procedures_handlers.sql # Create all procedures here! │ │ ├─ 04_dms_data_v5_1_views.sql # Create all views here! │ │ ├─ 05 dms_data_v5_1_seeก_data.sql # Seed nescesary data here! │ │ ├─ 06_dms_data_v5_1_seed_users.sql # Seed users data here! │ │ └─ 07_dms_data_v5_1_seed_contract_dwg.sql # Seed contract drawing data here! │ └─ my.cnf ├─ backend/ │ ├─ app/ │ ├─ src/ │ │ ├─ db/ │ │ │ └─models/ │ │ ├─ middleware/ │ │ ├─ routes/ │ │ ├─ utils/ │ │ └─ index.js │ ├─ Dockerfile │ ├─ package.json │ └─ package-lock.json # ไม่มี ├─ frontend/ │ ├─ app/ │ │ ├─ correspondences/ │ │ ├─ dashboard/ │ │ ├─ health/ │ │ ├─ login/ │ │ └─ users/ │ ├─ public/ │ ├─ Dockerfile │ ├─ package.json │ ├─ package-lock.json # ไม่มี │ ├─ next.config.js │ └─ page.jsx ├─ phpmyadmin/ │ ├─ sessions/ # โฟลเดอร์เซสชันถาวรของ phpMyAdmin │ ├─ tmp/ │ ├─ config.user.inc.php │ └─ zzz-custom.ini ├─ nginx/ │ ├─ certs/ │ ├─ nginx.conf │ └─ dms.conf ├─ n8n/ ├─ n8n-cache/ ├─ n8n-postgres/ └─ logs/ ├─ backend/ ├─ frontend/ ├─ nginx/ ├─ pgadmin/ ├─ phpmyadmin/ └─ postgres_n8n/ /share/dms-data # เก็บข้อมมูล .pdf, .dwg แยกตาม correspondences, documents # ภาษา: ใช้ภาษาไทยในการโต้ตอบ ยกเว้น ศัพท์เทคนิคหรือศัพท์เฉพาะทาง # ไฟล์ที่ ีupload - Dockerfile ของ backend - package.json ของ backend - docker-compose.yml ชอง Container station - nginx.conf, dms.conf ของ nginx - dms_v0_5_0_data_v5_1_sql.zip ประกอบด้วย - 01_dms_data_v5_1_deploy_table_rbac.sql # Create all data table & RBAC table here! - 02_dms_data_v5_1_triggers.sql # Create all triggers here! - 03_dms_data_v5_1_procedures_handlers.sql # Create all procedures here! - 04_dms_data_v5_1_views.sql # Create all views here! - 05 dms_data_v5_1_seeก_data.sql # Seed nescesary data here! - 06_dms_data_v5_1_seed_users.sql # Seed users data here! # งานที่ต้องการ: - ไม่ใช้ .env เด็ดขาด Container Station ไม่รองรับ และ docker-compose.yml ได้ทดสอบ รันบน Container station มาแล้ว - Code ของ backend ทั้งหมด - การทดสอบระบบ backend ทุกส่วน ให้พร้อม สำหรับ frontend # กรณี 2: มี Git อยู่แล้ว (มี main อยู่) 2.1 อัปเดต main ให้ตรงล่าสุดก่อนแตกบร้านช์ cd /share/Container/dms git checkout main git pull --ff-only # ถ้าเชื่อม remote อยู่ git tag -f stable-$(date +%F) # tag จุดเสถียรปัจจุบัน 2.2 แตก branch งาน Dashboard git checkout -b feature/dashboard-update-$(date +%y%m%d) git checkout -b feature/dashboard-update-251004 2.3 ทำงาน/คอมมิตตามปกติ # แก้ไฟล์ frontend/app/dashboard/\* และที่เกี่ยวข้อง git add frontend/app/dashboard git commit -m "feat(dashboard): เพิ่ม KPI tiles + แก้ layout grid" git push -u origin feature/dashboard-update-251004