9
Switch language to English

المساهمة

السابقالتالي

شكراً لاهتمامك بالمساهمة في Hogwarts. نحن سعداء بوجودك هنا.

يرجى تخصيص لحظة لمراجعة هذا المستند قبل إرسال أول طلب سحب. نوصي أيضاً بشدة بالتحقق من المشكلات وطلبات السحب المفتوحة لمعرفة ما إذا كان شخص آخر يعمل على شيء مشابه.

إذا كنت بحاجة إلى أي مساعدة، لا تتردد في التواصل عبر Discord.

حول هذا المستودع

هذا المستودع هو nextjs أصلي قائم على الميزات.

  • نستخدم pnpm للتطوير.
  • نستخدم Turbopack كنظام بناء.
  • نستخدم changesets لإدارة الإصدارات.

الهيكل

هذا المستودع منظم كالتالي:

src/Source code directory
app/Next.js App Router
[lang]/Internationalized routes
(marketing)/Entry point 01: SaaS marketing
(operator)/Entry point 02: SaaS dashboard
(auth)/Authentication pages
onboarding/User onboarding flow
s/Multi-tenant routing
[subdomain]/Tenant-specific routes
(platform)/Entry point 04: School dashboard
(site)/Entry point 03: School marketing
layout.tsxRoot layout component
components/React components
ui/shadcn/ui components
atom/Complex components (2+ shadcn combined)
template/Full sections (header, hero, footer)
auth/Authentication components
onboarding/Onboarding flow components
marketing/Entry point 01: SaaS marketing
operator/Entry point 02: SaaS dashboard
site/Entry point 03: School marketing
platform/Entry point 04: School dashboard

التطوير

لتعليمات الإعداد التفصيلية، يرجى الرجوع إلى:

اصطلاح الالتزام

قبل إنشاء طلب سحب، يرجى التحقق من أن التزاماتك تتوافق مع اصطلاحات الالتزام المستخدمة في هذا المستودع.

عند إنشاء التزام، نطلب منك بلطف اتباع الاصطلاح category(scope or module): message في رسالة الالتزام باستخدام إحدى الفئات التالية:

  • feat / feature: جميع التغييرات التي تقدم كوداً جديداً تماماً أو ميزات جديدة

  • fix: التغييرات التي تصلح خطأ (مثالياً ستشير أيضاً إلى مشكلة إذا وجدت)

  • refactor: أي تغيير متعلق بالكود ليس إصلاحاً ولا ميزة

  • docs: تغيير التوثيق الموجود أو إنشاء توثيق جديد

  • build: جميع التغييرات المتعلقة ببناء البرنامج، التغييرات على التبعيات أو إضافة تبعيات جديدة

  • test: جميع التغييرات المتعلقة بالاختبارات (إضافة اختبارات جديدة أو تغيير الموجودة)

  • ci: جميع التغييرات المتعلقة بتكوين التكامل المستمر

  • chore: جميع التغييرات على المستودع التي لا تندرج تحت أي من الفئات أعلاه

    مثال: feat(components): add new prop to the avatar component

استخدم اسم المجلد كنطاق:

  • feat(marketing): تغييرات تسويق SaaS
  • feat(operator): تغييرات لوحة تحكم SaaS
  • feat(site): تغييرات تسويق المدرسة
  • feat(platform): تغييرات لوحة تحكم المدرسة
  • feat(auth): تغييرات المصادقة
  • feat(onboarding): تغييرات تدفق الإعداد
  • feat(ui): تغييرات مكونات shadcn/ui
  • feat(atom): تغييرات المكونات الذرية
  • feat(template): تغييرات القوالب/الأقسام
  • fix(docs): إصلاحات التوثيق

لمزيد من التفاصيل، زر conventionalcommits.org.

طلبات مكونات جديدة

إذا كان لديك طلب لمكون جديد، يرجى فتح نقاش على GitHub. سنكون سعداء بمساعدتك.

CLI

حزمة codebase هي CLI لإضافة المكونات إلى مشروعك. يمكنك إيجاد التوثيق لـ CLI هنا.

أي تغييرات على CLI يجب أن تُجرى في دليل packages/codebase. إذا استطعت، سيكون رائعاً إذا أضفت اختبارات لتغييراتك.

الاختبار

الاختبارات مكتوبة باستخدام Vitest. يمكنك تشغيل جميع الاختبارات من جذر المستودع.

pnpm test

يرجى التأكد من أن الاختبارات ناجحة عند إرسال طلب سحب. إذا كنت تضيف ميزات جديدة، يرجى تضمين اختبارات.