690404:1139 Modify ADR
This commit is contained in:
@@ -1,15 +1,29 @@
|
||||
# ADR-005: Technology Stack Selection
|
||||
|
||||
**Status:** Accept
|
||||
**Status:** Accepted
|
||||
**Date:** 2026-02-24
|
||||
**Decision Makers:** Development Team, CTO
|
||||
**Related Documents:**
|
||||
|
||||
- [System Architecture](../02-architecture/02-01-system-architecture.md)
|
||||
- [System Architecture](../02-Architecture/02-01-system-architecture.md)
|
||||
- [FullStack JS Guidelines](../03-implementation/03-01-fullftack-js-v1.7.0.md)
|
||||
|
||||
---
|
||||
|
||||
## Gap Analysis & Purpose
|
||||
|
||||
### ปิด Gap จากเอกสาร:
|
||||
- **System Architecture** - Section 4.1: "ระบบต้องพัฒนาด้วย Technology Stack ที่ทีมมีความเชี่ยวชาญ"
|
||||
- เหตุผล: ทีมมีประสบการณ์ TypeScript/JavaScript จึงเลือก Stack ที่ใช้ภาษาเดียวกัน
|
||||
- **Infrastructure Constraints** - Section 5.2: "ระบบต้อง Deploy บน QNAP Container Station"
|
||||
- เหตุผล: ต้องเลือก Technology ที่เข้ากับ QNAP และ Resource จำกัด
|
||||
|
||||
### แก้ไขความขัดแย้ง:
|
||||
- **Development Speed** vs **Enterprise Requirements**: ต้องการพัฒนาเร็วแต่ต้องเป็น Enterprise-grade
|
||||
- การตัดสินใจนี้ช่วยแก้ไขโดย: เลือก TypeScript ecosystem ที่ Modern แต่ก็ Enterprise-ready
|
||||
|
||||
---
|
||||
|
||||
## Context and Problem Statement
|
||||
|
||||
LCBP3-DMS ต้องเลือก Technology Stack สำหรับพัฒนา Document Management System ที่:
|
||||
@@ -130,6 +144,77 @@ LCBP3-DMS ต้องเลือก Technology Stack สำหรับพั
|
||||
|
||||
---
|
||||
|
||||
## 🔍 Impact Analysis
|
||||
|
||||
### Affected Components (ส่วนประกอบที่ได้รับผลกระทบ)
|
||||
|
||||
| Component | Level | Impact Description | Required Action |
|
||||
|-----------|-------|-------------------|-----------------|
|
||||
| **Development Environment** | 🔴 High | ต้องติดตั้ง Node.js, TypeScript, Docker | Setup dev environment |
|
||||
| **CI/CD Pipeline** | 🔴 High | ต้องสร้าง Pipeline สำหรับ TypeScript, Docker | Build/deploy automation |
|
||||
| **Team Skills** | 🟡 Medium | ทีมต้องเรียนรู้ NestJS, Next.js | Training sessions |
|
||||
| **Infrastructure** | 🟡 Medium | ต้องติดตั้ง Docker, Redis, MariaDB | Server setup |
|
||||
| **Documentation** | 🟡 Medium | ต้องเขียน Docs สำหรับ TypeScript ecosystem | Update documentation |
|
||||
|
||||
### Required Changes (การเปลี่ยนแปลงที่ต้องดำเนินการ)
|
||||
|
||||
#### 🔴 Critical Changes (ต้องทำทันที)
|
||||
- [ ] **Setup Development Environment** - All developers: Node.js, Docker, IDE setup
|
||||
- [ ] **Create Project Structure** - backend/, frontend/, docker-compose.yml: Initial scaffolding
|
||||
- [ ] **Configure TypeScript** - tsconfig.json, package.json: Build configuration
|
||||
- [ ] **Setup CI/CD** - .github/workflows/: Build and deploy automation
|
||||
- [ ] **Install Database** - MariaDB, Redis: Infrastructure setup
|
||||
|
||||
#### 🟡 Important Changes (ควรทำภายใน 1 สัปดาห์)
|
||||
- [ ] **Create Code Standards** - .eslintrc, .prettierrc: Linting and formatting
|
||||
- [ ] **Setup Testing Framework** - Jest, Vitest, Playwright: Test infrastructure
|
||||
- [ ] **Documentation Setup** - README.md, CONTRIBUTING.md: Project docs
|
||||
- [ ] **Team Training** - NestJS, Next.js workshops: Knowledge transfer
|
||||
|
||||
#### 🟢 Nice-to-Have (ทำถ้ามีเวลา)
|
||||
- [ ] **Create Component Library** - shadcn/ui customization: UI consistency
|
||||
- [ ] **Setup Monitoring** - Logging, metrics: Observability
|
||||
- [ ] **Performance Benchmarking** - Load testing scripts: Performance validation
|
||||
|
||||
### Cross-Module Dependencies
|
||||
|
||||
```mermaid
|
||||
graph TB
|
||||
ADR[ADR-005 Tech Stack] --> Backend[NestJS Backend]
|
||||
ADR --> Frontend[Next.js Frontend]
|
||||
ADR --> DB[(MariaDB)]
|
||||
ADR --> Redis[(Redis)]
|
||||
ADR --> Docker[Docker]
|
||||
|
||||
Backend --> ADR001[ADR-001 Workflow Engine]
|
||||
Backend --> ADR002[ADR-002 Numbering]
|
||||
Frontend --> ADR011[ADR-011 App Router]
|
||||
Frontend --> ADR012[ADR-012 UI Components]
|
||||
|
||||
Redis --> ADR006[ADR-006 Redis Strategy]
|
||||
DB --> ADR009[ADR-009 Migration]
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 📋 Version Dependency Matrix
|
||||
|
||||
| ADR | Version | Dependency Type | Affected Version(s) | Implementation Status |
|
||||
|-----|---------|-----------------|---------------------|----------------------|
|
||||
| **ADR-005** | 1.0 | Foundation | v1.8.0+ | ✅ Implemented |
|
||||
| **ADR-001** | 1.0 | Depends On | v1.8.0+ | ✅ Implemented |
|
||||
| **ADR-002** | 1.0 | Depends On | v1.8.0+ | ✅ Implemented |
|
||||
| **ADR-006** | 1.0 | Required | v1.8.0+ | ✅ Implemented |
|
||||
| **ADR-009** | 1.0 | Database | v1.8.0+ | ✅ Implemented |
|
||||
|
||||
### Version Compatibility Rules
|
||||
|
||||
- **Minimum Version:** v1.8.0 (ADR มีผลบังคับใช้)
|
||||
- **Breaking Changes:** ไม่มี (Foundation stack)
|
||||
- **Deprecation Timeline:** ไม่มี (Core technology choices)
|
||||
|
||||
---
|
||||
|
||||
## Architecture Decisions
|
||||
|
||||
### Backend Architecture: Modular Monolith
|
||||
@@ -268,6 +353,26 @@ lcbp3-dms/
|
||||
|
||||
---
|
||||
|
||||
## 🔄 Review Cycle & Maintenance
|
||||
|
||||
### Review Schedule
|
||||
- **Next Review:** 2026-08-24 (6 months from last review)
|
||||
- **Review Type:** Scheduled (Foundation Review)
|
||||
- **Reviewers:** CTO, System Architect, Development Team Lead
|
||||
|
||||
### Review Checklist
|
||||
- [ ] ยังคงเป็น Core Principle หรือไม่? (Technology Stack เป็นรากฐานของระบบ)
|
||||
- [ ] มีการเปลี่ยนแปลง Technology ที่กระทบหรือไม่? (New frameworks, EOL versions)
|
||||
- [ ] มี Issue หรือ Bug ที่เกิดจาก ADR นี้หรือไม่? (Performance issues, Compatibility problems)
|
||||
- [ ] ต้องการ Update หรือ Deprecate หรือไม่? (Version upgrades, New alternatives)
|
||||
|
||||
### Version History
|
||||
| Version | Date | Changes | Status |
|
||||
|---------|------|---------|--------|
|
||||
| 1.0 | 2026-02-24 | Initial version - Full Stack TypeScript | ✅ Active |
|
||||
|
||||
---
|
||||
|
||||
## Compliance
|
||||
|
||||
เป็นไปตาม:
|
||||
|
||||
Reference in New Issue
Block a user