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

عمر قره محمد

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

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

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

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

    40

كل منشورات العضو عمر قره محمد

  1. عند الاشتراك في دورة ما فإنك تحصل على الدورة التي اشتركت فيها فقط. ستحصل أيضاً على وصول مجاني إلى المسارات الاولى من كل من الدورات البقية.
  2. يمكنك الاشتراك في الأكاديمية من اي مكان من العالم، ل إذا اردت التواصل مع مركز المساعدة في حال واجهتك اي مشاكل في ذلك من هنا. هذا دليل كامل يشرح لك كيفية الاشتراك في الدورات من الالف للياء من هنا.
  3. ابدأ بالواجهة الخلفية وذلك حتى تقوم بالربط مباشرةً اثناء بناء الواجهة الامامية، وحتى يكون لديك فكرة اوضح عن المشروع وتعديلات اقل لاحقاً. ويمكنك تقسيم المشروع لمراحل بحيث تنتهي من مرحلة في الواجهة الخلفية ثم تقوم ببناء الواجهة الامامية الخاصة بها، وهذا يعتمد على حجم المشروع الخاص بك. انتبه إلى ان بناء الموقع بشكل كامل ك backend في البداية سيوفر عليك الكثير من الوقت بدلاً من الذهاب والعودة بين الواجهة والخلفية ولكنه سيبقي العميل بدون اي اطلاع على العمل وبالتالي قد تضطر إلى تعديلات لاحقاً، ولذلك يجب ان تحصل على توصيف دقيق 100% حول المشروع ورغم ذلك سيكون هنالك تعديلات احياناً.
  4. هنالك الكثير من الطرق للربح بعد الانتهاء من الكورس : العمل في مواقع العمل الحر بناء template جاهزة وبيعها على مواقع بيع المواقع الالكترونية مثل بيكاليكا العمل في شركة او مع مجموعة مبرمجين بناء مشاريع برمجية خاصة والربح منها قد يقيدك الاطلاع على :
  5. هل تقصد في برنامج vs code ؟ إذا كان هذا ما تقصده فجرب اعادة تشغيل vs code ثم حاول مرة ثانية. في حال لم يحل ذلك المشكلة فقم بالنقر على زر الاعدادات في اسفل يسار الشاشة ومن ثم اختر keyboard shortcut وابحث عن quickOpenNavigateNextInEditorPicker وتأكد من كون الاختصار الخاص بها هو ctrl + tab وإلا عدلها لتصبح ctrl + tab. إذا لم تكن تقصد vs code فقم بشرح مشكلتك بشكل افضل حتى استطيع مساعدتك
  6. قم بمشاركة المجلد الخاص بالمشروع بالكامل رجاءً حتى استطيع تجريب الكود، إذا لم تعلم كيفية مشاركة مجلد المشروع فما عليك فعله هو ضغط المجلد اولاً ومن ثم مشاركته في التعليقات مثل :
  7. ماهي النتيجة التي تتوقعها ؟
  8. قم بمشاركة كامل ملفات المشروع رجاءً
  9. هل تستخدم body-parser في طرف النود، بالحالة الافتراضية لا يستطيع خادم express الوصول إلى الـ body ولذلك يجب ان تستخدم الوظيفة الوسيطة body-parser حتى تصل لهذه الحقول : var express = require('express') var bodyParser = require('body-parser') var app = express() // parse application/x-www-form-urlencoded app.use(bodyParser.urlencoded({ extended: false })) // parse application/json app.use(bodyParser.json()) في حال كنت تستخدم body-parser بالفعل فأنا احتاج لكامل ملفات المشروح حتى استطيع تحديد سبب المشكلة
  10. هذا طبيعي لأن FormData هو عبارة عن class وإذا كان هدفك هو التحقق من كون الـ formData يحتوي على قيمة معينة فيمكنك القيام بذلك باستخدام الوظيفة get التي يقدمها هذا ال class كالتالي : formData.get("key"); حيث ان key هنا هو اسم الحقل وهذا مثال كامل : const formData = new FormData(); formData.append("key", "value"); console.log(formData.get("key")); // value
  11. يمكنك القيام بذلك عبر تنزيل المشروع من GitHub باستخدام الامر clone (سيتم تنزيل ملف git معه في هذه الحالة) ويفضل ان تقوم بتنفيذ الامر السابق باستخدام cmd وان يكون المسار هو سطح المكتب حتى تستطيع الوصول إلى المجلد الناتج بسهولة : git clone https://github.com/user_name/repository_name.git ويمكنك الحصول على الرابط السابق بالضغط على الزر الاخضر (code <>) في صفحة المستودع على GitHub. بعد ذلك يمكنك نسخ ملف الـ git إلى المشروع الخاص بك وسيقوم vs code بتحديثه بناءً على التغيرات الحاصلة بشكل تلقائي. وبعدها يمكنك كتابة الاوامر : git add . git commit -m "your message" git push
  12. هل يمكنك مشاركة ملفات المشروع بالكامل حتى استطيع التجريب ومساعدتك بشكل افضل
  13. الامتحان مفتوح المدة ويمكنك التقدم له متى اردت ذلك وكذلك الامر يمكن التقدم له عدد غير محدد من المرات اعرف اكثر عن الامتحان من هنا : https://support.academy.hsoub.com/exams
  14. عدل الكود كما يظهر في الصورة بحيث تحذف المسافة بين الـ location و href وكذلك الامر استخدم location بحرف l صغير بدلاً من Location : <!-- <button onclick="Location. href='search.html';" class="btn btn-outline-info my-2 my-sm-0" type="submit">ابحث</button> --> <button onclick="location.href='search.html';" class="btn btn-outline-info my-2 my-sm-0" type="submit">ابحث</button> في المرة القادمة قم بنشر سؤالك في قسم التعليقات اسفل الفيديو بدلاً من قسم التعليقات العامة. حيث ان هذا القسم مخصص للأسئلة العامة وليس اسئلة الدروس. شكراً لك.
  15. عند تعريف ال user يجب ان تقوم بإضافة الـ reference حتى تعرف mongoose ماهي الـ collection التي تقصدها : const ImageSchema = new Schema({ user: { type: Schema.Types.ObjectId, ref: "example" // اسم المودل التي تحتوي المستخدمين }, title: { type: String, required: true }, ... وهذا مثال بسيط يوضح كيفية ربط المودل ببعضهم البعض : const mongoose = require('mongoose'); const { Schema } = mongoose; const personSchema = Schema({ name: String, age: Number, stories: [{ type: Schema.Types.ObjectId, ref: 'Story' }] }); const storySchema = Schema({ author: { type: Schema.Types.ObjectId, ref: 'Person' }, title: String, fans: [{ type: Schema.Types.ObjectId, ref: 'Person' }] }); const Story = mongoose.model('Story', storySchema); const Person = mongoose.model('Person', personSchema);
  16. لا لا يوجد وقت محدد ويمكنك حضور الدورة في اي وقت تريدينه، حيث سيكون المحتوى الخاص بالدورة متوفر لديك بالكامل ويمكنك التحكم في وقت الدراسة بالشكل الذي يناسبك. وكذلك الامر لا يوجد وقت محدد للدورة والوقت الموجود في معلومات الدورة هو عدد الساعات المرئية المتوفرة ويمكنك مشاهدتها خلال مدة غير محدودة. بعد قول ذلك فالوقت المفضل للدراسة هو في الصباح الباكر وهذا هو الوقت الذي انصحك بالدراسة فيه.
  17. دورات أكاديمية حسوب هي دورات شاملة لتعلم البرمجة ولا يوجد دورة متخصصة بالتصميم بعد. ولكن يوجد سلاسل من المقالات التي تشرح مختلف مجالات التصميم و الـ UI/UX وغيرها ويمكنك الوصول إليها من هنا : مقالات التصميم في اكادمية حسوب
  18. قم بالتعليق اسف الدرس الذي تقصده رجاءً (قسم التعليقات اسفل الدرس الذي تشاهده وليس الاسئلة العامة)
  19. قم بالتعليق اسف الدرس الذي تتحدث عنه رجاءُ، حتى افهم مالذي تتحدث عنه وذلك لأن الـ حلقة العبور for...in لا نستخدم فيها الـ index عادةً وقد يكون هنالك تفاصيل اخرى في الكود هي التي تحتاج للـ index. وهذا مثال بسيط على استخدام for...in : const object = { a: 1, b: 2, c: 3 }; for (const property in object) { console.log(`${property}: ${object[property]}`); } // النتيجة // "a: 1" // "b: 2" // "c: 3"
  20. نعم بالتأكيد يوجد مواقع تدعم هذه الفكرة وهنالك الكثير من المواقع تعميل على أكثر من سيرفر (سيرفر لقواعد البيانات وآخر للصور والملفات واحياناً يكون هنالك واحد للـ frontend وآخر للـ backend ..إلخ). وعدد السيرفرات يعتمد على حجم الموقع واحتياجاته وغالب المشاريع البسيطة إلى المتوسطة ستحتاج لخادم واحد عادةً بالإضافة لخوادم الطرف الثالث إذا كان هنالك أي منها.
  21. مرحباً محمد، يمكنك حفظ الصورة عبر النقر على زر PrtSc ومن ثم فتح الرسام والنقر على ctrl + v من اجل لصق الصورة في التعليق.
  22. مرحباً محمد، هل يمكنك مشاركة صورة لهذه الصفحة حتى افهم مالذي تتحدث عنه ؟
  23. لم افهم ما تقصده، هل يمكنك تبيان مشكلتك بشكل اوضح ؟
  24. يجب ان تقوم بإنشاء ملف HTML ومن ثم تربطعها مع هذه الصفحة وتفتح صفحة الـ html وليس الجافاسكريبت مثل : <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> </head> <body> <script src="./index.js"></script> </body> </html> حيث ان المسار "./index.js" هنا يشير إلى ملف باسم index.js بجانب صفحة الـ HTML ويجب ان تعدل هذا المسار بحسب موضع ملف الـ js بالنسبة لملف ال html الذي تنشئه او تضعه بجانبه مباشرةً وتستخدم الكود السابق.
  25. هذه تسمى confirm في جافاسكريبت وهي تكتب بالشكل التالي : confirm("Press a button!\nEither OK or Cancel."); ويمكنك استخدامها في سياق الوظائف المختلفة بالشكل : let text; if (confirm("Press a button!") == true) { text = "You pressed OK!"; } else { text = "You canceled!"; } console.log(text)
×
×
  • أضف...