77 lines
3.3 KiB
Markdown
77 lines
3.3 KiB
Markdown
# 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 https://gitea.softwarecraft.tech/gitea/monorepo-starter-template.git
|
|
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 ในภายหลัง |