# MONOREPO STARTER TEMPLATE ## ภาพรวม โปรเจกต์นี้เป็น Monorepo แบบ Full-Stack ที่มีโครงสร้างพร้อมใช้งานสำหรับการพัฒนาและทดสอบ: 1. **Backend (Django/DRF):** โครงสร้าง Modular Monolith พร้อมระบบ Authentication ด้วย Djoser/JWT 2. **ฐานข้อมูล (HA):** CockroachDB Cluster 3 Node (เข้ากันได้กับ PostgreSQL) 3. **Frontend (Web):** React + Vite + Tailwind CSS / DaisyUI และ Mobile ผ่าน Expo 4. **Automation:** Docker Compose พร้อมตั้งค่า Database อัตโนมัติเมื่อเริ่มต้น ## การเริ่มต้นใช้งาน (Run Local) 1. **Clone the Repository:** ```bash git clone [Your Gitea URL] cd cremation-monorepo ``` 2. **รัน Infrastructure & Backend:** ไปที่โฟลเดอร์ infra และสตาร์ทบริการทั้งหมด คำสั่งนี้จะ build backend และตั้งค่า CockroachDB Cluster อัตโนมัติ ```bash cd infra docker compose up --build -d ``` 3. **เข้าถึง Admin UI:** ตรวจสอบว่า Backend และฐานข้อมูลพร้อมใช้งาน - Django Admin: http://localhost:8000/admin/ - CockroachDB Status: http://localhost:8080/ Username: admin Password: Str0ngp@ssword123- - การเข้าถึงและตรวจสอบ API Endpoints อื่น ๆ: http://localhost:8000/api/v1/auth/jwt/create/ http://localhost:8000/api/v1/auth/users/ http://localhost:8000/api/v1/auth/users/reset_password/ http://localhost:8000/api/v1/auth/users/me/ 4. **รัน Frontend (Web):** ```bash cd ../web npm install npm run dev ``` 5. **รัน Frontend (Mobile):** - ติดตั้ง Expo Go บนมือถือ - สแกน QR Code โดยมือถือและเครื่อง Notebook ต้องอยู่ใน Lan วงเดียวกัน ```bash cd ../mobile npm expo start ``` ## การหยุดชั่วคราวและรันต่อ ถ้าต้องการหยุดพัฒนาโดยไม่ลบฐานข้อมูล สามารถรัน: ```bash cd ../infra docker compose down ``` เมื่อต้องการกลับมาพัฒนาต่อ ให้รัน: ```bash cd ../infra docker compose up -d ``` คำสั่ง docker compose down -v จะลบ Volume และฐานข้อมูลทั้งหมด ใช้เฉพาะตอนต้องการเริ่มต้นฐานข้อมูลใหม่ คำเตือนสำคัญ ตรวจสอบให้แน่ใจว่าได้กำหนด AUTH_USER_MODEL ถูกต้องใน settings.py ก่อนรัน migrate ครั้งแรกเสมอ เพื่อหลีกเลี่ยงปัญหา InconsistentMigrationHistory ในภายหลัง