MONOREPO STARTER TEMPLATE

ภาพรวม

โปรเจกต์นี้เป็น Monorepo แบบ Full-Stack ที่มีโครงสร้างพร้อมใช้งานสำหรับการพัฒนาและทดสอบ:

  1. Backend (Django/DRF): โครงสร้าง Modular Monolith พร้อมระบบ Authentication ด้วย Djoser/JWT รวมถึง Stateless โดยสมบูรณ์ เนื่องจาก Session/Cache ถูกย้ายไปเก็บที่ Redis
  2. ฐานข้อมูล (HA): CockroachDB Cluster 3 Node (เข้ากันได้กับ PostgreSQL)
  3. Frontend (Web): React + Vite + Tailwind CSS / DaisyUI และ Mobile ผ่าน Expo
  4. Automation: Docker Compose พร้อมตั้งค่า Database อัตโนมัติเมื่อเริ่มต้น
  5. Caching/Broker: Redis สำหรับการเก็บ Session/Cache และใช้เป็น Message Broker ให้ Celery
  6. Async Processing: Celery Worker สำหรับจัดการ Asynchronous Tasks (งานเบื้องหลัง เช่น การส่งอีเมล, การสร้างรายงาน)

การเริ่มต้นใช้งาน (Run Local)

  1. Clone the Repository:

    git clone https://gitea.softwarecraft.tech/gitea/monorepo-starter-template.git
    cd monorepo-starter-template
    # ลบ History ของ Template เก่าทิ้งไป รองรับการเชื่อมต่อไปยัง Repository ใหม่
    rm -rf .git
    
  2. รัน Infrastructure & Backend: ไปที่โฟลเดอร์ infra และสตาร์ทบริการทั้งหมด คำสั่งนี้จะ build backend และตั้งค่า CockroachDB Cluster อัตโนมัติ

    cd infra
    docker compose up --build -d
    
  3. เข้าถึง Admin UI: ตรวจสอบว่า Backend และฐานข้อมูลพร้อมใช้งาน

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/

  1. รัน Frontend (Web):

     cd ../web
     npm install
     npm run dev
    
  2. รัน 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 และฐานข้อมูลทั้งหมด ใช้เฉพาะตอนต้องการเริ่มต้นฐานข้อมูลใหม่

Description
No description provided
Readme 348 KiB
Languages
Python 76.1%
JavaScript 10.4%
Shell 6.2%
Dockerfile 4.3%
HTML 1.7%
Other 1.3%