MONOREPO STARTER TEMPLATE
ภาพรวม
โปรเจกต์นี้เป็น Monorepo แบบ Full-Stack ที่มีโครงสร้างพร้อมใช้งานสำหรับการพัฒนาและทดสอบ:
- Backend (Django/DRF): โครงสร้าง Modular Monolith พร้อมระบบ Authentication ด้วย Djoser/JWT
- ฐานข้อมูล (HA): CockroachDB Cluster 3 Node (เข้ากันได้กับ PostgreSQL)
- Frontend (Web): React + Vite + Tailwind CSS / DaisyUI และ Mobile ผ่าน Expo
- Automation: Docker Compose พร้อมตั้งค่า Database อัตโนมัติเมื่อเริ่มต้น
การเริ่มต้นใช้งาน (Run Local)
-
Clone the Repository:
git clone [Your Gitea URL] cd cremation-monorepo -
รัน Infrastructure & Backend: ไปที่โฟลเดอร์ infra และสตาร์ทบริการทั้งหมด คำสั่งนี้จะ build backend และตั้งค่า CockroachDB Cluster อัตโนมัติ
cd infra docker compose up --build -d -
เข้าถึง 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/
-
รัน Frontend (Web):
cd ../web npm install npm run dev -
รัน Frontend (Mobile):
-
ติดตั้ง Expo Go บนมือถือ
-
สแกน QR Code โดยมือถือและเครื่อง Notebook ต้องอยู่ใน Lan วงเดียวกัน
cd ../mobile npm expo start
การหยุดชั่วคราวและรันต่อ
ถ้าต้องการหยุดพัฒนาโดยไม่ลบฐานข้อมูล สามารถรัน:
cd ../infra
docker compose down
เมื่อต้องการกลับมาพัฒนาต่อ ให้รัน:
cd ../infra
docker compose up -d
คำสั่ง docker compose down -v จะลบ Volume และฐานข้อมูลทั้งหมด ใช้เฉพาะตอนต้องการเริ่มต้นฐานข้อมูลใหม่
คำเตือนสำคัญ ตรวจสอบให้แน่ใจว่าได้กำหนด AUTH_USER_MODEL ถูกต้องใน settings.py ก่อนรัน migrate ครั้งแรกเสมอ เพื่อหลีกเลี่ยงปัญหา InconsistentMigrationHistory ในภายหลัง