بادئ ذي بدء ، يود فريق مطور Ideoxan أن يشكرك شخصيًا على قضاء الوقت للمساهمة في مشروعنا والمجتمع!
يحتوي هذا المستند على جميع المعلومات اللازمة للمساهمة في مشروع Ideoxan. إذا كان لديك أي أسئلة ، فاتصل بنا على [email protected].
يتم الحفاظ على هذا المشروع ويحكمه وفقًا لقواعد سلوك المشروع الرسمية للمشروع. مطلوب اتفاق على الشروط والأحكام ، إلى جانب شروط الخدمة الرسمية لـ IDEOXAN ، سياسة الخصوصية في IDEOXAN والترخيص المضمن (MIT) للمساهمة في مشروع هذه المنظمة.
مطلوب وقت تشغيل Node.js لتشغيل خادم الواجهة الخلفية (وهو ما يخدم موقع الويب). الإصدارات أعلاه 10.x مدعومة. يقترح ، لاستخدام العقدة 13.x NPM مطلوب أيضًا ولكن عادةً ما يتم تثبيته باستخدام Node.js. يمكنك التحقق من إصدار Node.js عن طريق القيام به
node -vمطلوب GIT CLI لتنزيل الرمز من المستودع.
يُطلب من المتصفح الحديث الذي يدعم مواصفات ES6 لـ JS عرض موقع Chrome/Chromium و Firefox و Safari.
على الرغم من أن MongoDB ليس ضروريًا بنسبة 100 ٪ لتشغيل موقع الويب ، فإننا نقترح عليك تثبيته على أي حال بحيث يمكن استخدام تسجيل الدخول والتحقق من المستخدم. لتثبيت mongodb انظر دليل الوثائق الخاصة بهم. تأكد من أن الخادم يعمل على localhost أو موقع آخر محدد في قائمة متغيرات البيئة المحلية أو النظام
استخدم ما يلي لتنزيل المستودع وتثبيت الحزم المطلوبة:
git clone https://github.com/ideoxan/ideoxan.git
cd ideoxan
npm install يدعم الخادم استخدام متغيرات البيئة المحلية على مستوى النظام. إذا كنت غير قادر على تعيين متغير بيئة على مستوى النظام ، فقم بإنشاء ملف .env في دليل IDeoxan الرئيسي. تأكد من عدم ضبط بيئة العقدة الخاصة بك على production وإلا فلن يتم استخدام متغيرات البيئة محليًا. فيما يلي قائمة بمتغيرات البيئة المستخدمة. إذا كان أي منهم متضاربًا ، فيرجى إبلاغنا.
MONGO_URI
EXPRESS_SESSION_SECRET
PWD_HASH يتم استخدام متغير بيئة MONGO_URI لتعيين URI لقاعدة بيانات MongoDB. يجب أن يكون هذا URI سلسلة مونغوري صالحة. الافتراضي هو mongodb://localhost:27017/ix
متغير بيئة EXPRESS_SESSION_SECRET هو السر الذي ستستخدمه جميع الجلسات المصادقة مع هذا الخادم. من الأفضل الحفاظ على هذا الأمان والأمان حيث يمكن استخدام هذا لإبطال الجلسات وتعديلها ومحاكاة محاكاة ساخرة (وهي ليست جيدة). الحفاظ على هذا لفترة طويلة ومعقدة قدر الإمكان. لا يوجد افتراضي لأسباب أمنية.
متغير بيئة PWD_HASH هو قيمة عدد صحيح تستخدم في كلمات مرور التجزئة داخل وحدة BCryptJS. حافظ على الرقم مرتفعًا بما يكفي عندما تكون كلمات المرور آمنة ولكنها منخفضة بدرجة كافية بحيث لا يتسبب في إبطاء الخادم. مرة أخرى ، لأسباب أمنية ، لا توجد قيمة افتراضية.
إذا كنت تتطلع إلى المساهمة في دورة أو درس ، فيرجى الاطلاع على repos github الأخرى مع بادئة curriculum- . يتم الاحتفاظ بجميع أدلة المناهج الدراسية الخاصة بنا على github (ليست جميعها متوفرة للجمهور) وهي خوادم مخزنة تحت /static/curriculum وطلبت من جانب العميل تحت الدليل السريع الثابت ( /static ). لا يتم تضمين المنهج في المحرر أو موقع الويب أو أي من محتوياته. بموجب GIT ، يتم تضمين هذه الدورات على أنها علامات فرعية ويمكن تثبيتها تحت دليل المناهج الدراسية باستخدام ما يلي:
git submodule init
git submodule update --recursiveهذا سوف يستنسخ ، جلب ، وسحب جميع الدورات المتاحة للجمهور. إذا كنت ترغب في معرفة المزيد عن الجهاز الفرعي GIT وكيفية عملها ، انقر هنا.
هناك فرعان رئيسيان يستخدمان: master و prod . فرع prod هو ما يتم إرساله للإنتاج والنشر. نحاول فقط تحديث هذا الفرع في كثير من الأحيان عند الحاجة (الإصلاحات الساخنة أبطأ). الفرع master هو المكان الذي تذهب إليه غالبية الالتزامات الجديدة. فكر في هذا كنظام بناء ليلي جديد. على الرغم من أن هذا الفرع لديه أحدث الكود ، إلا أنه لا يعني أنه الأكثر استقرارًا. إذا كنت تخطط لاستخدام هذا على المدى الطويل ولا تشعر بالتحديث كل 20 دقيقة ، فإننا نقترح استخدام فرع prod .
هناك ثلاثة خيارات لتشغيل الخادم.
وضع المطور هو الأمر لتشغيل الخادم على جهاز تطوير. هذا يسمح بسهولة التحرير وبدء تشغيل خادم سريع. يعتمد على حزمة Nodemon ، لذا تأكد من تثبيت تبعيات المطور الموضحة في ملف package.json عبر NPM.
لتشغيل الخادم الاستخدام محليًا:
npm run devلبدء تشغيل الخادم دون أي ميزات إضافية ، قم بتشغيل:
npm run startيقوم هذا تلقائيًا بتحديث أي عروض فرعية مضمنة ثم يبدأ الخادم. بدلاً من ذلك ، يمكن بدء تشغيل الخادم تمامًا مثل أي مشروع Node.js العادي:
node server.jsلا يُقترح استخدام هذه الطريقة لأن هذا الخيار مصمم شخصيًا لخوادم محددة تستخدمها Ideoxan.
هذا يتطلب تثبيت PM2 على مستوى العالم .
npm run serverإذا كان هذا لا يعمل استخدام:
pm2 start server.js --name ideoxan --max-memory-restart 500M --watch --cron " 0 2 * * * " أولاً وقبل كل شيء ، إذا كنت تعتقد أن المشكلة تتعلق بالأمان ، فلا تفتح مشكلة. أبلغ عن الأخطاء مباشرة إلينا من خلال البريد الإلكتروني
المشكلة التي تقوم بالإبلاغ عنها عادة ما تكون مشكلة أمنية عندما ...
إذا كنت قد واجهت أي مما سبق ، فمن المرجح أن يكون ذلك نتيجة لمخاطر أمنية محتملة ويجب الإبلاغ عنها. يمكن أن يؤدي الفشل في الإبلاغ إلى إجراء قانوني محتمل نيابة عنا.
حتى لو لم تفي مشكلتك بما سبق ولا تزال تعتقد أنها قضية متعلقة بالأمان ، فلا تتردد في مراسلتنا عبر البريد الإلكتروني. من الأفضل أن تكون آمنًا بدلاً من أن تكون آسفًا.
يرجى التحقق من ما يلي للتأكد من مسحك لفتح مشكلة.
إذا كانت مشكلتك تتعلق بوقت تشغيل Node.js ، فأي من الحزم/البرامج التي لم يتم تغطيتها/الحفاظ عليها من قبل Ideoxan ، أو أي شيء آخر ، فهذا ليس المكان المناسب لتقديم مشكلتك معها. إذا كنت بحاجة إلى مساعدة في التوجيه إلى تعقب الأخطاء المناسب أو دليل استكشاف الأخطاء وإصلاحها ، فلا تتردد في الاتصال بنا. (انظر اتصل بنا)
إذا قمت بتعديل أي من المصدر ، فهناك احتمال كبير أن تكون المشكلة ناتجة عن العبث. إذا كانت المشكلة لا تزال قائمة بعد عودة الكود الخاص بك ، فتح مشكلة.
نحن لا ندعم البرامج القديمة. يرجى التحقق package-lock.json إصداراتك مقابل الإصدارات المحددة في package.json الفرع master .
إذا تم بالفعل الإبلاغ عن المشكلة وما زالت مفتوحة على github ، فيرجى التعليق على مشكلتك بدلاً من فتح مشكلة جديدة. إذا كان لا يزال مفتوحًا ، تحقق من حالة ذلك. إذا كان لها علامة wont-fix متصلة بالمشكلة ، فلا تطرحها مرة أخرى إلا إذا رأيت أنها مشكلة بارزة وقد مرت قدر كبير من الوقت. تحقق أيضًا لمعرفة ما إذا كان هناك حل. في بعض الأحيان ، سيتم إغلاق المشكلات ليس لأنها تم تمييزها على أنها غير صالحة أو تم الوصول إلى حل ولكن بسبب نقص النشاط. إذا وجدت أن هذا هو الحال ، فلا تتردد في طلب إعادة فتح المشكلة.
إذا كنت تعلق على الأمان ، فيرجى الاطلاع على الإبلاغ عن مشكلات الأمان.
إذا اتبعت ما سبق وتلقيت المتطلبات ، يمكنك الآن فتح مشكلة. تأكد من استخدام عنوان وصفي ، ووصف مشكلتك بوضوح . تأكد من اتباع قالب تقرير الأخطاء (مقترح بقوة). إذا فشلت في وصف مشكلتك بشكل صحيح ، فستتم إغلاق مشكلتك دون تفسير.
إذا كنت تساهم في قاعدة كود (لا تتضمن الوثائق) ، فيرجى التأكد من اتباع معاييرنا.
يرجى التحقق مما إذا كانت هناك بالفعل أي مشكلات مفتوحة يمكن حلها. إذا لم يكن الأمر كذلك ، فتأكد من أن طلب السحب لا يغطي بالفعل ما تحاول الدمج.
إذا كنت متأكدًا مما سبق ، افتح طلب سحب باستخدام قالب العلاقات العامة لدينا
إذا كنت تقترح أن يضيف Idooxan ميزة جديدة أو يتوسع على قصة موجودة ، فيرجى فتح مشكلة باستخدام قالب طلب الميزات
قريباً
إذا كان لديك سؤال أو قلق لا يفي بما سبق ، فلا تتردد في التواصل معنا (انظر اتصل بنا)
يسعى هذا المستودع إلى السماح بالتوافق والتوحيد والوضوح الشامل. نقترح ما إذا كنت تحاول المساهمة في مصدر هذا المشروع ، وأن تقرأ ما يلي.
قريباً
| ملصق | وصف | يبحث |
|---|---|---|
| علة حرجة | خطأ يعيق الموقع غير مجدي تمامًا وهو أمر بالغ الأهمية للتشغيل/الإدارة الأساسية | ؟ |
| علة (متوسطة) | خطأ من الشدة المتوسطة التي تؤثر على جزء كبير من الموقع و/أو مستخدميه. | ؟ |
| علة (منخفضة) | خطأ منخفض الأولوية بالكاد يكون له أي تأثير على الموقع و/أو مستخدميه | ؟ |
| ملصق | وصف | يبحث |
|---|---|---|
| ينسخ | مشكلة تكرار من مشكلة سابقة مغلقة (حل) أو مشكلة مفتوحة (معلقة) أو طلب سحب مغلق | ؟ |
| لن يصلح | مشكلة لا علاقة لها بالمشروع أو القضية التي لا يمكن حلها | ؟ |
| غير صالح | قضية ليس لها انتشار للمشروع أو لا يمكن تكرارها | ؟ |
| سؤال | يجب توفير مزيد من المعلومات للسؤال ليكون صالحًا | ؟ |
| ملصق | وصف | يبحث |
|---|---|---|
| موقع إلكتروني | قضية متعلقة بالموقع | ؟ |
| الخادم | مشكلة متعلقة بالخادم | ؟ |
| الوثائق | مشكلة تتعلق بتوثيق الموقع أو الخادم أو واجهة برمجة التطبيقات | ؟ |
| آخر | مشكلة لا تتعامل مع موقع الويب أو الخادم أو الوثائق | ؟ |
| تعزيز | اقتراح لميزة جديدة قيد النظر أو تحسين واحد موجود بالفعل | ؟ |
| ملصق | وصف | يبحث |
|---|---|---|
| مطلوب مساعدة | علامة ممنوحة لقضية أو طلب سحب يحتاج إلى مراجعة أو مساهمة خارجية. عادة إذا تم تقديمها ، فإن القضية هي إما خارج نطاق معرفة المشرفين أو ليست ذات أولوية أعلى. | ؟ |
| العدد الأول الجيد | إذا كنت جديدًا هنا ، فهذا مكان رائع للبدء! هذه إما مشكلة نشطة أو مثال جيد على مشكلة للوافدين الجدد لمعالجة. | ؟ |
إذا كنت بحاجة إلى التواصل ، يرجى الاتصال بنا على الروابط التالية أدناه
سيتم إضافة المزيد من المنصات في المستقبل.