اذهب إلى المحتوى

Adnane Kadri

الأعضاء
  • المساهمات

    5196
  • تاريخ الانضمام

  • تاريخ آخر زيارة

  • عدد الأيام التي تصدر بها

    52

كل منشورات العضو Adnane Kadri

  1. مرحبا وليد، أظنك لا زلت في بداية الدورة مع المسارات النظرية، اذ أن طبيعة المادة العلمية المتعرض لها هكذا اذ لا تشكل طريقة الشرح في البداية فرقا، فالمعارف التي تتعرض لها جديدة وغامضة حد الملل. ومن الطبيعي أن يحس الطالب بمثل هكذا شعور في بداية مسيرته. أما بخصوص الدورة، فكل مسار نظري من أي دورة من دورات الأكاديمية يتبع بسلسلة من المسارات التطبيقية والعملية التي تهتم بممارسة هاته المعارف عمليا والتوسع في استعمالاتها وسياقاتها. وهو ما لا يمكن بطبيعة الحال تقديمه مع الشرح النظري الذي يكون عادة بشكل مقتضب ومختصر حتى لا يتم التشعب في مضمونه. أما بخصوص اللغة الانجليزية في الدورات، فإن اعتماد اللغة العربية هو بدرجة أولى للتبسيط لا للإبهام فالطالب لا يحتاج أن يعرف إلا الحد الذي يكفي من مصطلحات المجال باللغة الإنجليزية من مثل variable أو function أو constant أو غيرها .. وهي مصطلحات تستعمل عادة لعنونة مسارات أو فيديوهات معينة غرض ترسيخ هاته المعلومة .. أما غيرها من المصطلحات فهو غير ضروري في هذا السياق. أحثك على استكمال الدورة والصبر حتى بلوغ المسارات التطبيقية والعملية، فهنالك ستعرف أن التأسيس في المسارات النظرية كان ضروريا وخطوة لا بد منها للمرور إلى التطبيق العملي والممارسة الفعلية.
  2. مرحبا منصور، اعلم أولا أن بـ NextJS سيمكنك إنشاء تطبيقات ويب شاملة لا تحتاج فيها إلى PHP أو Laravel كواجهة خلفية، سوف لن تحتاج إلا التعامل مع نظم قواعد بيانات بشكل مباشر، MongoDB مثلا. وصحيح أن الطلب عليه في الواجهة الخلفية قليل في أوساط العمل البرمجية العربية بشكل عام بجانب قلة في المصادر والمجتمع البرمجي والمكتبات والحزم التي تدعم هذا الشيء. إذ أن أغلب المشاريع التي تتردد تهتم بـ PHP كلغة و Laravel كإطار عمل على هاته اللغة، في حين أن تطبيقات NextJS لا يعتمد عليها عادة في بناء الواجهات البرمجية أو مثل هاته المشاريع. كما أنه لا تعارض في تعلم PHP laravel وممارسة NextJS، سيمكنك الاستمرار في انشاء تطبيقات SPA و تطبيقات SSR بوساطة NextJS والاستفادة من ميزات PHP Laravel في إنشاء واجهات تطبيق برمجية APIs قوية مثلا .. ولذلك، وكنصيحة، استمر في ممارسة NextJS ولا تهملها هي الأخرى فالطلب على تطبيقات SSR يزداد بشكل ملحوظ، ومن جهة أخرى يمكنك استكمال مراجعة PHP والتوجه الى لارافيل كإطار عمل عليها. فبهما، NextJS و Laravel سوف يكون بإمكانك القيام بمشاريع ذات مستوى عال ومتطلبات ضخمة والإشراف عليها.
  3. هل بسبب أن الفرع الرئيسي لديك يتواجد باسم main عوض master؟ جربي تنفيذ الأمر git push -u origin main عوضا عن git push -u origin master
  4. عند تنفيذ امر الدفع git push قومي بإدخال الرمز عند طلب كلمة المرور بدل كتابة كلمة المرور الخاصة بك.
  5. تظهر هاته المشكلة عادة بسبب خطأ في تثبيت حزمة node-gyp ، جرب أولا تنفيذ الأمر مع خيار جبر التثبيت: npm install --force أو قم بحذف ملف package-lock.json ثم نفذ الأمر: npm install --force
  6. رغم أن المرجح هو ما أشار اليه عمر ومصطفى في التعليقات السابقة بخصوص جافاسكربت بدل جافا كفلترة على الواجهة الأمامية، إلا أنك ان كنت تستخدم جافا كلغة واجهة خلفية وتريد التعامل مع عملية الفلترة من المكتبة الخلفية، يمكنك استخدام مكتبة Apache POI للتعامل مع ملفات Excel في Java. هنا هو مثال بسيط لكيفية قراءة ملف Excel وعرض النتيجة باستخدام رقم الجلوس: import org.apache.poi.ss.usermodel.*; import org.apache.poi.xssf.usermodel.XSSFWorkbook; import java.io.FileInputStream; import java.io.IOException; public class ExcelReader { public static void main(String[] args) { String filePath = "path/to/your/excel/file.xlsx"; String searchValue = "12345"; // رقم الجلوس المطلوب البحث عنه try (FileInputStream fileInputStream = new FileInputStream(filePath); Workbook workbook = new XSSFWorkbook(fileInputStream)) { Sheet sheet = workbook.getSheetAt(0); // استخراج ورقة العمل الأولى for (Row row : sheet) { Cell cell = row.getCell(0); // استخراج الخلية الأولى في كل صف (قم بتعديلها حسب هيكل ملف Excel الخاص بك) String value = cell.getStringCellValue(); if (value.equals(searchValue)) { // تم العثور على النتيجة المطلوبة System.out.println("تم العثور على النتيجة!"); // يمكنك عرض البيانات الأخرى في الصف حسب احتياجاتك // مثلاً: Cell otherCell = row.getCell(1); // String otherValue = otherCell.getStringCellValue(); // System.out.println("قيمة أخرى: " + otherValue); break; } } } catch (IOException e) { e.printStackTrace(); } } } قم بوضع رقم الجلوس كقيمة للمتغير searchValue ومسار الملف مكان filePath وشغل البرنامج.
  7. ما المشكلة التي تظهر على وجه التحديد؟ هل يمكنك التقاط صورة لها؟
  8. ان كانت التغييرات تشمل ملفات المكونات والعروض بـ VueJS فهذا في الغالب بسبب أن التعديلات لم يتم تحزيمها ونشرها الى ملفات مبنية بعد، لهذا ستحتاج تنفيذ الأمر: npm run build لإخراج مجلد البناء. أما ان كانت التعديلات تشمل ملفات المتحكمات، المسارات أو غيررها في تطبيق لارافيل فهذا في الغالب بسبب التخزين المؤقت لها، لهذا سنتأكد من تشغيل الأوامر: php artisan cache:clear php artisan route:clear php artisan view:clear وقد يكون كلا الاحتمالين، ولذلك يرجح تنفيذ الأمر الأول ثم الثلاث أوامر الأخرى لذات المشاكل.
  9. الجداول غير واضحة ولا يحمل كل منها مضمونا مستقلا، ولكن لنقم بتنظيمها بحسب سياق الكلام ونماذج البيانات في: الجدول / نموذج البيانات الأول هو جدول الطالب الجدول / نموذج البيانات الثاني هو المدفوعة الجدول / نموذج البيانات الثالث هو الإختبار الجدول / نموذج البيانات الرابع هو الغياب من السابق، يمكن الخروج بالاستنتاجات: الطالب يدفع كل شهر، بمعنى له عدة مدفوعات الطالب يمتحن في اختبارات كثيرة، بمعنى له عدة مدفوعات يتم تسجيل غيابات وحضور الطالب بشكل دائم، بمعنى أن له عدة غيابات وعليه: العلاقة بين جدول الطلبة وجدول المدفوعات هو one to many العلاقة بين جدول الطلبة وجدول الاختبارات هو one to many العلاقة بين جدول الطلبة وجدول الغيابات هو one to many فكل الجداول الثلاث المدفوعات، الاختبارات والغيابات يجب أن تمتلك مفتاحا اجنبيا يميز صفا من جدول الطلبة.
  10. من المرجح أن تكون قمت بتحديد خيار استخدام الوصول بواسطة اسم مستخدم وكلمة مرور مباشررة بدلاً من استخدام المفاتيح العامة والخاصة (SSH keys) أو رمز المصادقة الشخصي (Personal Access Token). للأخذ بالحل الثاني يمكنك اتباع الخطوات: توجهي الى حسابك على غيتهب توجهي الى اعدادات الحساب ثم إلى اعدادات المطور Developer settings توجهي الى Personal access tokens اضغطي generate new token اختاري الخيار classic اعطه الصلاحيات اللازمة قومي بتأكيد انشاءه الآن يمكن استعمال هذا الرمز بدل كلمة المرور الخاصة بك عند طلب المصادقة،
  11. مجلد "Windows/Temp" هو مجلد مؤقت يستخدم بواسطة النظام والتطبيقات لتخزين الملفات المؤقتة. عادةً ما يكون آمنًا كتابة الملفات إلى هذا المجلد وتعديلها بواسطة التطبيقات المعتمدة.ومع ذلك، يمكن أن يكون من الأفضل ترك المجلد بصفة قراءة فقط (Read-only) أفضل إذا كنت تشعر بالقلق بشأن أمان النظام الخاص بك أو إذا كان لديك مخاوف بشأن التطبيقات التي يمكن أن تستخدم هذا المجلد بطريقة غير ملائمة. وعموما، ينصح بممارسة الحذر عند تشغيل أي تطبيق يتطلب الوصول إلى مجلدات النظام مثل "Windows/Temp". يفضل أن تتأكد من مصدر التطبيقات التي تستخدمها وأن تثق فيها قبل السماح لها بالكتابة على هذا المجلد أو أي مجلدات أخرى في نظام التشغيل الخاص بك. وفي مثل حالتك، أظنه تطبيق لارافيل، إذ لا بأس في ذلك ويمكنك جعل هذا المجلد قابل للكتابة والتعديل وإزالة الخيار Read-only نعم.
  12. أظنك تقصد "حاسبات"، وعموما نعم، يوجد فرق طفيف رغم أن الشهادة معادلة في كليهما. فمعهد حاسبات ومعلومات: يعتبر مؤسسة تعليمية تقدم برامج تعليمية في مجالات الحاسبات وتكنولوجيا المعلومات. يهدف إلى تأهيل الطلاب للعمل في مجالات تقنية المعلومات مثل تطوير البرمجيات، نظم المعلومات، تحليل البيانات، أمن المعلومات وغيرها. عادةً ما تكون مدة الدراسة في المعهد محدودة وتتراوح بين عامين إلى ثلاث سنوات. أما كلية حاسبات: فهي مؤسسة تعليمية جامعية تقدم برامج درجة البكالوريوس والماجستير في مجالات حاسبات وتكنولوجيا المعلومات. تشمل البرامج الأكاديمية في الجامعة مجموعة واسعة من التخصصات مثل علوم الحاسب، هندسة البرمجيات، نظم المعلومات، الذكاء الاصطناعي، الشبكات والأمن وغيرها. تهدف الجامعة إلى توفير تعليم عالي المستوى وبحث متقدم في مجالات الحاسبات وتكنولوجيا المعلومات.
  13. العمل في عمر مبكرة قد لا يكون ضروريا في مثل هاته المجالات ولا يتم التوظيف إلا نادرا. اذ وأنه وبغض النظر عن الخبرات التقنية، قد يكون هنالك بعض المهارات الأخرى الضرورية للعمل من مثل الصبر وحس الإلتزام وروح الفريق ومثل هاته الأمور التي نادرا ما توجد عند الأقل سنا. بدل ذلك، قم بالتركيز أكثر على استثمارك لمعارف جديدة في المجال وطور بها خبراتك، ولا تستعجل العمل. بخصوص مجال الهكر الأخلاقي، فأظن أن أقرب دورة له هي دورة علوم الحاسب فهي تعتبر توطئة لأي مجال برمجي بشكل عام، إذ أن الطالب فيها يتأسس على مجموعة معارف تتداخل في مجالات مختلفة من مجالات تطوير البرمجيات وعلوم الحاسب.
  14. يوجد حزمة fcm لذلك، سيجب عليك أولا تثبيتها عن طريق مدير الحزم composer: composer require laravel-notification-channels/fcm ثم حزمة kreait/laravel-firebase لأنها تقتضيها عند التثبيت: composer require kreait/laravel-firebase ثم قم بتصريح متفير يوافق رابط قاعدة بيانات Firebase الخاصة بك: FIREBASE_DATABASE_URL=https://<your-project>.firebaseio.com ثم بنشر اعدادات الحزمة: php artisan vendor:publish --provider="Kreait\Laravel\Firebase\ServiceProvider" --tag=config سيمكن بعد ذلك البدء في استعمال الحزمة، يمكنك القراءة عن المزيد تفاصيل التثبيت والاستعمال من هنا
  15. الإجابة باختصار هي: يجب عليك تعلم ما يكفي، ولما التساؤل عن العدد او الكم؟ عموما، ستحتاج كمعرفة كافية للإلمام بجافاسكربت والإنطلاق فيها الإحاطة بكل من المفاهيم: سياق اللغة بشكل عام. العبارت الشرطية والحلقات. الكائنات والتعامل معها. الدوال أسس البرمجة الشيئية. الأحداث والتعامل معها. التعامل مع المصفوفات والعناصر. AJAX واستدعاء البيانات. الوعود. استخدام المكتبات والإطارات الجاهزة. تطوير جانب الخادم. أدوات التطوير . مفاهيم أمان الويب. كل هاته المفاهيم يتم التعرض لها في محطات مختلفة من دورة تطوير التطبيقات باستخدام جافاسكربت، ولا يمكن بأي حال من الأحوال اكتسابها مرة واحدة، بل ينبغي التعرض لها تدريجيا وذلك بحسب التدرج في طرح المادة العلمية المتبع في الدورة، فما عليك إلا متابعة الدورة وعدم استعجال أي شيء.
  16. استعمال أحد الحقول radio وcheckbox و select يحدده في الغالب نوع البيانات المتعامل معه ومنطقنا في تبسيط هاته البيانات له. يختلف طبعا تعاملك مع هاته البيانات او طريقة هيكلتك لها، ولكن عموما نعتمد كل نوع من أنواع هاته الحقول: radio عند التعامل مع بيانات من نوع enum، فعند تحديد جنس المستخدم مثلا نعتمد هذا النوع checkbox عند التعامل مع بيانات من نوع boolean، فعند التحقق من موافقة المستخدم على شروط الاستخدام نعتمد هذا النوع حقل select يستعمل عند التعامل مع بيانات من نوع enum أو عند تحديد قيم لمفاتيح اجنبية. مثال: عند تحديد فئة المنتج نعرض قائمة select بها خيارات الفئات التي نريد الاختيار من بينها طبعا فإن هذا هو الاستعمال العام لها، قد يختلف بحسب حاجات المستخدم أو حالات الاستخدام.
  17. يحدث هذا في الغالب بسبب التقاط ملفات العروض كملفات مؤقتة خصوصا في بيئة انتاجية، أظنك ستحتاج كل مرة تقوم فيها بتعديل ما بمحو التخزين المؤقت لملفات العروض لكي يتم طلب vite manifest جديد عليه مسارات الملفات الجديدة. و vite manifest هو ملف جيسون يتم توليده بداخل مجلد build يصف كل مسار فرعي. نفذ الأمر التالي لذلك: php artisan view:clear
  18. يتم ذلك وفق نفس الفكرة تقريبا، لا اختلاف مع التعامل مع اي حقل مدخلات آخر، اذ ستحتاج: قراءة قيمة حقل select المعني باستعمال اسمها كمفتاح لمصفوفة متغيرات الطلب POST_$ خزنها الى متغير محلي او عام التعامل مع قيمتها بشكل مباشر مثال عملي: $mySelectOption = $_POST['select_field_name']; exho $mySelectOption; سيمكن بعد هذا حقن هاته البيانات الى قاعدة البيانات بشكل مباشر: $sql = "INSERT INTO my_table(my_column) VALUES ('$mySelectedOption')"; طبعا فإن هذا يقتضي أن يتم ارسال الباينات من الواجهة الامامية بصورة صحيحة، اذ يجب أن يوافق اسم الحقل الاسم المتعرف عليه من الواجهة الخلفية، وكما يجب ان يكون الحقل في نموذج استمارة form طبعا.
  19. هاته ليست الطريقة الصحيحة لاستعراض مشروع لارافيل، كما أن تشغيل خادم vite لا يغني عن تشغيل خادم artisan أو تشغيل التطبيق من على xampp عموما. قم بتشغيل الامر: php artisan serve مع الأمر: npm run dev ثم قم باستعراض المشروع من على الرابط المتحصل عليه من تشغيل الأمر الأول، هو عادة ما يكون: http://127.0.0.1:8000/ يفترض أن يعمل معك الآن.
  20. هاته ليست الطريقة الصحيحة لتشخيص المشكلة، قم أولا بتفعيل وضع التصحيح DEBUG MODE أو باستعراض رسائل ونصوص المشاكل التي تظهر. وعموما، يكون هنالك ملف logs على الخادم يقوم بالتقاط كل هاته الاستثناءات exceptions مفصلة، قم بالبحث في خادمك المستضيف عن ملف السجل واعرف المشكلة، رغم أن كل شيء كان يعمل بشكل صحيح، إلا أن هذا لا يعني أي شيء لدلالة الخطأ 500 فهو حتما بالخادم. يحتمل ان تكون المشكلة ايضا متعلقة بتعطل استعمال برمجيات طرف ثالث من جانب الخادم، كأن تقوم بالاستعانة بواجهة برمجية خارجية مثلا.
  21. مرحبا حمزة وعليكم السلام ورحمة الله، ينبغي فهم أن اتمام اربع مسارات هو ليس إلا شرطا لإجتياز الامتحان غرض الحصول على الشهادة، ولا يتم بطبيعة الحال امتحان الطلبة في هاته الأربع مسارات فقط، اذ سيتم اختبارهم في المادة العلمية المقدمة في الدورة ككل وليس في الاربع مسارات فقط. فالشهادة ستكون بصيغة "أتم وبنجاح دورة كذا" وليس "أتم وبنجاح المسارات كذا وكذا من الدورة كذا".
  22. github في الأصل ليس إلا خدمة استضافة تستعمل نظام git في ادارة البرمجيات، وgit هو نظام للتحكم في النسخ version control system ويتم استعماله عادة للتنسيق بين شركاء التطوير في إدارة المشروع وتطويره. فالمشاريع البرمجية الكبيرة عادة ما يتم العمل عليها من قبل أكثر من شخص في نفس الوقت، وفي هاته الحالة سوف يحتاج كل من المشتغلين على المشروع، في مثل هاته الحالة سوف لن يكون من العملي نقل النسخ المحدثة وتبادلها بين الأعضاء. سوف يكون هنا استعمال غيت عمليا جدا، اذ سيقوم كل من الأعضاء بالعمل على جزءه من المشروع بشكل مستقل ثم في آخر كل يوم مثلا يقوم كل من الأعضاء باستخدام غيت لرفع التحديثات التي قاموا بها. في هاته المرحلة سيقوم مشرف المشروع أو قائد الفريق بمقارنة أي تعارضات ودمج هاته الفروع في مشروع واحد، وأخيرا يقوم كل من الأعضاء باستخدام غيت مرة أخرى لسحب هاته التغييرات. ويتم العمل هكذا .. من المهم أيضا استعماله بشكل شخصي، فقد تحتاج استضافة مشاريعك البرمجية وتخزينها بمكان ما يسهل الوصول إليه. كل هذا بجانب استعماله في غرضه الاساسي وهو التحكم في النسخ، فقد تحتاج مستقبلا استعراض نسخة سابقة من مشروع برمجي قمت بتحديثه. غيت يحتفظ بكل هذا.
  23. ما المشكلة التي تواجهها على وجه التحديد؟ انتبه أنك لا تقوم أصلا باستعراض الملف على المتصفح في قوقل كروم، تأكد من فتح الملف Untitled-1.html بإستعمال متصفح الويب الخاص بك. أيضا لا تنسى حفظ محتويات ملفي Untitled-1.html وindex.js، في VS code يمكن ذلك عن طريق: الضغط على CTRL + S سيمكنك بعد هذا استعراض محتوى الملف بشكل سليم.
  24. طبعا فإن هذا يعتمد على اجابة السؤال: "ما مدى اطلاعك على ما ستقوم بتخطيه؟" ، هل تقوم بتخطيه لأنك مطلع بالفعل على ما سيقدم أم أنك تستعجل التطبيق العملي وتجد المحتوى النظري مملا مثلا؟ مبدئيا، لا ينصح بذلك إذ أن تسلسل الدروس في الأكاديمية ليس موضوعا اعتباطا فهو يخضع للتسلسل في التعقيد وكذلك في طرح المادة العلمية والتعرض لها .. فقد يتم مثلا في مسار بناء صفحات الهبوط الاعتماد على جزئية تم شرحها بإسهاب في مسار سابق. وقد يكون هذا مشكلة وتشتيتا لبعض الطلبة. ولكن، مثلما أشار مصطفى، فإنه قد لا يشكل ذلك فرقا لبعض الطلبة الذين يمتلكون أغلب المعارف المتعرض لها كمكتسبات قبلية. ومع ذلك، أظن أنه من الأفضل المرور عليها وعدم تخطيها بشكل مباشر. أو على الأقل مشاهدتها دون تطبيقها عمليا أو تدوين ما تم شرحه.
  25. لا داع من سياق المقارنة للتحقق مما ان كان قد تم تخزين بيانات في التخزين المحلي من قبل أو لا، يمكن التغاضي عن هاته الخطوة وفحصها مباشرة. فالقيمة undefined و null وغيرهما تعتبر قيم خاطئة falsy values تتضمن معنى القيمة المنطقية false. أصلح ذلك ليكون: localStorage.getItem('data') ? JSON.parse(localStorage.getItem('data')) : [] أيضا تأكد من تخزين سلسلة جيسون سليمة أول مرة. اذ يحتمل أن يكون السطر الثاني هو المسؤول عن المشكلة.
×
×
  • أضف...