เอกสารDocumentationContributingIntroduction

บทนำ

ยินดีต้อนรับสู่เอกสารอย่างเป็นทางการสำหรับ frontend ของ Appbox แบบ open-sourced

ยินดีต้อนรับสู่เอกสาร Appbox
เรายินดีที่จะประกาศว่า frontend สำหรับ Appbox เปิดเป็น open-sourced แล้วบน GitHub เป้าหมายของเราคือส่งเสริมชุมชนที่ร่วมมือกัน ซึ่งช่วยมีส่วนร่วมกับเอกสาร พัฒนาฟีเจอร์ frontend ใหม่ๆ และช่วยปรับปรุงประสบการณ์ Appbox โดยรวม

แม้ว่าเอกสารของเรายังอยู่ในช่วงเริ่มต้น แต่เรากำลังทำงานเพื่อสร้างแหล่งข้อมูลที่ครอบคลุมคล้ายกับแพลตฟอร์มอื่นๆ ในพื้นที่เดียวกัน ขณะนี้เอกสารของเรามุ่งเน้นไปที่แนวทางการมีส่วนร่วมเป็นหลัก แต่เราวางแผนที่จะขยายให้มีข้อมูลโดยละเอียดสำหรับทุกแอปที่มีอยู่บน Appbox

จนกว่าเอกสารของเราจะสมบูรณ์ยิ่งขึ้น โปรดไปที่ ฐานความรู้เดิม ของเราสำหรับคำถามเร่งด่วนเกี่ยวกับแอปหรือบริการเฉพาะ หากคุณต้องการการสนับสนุนทางเทคนิค คุณสามารถ ส่ง ticket เพื่อขอความช่วยเหลือได้ คุณสามารถเข้าถึงเอกสารใหม่เหล่านี้ได้เสมอผ่านลิงก์ใน footer ของเว็บไซต์เรา เพื่อติดตามความคืบหน้าระหว่างที่เราขยายเนื้อหา

แผนในอนาคต

  • คู่มือแอปเชิงลึก
    ครอบคลุมการติดตั้ง การแก้ไขปัญหา และเคล็ดลับสำหรับแต่ละแอปที่รองรับบนแพลตฟอร์มของเรา
  • แหล่งข้อมูลสำหรับผู้ใช้และนักพัฒนา
    ให้ข้อมูลครบตั้งแต่บทช่วยสอนที่เป็นมิตรกับผู้เริ่มต้น ไปจนถึง code references ขั้นสูงสำหรับปรับแต่งประสบการณ์ Appbox ของคุณ
  • เนื้อหาที่ขับเคลื่อนโดยชุมชน
    สนับสนุน pull requests, feedback และ suggestions ทุกอย่างยินดีรับและช่วยให้โปรเจกต์นี้เติบโตสำหรับทุกคน

เริ่มต้นใช้งาน

หากคุณต้องการดูหรือมีส่วนร่วมกับโค้ด frontend แบบ open-sourced ของเรา ให้ clone repository Appbox:

git clone https://github.com/appbox-co/appbox.git

จากนั้นเข้าไปในโปรเจกต์และติดตั้ง dependencies:

cd appbox
pnpm install
pnpm dev

อินสแตนซ์ในเครื่องของคุณจะพร้อมใช้งานที่ http://localhost:3000 คุณสามารถสำรวจ แก้ไข และสร้าง pull requests ได้ตามสะดวก เราขอบคุณทุกการมีส่วนร่วม!

เครื่องมือพัฒนา

Linting

โปรเจกต์มาพร้อมการตั้งค่า linting ที่ครอบคลุมโดยใช้ ESLint พร้อม TypeScript และการผสานรวม Prettier สิ่งนี้ช่วยให้รูปแบบโค้ดสอดคล้องกันและช่วยตรวจจับข้อผิดพลาดทั่วไปตั้งแต่เนิ่นๆ คุณสามารถรันการตรวจสอบ linting ด้วยตนเองได้:

# Run linting
pnpm lint
 
# Fix automatically fixable issues
pnpm lint:fix

การกำหนดค่า ESLint ของเราประกอบด้วย:

  • กฎเฉพาะสำหรับ TypeScript ผ่าน @typescript-eslint
  • Linting เฉพาะสำหรับ Next.js ด้วย eslint-config-next
  • การจัดรูปแบบโค้ดด้วยการผสานรวม Prettier

Pre-commit Hooks

เราใช้ Husky เพื่อจัดการ Git hooks ซึ่งช่วยให้แน่ใจว่าเฉพาะโค้ดคุณภาพเท่านั้นที่ถูก commit เข้าสู่ repository hooks ต่อไปนี้ถูกตั้งค่าไว้:

  • pre-commit: รัน lint:fix ก่อนแต่ละ commit เพื่อให้มั่นใจในคุณภาพโค้ด
  • commit-msg: ใช้ commitlint เพื่อบังคับใช้รูปแบบข้อความ commit แบบ conventional

หมายความว่า commits ของคุณจะถูกตรวจสอบคุณภาพโค้ดและรูปแบบที่ถูกต้องโดยอัตโนมัติก่อนที่จะได้รับการยอมรับ ช่วยรักษามาตรฐานสูงตลอดทั้ง codebase

การสร้าง Pull Requests

เมื่อคุณพร้อมจะมีส่วนร่วมด้วยการเปลี่ยนแปลงของคุณ ให้ทำตามแนวทางเหล่านี้เพื่อเพิ่มโอกาสให้ Pull Request (PR) ของคุณได้รับการยอมรับ:

ก่อนสร้าง PR

  1. Rebase จาก main branch ล่าสุด เพื่อหลีกเลี่ยง merge conflicts:

    git checkout main
    git pull origin main
    git checkout your-branch
    git rebase main
  2. ตรวจสอบให้แน่ใจว่า linting ผ่านทั้งหมด:

    pnpm lint:fix
  3. ตรวจสอบให้แน่ใจว่าโค้ดของคุณทำงานได้ในเครื่อง โดยทดสอบฟังก์ชันที่เกี่ยวข้อง

แนวทาง PR

  1. ให้ PR โฟกัสชัดเจน - แก้ไขหนึ่ง issue หรือหนึ่งฟีเจอร์ต่อ PR
  2. เขียนข้อความ commit ให้ชัดเจน - ทำตามรูปแบบ conventional commit
  3. ใส่คำอธิบายที่ชัดเจน - อธิบายว่า PR ของคุณทำอะไรและทำไมจึงจำเป็น
  4. เพิ่ม tests - หากเหมาะสม ให้เพิ่ม tests เพื่อตรวจสอบว่าการเปลี่ยนแปลงของคุณทำงานถูกต้อง
  5. จัดทำเอกสารโค้ดของคุณ - ใช้ comments สำหรับ logic ที่ซับซ้อน และตรวจสอบให้แน่ใจว่าชื่อฟังก์ชันสื่อความหมาย
  6. ทำตามรูปแบบที่มีอยู่ - โค้ดของคุณควรสอดคล้องกับ style และ patterns ที่ใช้ในส่วนอื่นของ codebase

สำหรับการเปลี่ยนแปลงขนาดใหญ่ ควรพิจารณาเปิด issue ก่อนเพื่อพูดคุยแนวทางก่อนลงทุนเวลาเขียนโค้ด วิธีนี้ช่วยให้แน่ใจว่าการมีส่วนร่วมของคุณสอดคล้องกับทิศทางของโปรเจกต์และหลีกเลี่ยงความพยายามที่สูญเปล่า