-
المساهمات
3126 -
تاريخ الانضمام
-
تاريخ آخر زيارة
-
عدد الأيام التي تصدر بها
29
نوع المحتوى
ريادة الأعمال
البرمجة
التصميم
DevOps
التسويق والمبيعات
العمل الحر
البرامج والتطبيقات
آخر التحديثات
قصص نجاح
أسئلة وأجوبة
كتب
دورات
كل منشورات العضو محمد عاطف17
-
يفضل إرسال صورة للتنسيق الذى يظهر لديك وأيضا شيفرة html وما هو الذى تريد تحقيقه حتى نرى أين المشكلة .
- 7 اجابة
-
- 1
-
من الأفضل أولا فهم طريقة عمل ال api في لارافيل أو فقط الأساسيات اللازمة لإنشاء ال apis حتى تتمكن من إستكمال مشروعك . يمكنك إستخدام JTW في لارافيل أو Laravel Passport لتوفير طبقات الحماية والتفويض والمصادقة من خلال لارافيل . يمكنك قراءة هذا المقال عن Laravel Passport أو يمكنك البحث على يوتيوب عن شرح له . ويمكنك قراءة تلك الأجوبة حتى تتضح الرؤية لك أكثر عن كيفية الربط بين لارافيل Api و أى إطار عمل خاص بالواجهة الأمامية . ويمكنك إرسال ال token عن طريق ال session حيث يجب وضعه فى ال session وليس localStorage كما هنا . او يمكنك إضافته فى localStorage ولكن سيتوجب عليك في كل مرة ترسل طلب إلى الخادم أن تقوم بقراءته من localStorage وثم إرساله إلى لارافيل
-
إن المكتبات الخاصة بالجافاسكريبت لا يمكن تثبيتها في لارافيل عن طريق composer ولكن يمكنك تثبيتها عن طريق npm في لارافيل إذا كانت متاحه في npm ويمكنك إستخدام vite أو laravel mix لتحزيم تلك المكتبات ومن ثم إستدعاء الملف المحزم في blade في لارافيل . ولكن بما أن filepond لا تحتاج لذلك فيمكنك تحميل الملف من cdn وثم وضعه في ملجد public وإستدعاءه عن طريق دالة asset في ملف blade في لارافيل هكذا . <script src="{{ asset('js/filepond.min.js') }}"></script> حيث هنا إفترضنا أن الملف بداخل مجلد js بداخل مجلد public في لارافيل .
-
الأمر بسيط يمكنك إنشاء عنصر anchor و هو المسؤل عن إنشاء روابط في صفحات ال html . حيث يحتوى العنصر a على خاصية تسمى href وهى ما تسمح لهذا العنصر بالذهاب إلى رابط أخر عند الضغط عليه . <a href="https://www.google.com/"> جوجل </a> حيث في العنصر السابق وضعنا عنوان موقع جوجل فى الخاصية href و هكذا إذا تم الضغط على الزر سيتم الذهاب إلى موقع جوجل . وإذا أردت جعله يظهر مثل الزر يمكنك إستخدام التنسيق التالى ووضع ال Class للعنصر .button { display: block; width: 115px; height: 25px; background: green; text-decoration: none; padding: 10px; text-align: center; border-radius: 5px; color: white; font-weight: bold; line-height: 25px; } ويمكنك قراءة هذا الدرس على موسوعة حسوب لتعرف أكثر عن العنصر a
-
الامر بسيط إذا كنت قد قمت بإنشاء ال Data Structuser الخاصة بقاعدة البيانات ولم ترد أن تقوم بتعديل ال collection الخاصة بالمستخدم فيمكنك إنشاء collection جديد ولنفرض إسمه sms_verifications و يحوي فقط ثلاثة حقول الأول هو ال id الخاص بالمستخدم و الثانى هو كود التفعيل المرسل و الأخير هو وقت إنتهاء الكود حيث يجب عليك وضعك وقت بحد أقصى 10 دقائق لإنتهاء الكود وذلك حفاظا على الأمان. والآن بمجرد طلب المستخدم كود تفعيل تقوم بإنشاء كود عشوائى وتقوم بحفظه في collection ال sms_verifications مع حفظ ال id الخاص بالمستخدم و من ثم إرسال الكود إلى الهاتف ويوجد العديد من المواقع التى تساعدك على ذلك مثل twilio و vonage . والآن عند إرسال المستخدم الكود الذى أرسل له تقوم باحضار السجل من sms_verifications بال id الخاص بالمستخدم ومن ثم مقارنة الكود مع التأكد من عدم إنتهاء الكود ويفضل لو قمت بعمل hash للكود وعدم حفظه كما هو فى قاعدة البيانات . وإذا كان الكود صحيح ولم تنتهى صلاحيته تقوم بوضع حالة المستخدم أنه verified
- 3 اجابة
-
- 1
-
هل الخطأ السابق موجود أم ظهر خطأ أخر ؟ من المفترض أن تعمل على إصدار node 7.6.0 فما فوق . ما هو الإصدار الذى لديك ؟
-
ستجد في التوثيق الرسمى الخاص بالمكتبة spatie/laravel-pdf أنه يجب عليك تثبيت المكتبة globaly وليس local حيث تعتمد على المكتبة puppeteer و إصدار node 7.6.0. https://spatie.be/docs/browsershot/v4/requirements ويمكنك تنفيذ الأمر التالي : npm install puppeteer --location=global
-
وعليكم السلام ورحمة الله وبركاته . أولا لا يمكن المقارنة بين ال objects و بين data structures فهما شيئان منفصلان ولنشرح كل منهما : إن الكائنات (Objects) تُستخدم الكائنات في البرمجة الكائنية التوجه (Object-Oriented Programming)، وهي منهجية برمجية تركز على تنظيم البرامج حول الكائنات التي تتفاعل مع بعضها البعض حيث يتم إنشاء صنف (class) يعبر عن سلوك هذه الكائنات مثل السيارة أو الكتاب أو المستخدم ...... إلخ , ويتم توظيف هذا السلوك عن طريق إنشاء خصائص وسمات هذا الصنف . ويتم إنشاء كائن من هذا الصنف أى ان الكائن هو هذا العنصر الذى يتم إنشاءه من الصنف . ويمكنك قراءة هذا الدرس لنفهم أكثر عن الكائنات . أما عن هياكل البيانات (Data Structures): فهو علم مهتم بكيفية تنظيم وتخزين البيانات بشكل منظم لتحقيق أداء معين أو تلبية احتياجات معينة , حيث تشمل هياكل البيانات مجموعة متنوعة من الطرق لتنظيم البيانات مثل القوائم المتسلسلة، الأشجار، الجداول، إلخ. غالبًا ما تستخدم لتخزين وإدارة مجموعات كبيرة من البيانات وتوفير عمليات فعالة للبحث والإدخال والحذف ويتم غالبا إنشاء تلك الهياكل عن طريق الأصناف والكائنات . تلخيصا للسابق يمكننا القول إن الكائنات تمثل مفاهيم وكيانات في البرمجة تحتوي على بيانات وسلوك ، بينما تعتبر هياكل البيانات ترتيبا وتنظيما للبيانات لتحقيق أهداف معينة مثل الفعالية أو السهولة في الوصول إلى البيانات.
- 2 اجابة
-
- 1
-
يوجد لديك عدة أخطاء . اولا في ملف web.php فى السطر الذى تقزم بتحديده هذا السطر زائد ولا يجب كتابته حيث انك قمت بتعريف resource لل blog ولهذا فإن هذا السطر لا يجب كتابته . اما الخطأ الذى يظهر لديك هو انه يستقبل en وليس ١ لانك قمت بكتابة prefix ووضعت local parameter لهذا يجب على الدالة show ان تستقبل معاملين الاول هو اللغه local والثانى هو id لذلك قم بإضافة معامل قبل ال id يسمى lang .
- 2 اجابة
-
- 1
-
نعم أحسنتي الكود جيد ولكن توجد بعض المشاكل و بعض التعليقات . أولا إن المطلوب هو إستقبال عناصر المصفوفة من المستخدم ومن ثم طباعة جميع العناصر ما عدى العنصر رقم 3 في المصفوفة . وما قمتى به هو طباعة المصفوفة بأكملها مع جميع العناصر وقمتي فقط بالتاكد من ان القيمة المدخلة هى 3 وليس مكان عنصر المصفوفة . أما بالنسبة لمستوى الكود فهو جيد لا مشكلة به و لا يمكن إختصاره أكثر من هذا . والآن لنصلح الأخطاء معا : بالنسبة لهذا السطر c+=1 انتي تقومين بتنفيذه مرتين وهكذا فإن المستخدم إذا ادخل مثلا حجم المصفوفة 4 سيتم سؤاله مرتين فقط وستصبح المصفوفة يوجد بها عنصرين فقط أى ان نصف المصفوفة لن يتم إنشاءه والحل هو إدخال c+=1 بداخل هذا الشرط قبل سطر continue والخطأ الثانى هو أننا يجب أن نتاكد من المتغير c وليس value لانه كما أخبرتك يريد طباعة المصفوفة ما عدا العنصر الثالث وليس رقم 3 . وايضا بما أنكى قمتى بوضع المتغير c ب 0 إبتداءا إذا فإن العنصر الثالث سيكون ترتيبه 2 . ليصبح الكود الصحيح كالتالي : def func(): size=int(input("enter the number of your array's size")) c=0 array=[] while c < size: value=int(input("enter one items")) if c == 2: c+=1 continue array.append(value) c+=1 for i in array: print(i) func()
- 3 اجابة
-
- 1
-
مرحبا أحمد . يجب أن تتعلم كيفية تتبع الأخطاء حتى يكون مستواك متقدما وتستطيع إكتشاف الأخطاء بمفردك . والآن لنكتشف الأخطاء معا : اولا إن الطلب لا يتم عند إتمام الشراء حيث يخبرك أنه مطلوب عنوان وأنت بالفعل إخترت العنوان . ولاحظ أنك عند إختيار العنوان تتاكد أولا منه فى قاعدة البيانات . حيث حينما تقوم بإختيار عنوان يتم إرسال طلب إلى الخادم . والآ لنقم بفتح تبويبة network فى ادوات المطورين لنكتشف الخطأ ستجد أن الخطأ الذى يظهر لك هو أن المسار غير معرف . ستجد أنك لم تقم بتعريف ال Route الذى يقوم بإرجاع العنوان بال id فى الخادم . لذلك لنقم بإنشاءه . في ملف back-end\services\addressService.js لنقم بإنشاء الدالة التى تقوم بإرجاع العنوان بناء على ال id كالتالي : exports.getAddresse = asyncHandler(async (req, res, next) => { const user = await User.findById(req.user._id).populate('addresses'); let address=[]; user.addresses.forEach(element => { if(element._id == req.params.addressId) return address.push(element); }); res.status(200).json({ status: 'success', results: address.length, data: address, }); }); و الآن في ملف back-end\routes\addressRoute.js لنقم بتعريف مسار جديد وتمرير الدالة السابقة له هكذا .: const express = require('express'); const authService = require('../services/authService'); const { addAddress, removeAddress, getLoggedUserAddresses, getAddresse } = require('../services/addressService'); const router = express.Router(); router.use(authService.protect, authService.allowedTo('user')); router.route('/').post(addAddress).get(getLoggedUserAddresses); router.get('/:addressId',getAddresse); router.delete('/:addressId', removeAddress); module.exports = router; وهكذا تم حل أول مشكلة و ستجد أنك تستطيع الآن ان تتم عملية الشراء . نأتى للخطأ الثانى وهو عدم اضافة التعليق والتقيم : لنقم بفتح خانة Network كما في السابق وعند إرسال الطلب الخاص بإضافة التعليق ستجد رسالة الخطأ تخبرك ان ratings لم يتم إرسالها و هى مطلوبة وإذا نظرنا إلى ما تقوم بإرساله ستجد أنك تقوم بإرسال rating بدلا من ratings لهذا هو يعتبر أنك لم تقم بإرسال أى تقيم وحل تلك المشكلة في ملف front-end\src\hook\review\add-rate-hook.js سطر رقم 38 قم فقط بإضافة حرف s هكذا : ratings: rateValue والآن سيعمل معك بشكل جيد وتستطيع إضافة أى تقيم . وقد قمت بإرفاق الملفات السابقى بعد التعديل . addressRoute.js addressService.js
-
لا نجيب هنا في الأكاديمية على أسئلة الإختبارات ولكن يمكننى توضيح فكرة الحل لكي . يمكنكي إستخدام حلقة التكرار while لتحقيق ذلك. أولا يجب سؤال المستخدم عن عدد العناصر إذا أردتي أن يقوم هو بتحديد عدد العناصر أو يمكنك أنتي تحديد عدد العناصر فى المصفوفة وبعد ذلك وضع هذه القيمة في متغير يشير إلى حجم المصفوفة. ثم بعد ذلك نقوم بإنشاء متغير يحوى قيمة صفر , ثم بعد ذلك ننشأ مصفوفة فارغة . ثم نقوم بعمل while loop وجعل الشرط هو التاكد من أن المتغير الذى قمنا بوضع قيمة إبتدائية له ليس اكبر من المتغير size الذى قام المستخدم بإدخاله وفي كل مرة داخل ال loop نقوم بسؤال المستخدم عن الرقم الجديد الذى يريد إضافته للمصفوفة وبعد ذلك نقم بوضعه داخل المصفوفة وبعد ذلك لا ننسى أن نقوم بزيادة قيمة المتغير ب 1 حتى لا يتم تنفيذ ال loop دائما . وهكذا قد تم إنشاء القائمة لدينا . يمكنك كتابة الكود بنفسك وإذا واجهتك أى مشكلة به فقط أخبرينى
- 3 اجابة
-
- 1
-
هذا الخطأ في بايثون ينتج عندما تحاولين تحويل سلسلة نصية تحتوى على أرقام عشرية وليست رقم صحيح . مثل هذا الكود . print(int('1.5')) الكود السابق سيظهر نفس الخطأ الذى ظهر لديكي . ولحل تلك المشكلة يمكنك إستخدام split ولكن الأفضل هو تحويل الرقم إلى float ثم بعد ذلك int هكذا . print(int(float('1.5'))) وهكذا فإن الكود السابق سيقوم بطباعة رقم 1 ويمكنك إستخدامه وتمرير القيمة التى أدخلها المستخدم لأنه إذا قام بإدخال رقم عشرى و لم يتم التعامل معه سيظل يظهر الخطأ السابق
- 1 جواب
-
- 1
-
وعليكم السلام ورحمة الله وبركاته . يبدوا أنك تقصد jupyter notebook . إن هناك فرق كبير بين jupyter notebook و vscode . حيث أن vs code هو IDE متكامل تقوم فيه بكتابة وتحرير الأكواد حيث يساعدك فى سرعة الكتابة والتطوير وهو يحتوى على العديد من الإضافات التى تساعدك فى جميع المجالات وليس مجال تعلم الآلة فقط . أما jupyter notebook فهو أداة قوية ومفيدة في تعلم البرمجة وعلوم البيانات وتطوير النماذج الذكاء الاصطناعي حيث يمكنك من تجربة الكود ورؤية النتائج على الفور داخل البيئة نفسها. ويساعدك في عرض ورسم البيانات. ولذلك فإن الأفضل في مجال تعلم الاله هو jupyter notebook لما يوفره من بيئه كامله وأدوات تفاعليه قويه
- 6 اجابة
-
- 1
-
يمكنك رفع المشروع على الإستضافات المجانية حيث يوجد لديك Heroku ولكنه أصبح حاليا يحتاج إلى دفع ولكنه سابقا كان أفضل شئ للاستضافه . إذا كانت قاعدة البيانات لديك sqlite يمكنك إستخدام Heroku حيث أن قاعدة البيانات الخاصة ب Heroku أصبحت خدمة مدفوعة أو يمكنك إستخدام إستضافه قواعد بيانات مجانية سواء كانت postgres أو mysql او حتى nosql . أو يمكنك إستخدام استضافة render و vercel وهما الإستضافتان المجانتيان الأفضل حاليا . ويمكنك الإستفادة من تلك الإجابات حيث تشرح خطوة بخطوة كيفية رفع المواقع على تلك الإستضافات .
- 2 اجابة
-
- 1
-
إذا كنت تريد رفع أكثر من صورة فيجب وضعهم جميعا فى مكان واحد حتى يتم رفعهم فى الواجهة الخلفية . حيث لاحظت انك تقوم كل مرة بإستدعاء الدالة handleImageChange بإستبدال الصورة الحالية ولهذا سيتم رفع صورة واحده فقط . لذلك أولا يجب عليك تغير طريقة إضافة الصورة هكذا : const handleImageChange = (e) => { const file = image; file.push(e.target.files[0]) setimage(file) } ويجب عليك تغير ال image إلى array فى كل مكان هكذا : const [image, setimage] = useState([]) ويجب عدم وضع الصورة في مصفوفة ال city ولكن فقط قم بوضع الإسم الخاص بالصورة حتى نقوم في الواجهة الخلفية بالتتحقق من الإسم الجديد لها . وبعد ذلك فى الواجهة الخلفية إذا كنت تقوم بإستخدام multer فيجب استخدام array بدلا من single هكذا : upload.single('image') upload.array('image') حيث يجب إستبدال السطر الأول بالسطر الثانى : وبعد ذلك بعد رفع الصور ستجد الصور فى req.files . ويمكنك الآن التكرار على ال files والتحقق من المصفوفة cites والتاكد من الإسم القديم originalname و الإسم فى مصفوفة cities و بعد ذلك إستبدال السم القديم في cities بالاسم الجديد filename و هكذا سيتم حفظها في قاعدة البيانات
- 1 جواب
-
- 2
-
تحتاج إلى إنهاء 4 مسارات على الأقل لدخول الإختبار و سيتم إختبارك في تلك المسارات فقط ولكن من المهم إنهاء الدورة بالكامل فالشهادة ليست أهم من تعلمك . يجب عليك رفع مشاريع تلك المسارات على منصة GitHub . ثم بعد ذلك تقوم بمراسلة مركز المساعدة وتوفير روابط المشاريع على GitHub ليتم مراجعتها، ثم تحديد موعد للإختبار ويمكنك الإختبار فى أى وقت تريد فقط بعد الإنتهاء من الدورة وحينما تكون جاهز يمكنك التقد للإمتحان في أو وقت ولا يوجد أى ديدلاين . ويمكنك مراسلة مركز المساعدة من خلال هذا الرابط لتقديم المشاريع التي قمت برفعها على منصة github ومن قم تحديد الامتحان .
-
وعليكم السلام ورحمة الله وبركاته . من شروط الحصول على الشهادة رفع المشاريع على حسابك على GitHub لذلك يجب عليك رفع المشاريع التي قمت بها للحصول على الشهادة. نعم بالفعل أى مشاريع عملية حتى ولو بسيطة فمن الأفضل تسليمها ، ويمكنك إنشاء مجلد لديك للدورة وتقوم بتقسيمه إلى مجلدات بداخله كل مجلد خاص بمسار ونضع بداخل ذلك المجلد التطبيقات العملية للمسار ثم بعد ذلك تقوم برفع هذا المجلد كاملا إلى مستودع GitHub . لكن المشاريع العملية الكبيرة يجب وضعها في مجلد خاص بها ثم تقوم برفعها على مستودع GitHub يحوى فقط هذا المشروع .
-
نعم بالفعل ، يمكن لصاحب المشروع استخدام لوحة التحكم admin المدمجة في Django لعرض أو تعديل وحذف البيانات في قاعدة البيانات التي تم تسجيلها من خلال المشروع ولا يتطلب إنشاء واحده أخرى . لتفعيل لوحة التحكم admin، يمكنك اتباع الخطوات التالية: تعريف النماذج (Models): يجب عليك التأكد من أن النماذج التي تريد عرضها في لوحة التحكم admin قد تم تعريفها في المشروع يمكنك القيام بذلك في ملف models.py في كل تطبيق ومثال لذلك : from django.db import models class Student(models.Model): name = models.CharField(max_length=100) age = models.IntegerField() grade = models.CharField(max_length=10) def __str__(self): return self.name تسجيل النماذج في لوحة التحكم admin: يجب عليك تسجيل (Register) للنماذج في لوحة التحكم admin. يمكنك فعل ذلك عن طريق تحرير ملف admin.py في كل تطبيق واستيراد النماذج ثم تسجيلها باستخدام admin.site.register() هكذا . from django.contrib import admin from .models import Student admin.site.register(Student) ومن ثم تشغيل الخادم والدخول إلى لوحة التحكم admin عن طريق العنوان /admin وإستخدام كلمة مرور وبريد المستخدم super user . بعد الدخول إلى لوحة التحكم admin، يمكن الآن لصاحب المشروع عرض البيانات المسجلة أو تعديلها وحتى حذفها بسهولة من خلال الواجهة المستخدمة.
- 2 اجابة
-
- 1
-
هل يمكنك إرسال صورة للصفحة التى تريد الخروج منها ؟ أما بالنسبة لطريقة زيادة الرامات فأولا يجب عليك إيقاف تشغيل ubunto وجعلها power off . ومن ثم الضغط على settings ثم ثم بالذهاب إلى System ثم قم بزيادة ال Base memory التى تريدها ثم الضغط على ok . كما فى الصور التالية . ومن الممكن أن تكون المشكلة من الرامات فيجب ألا تقل عن 2 جيجا حتى لا يحصل بطئ لديك ولذلك الحل الممكن هو زيادة سعة الرامات .
-
لا تقلق هذه مشكلة فى الخادم الخاص ب vmware فيبدو أنه إما تحت الإصلاح أو توجد مشكلة بالإتصال به حاليا و لكن يمكنك التجربة لاحقا . او البحث عن نسخة أخرى على الإنترنت ولكن الأفضل الإنتظار وتحميلها من الموقع الرسمى وهذا هو https://download3.vmware.com/software/WKST-PLAYER-1750/VMware-player-full-17.5.0-22583795.exe ولكن كما وضحت لك هو توجد به مشكلة الآن حتى لدى.
-
إن مجال هذه الدورة متقدم ويحتاج إلى معرفة سابقة أو أساسيات برمجية أي شخص لديه إلمام بأساسيات البرمجة وعلوم الحاسوب ، ولذلك فإن دورة علوم الحاسوب هنا في الأكاديمية هى الدورة المناسبة كبداية ، فهي ليست خاصة بمجال معين بل للتأهيل للدخول إلى مجال البرمجة عموما. ولكن أيضا في دورة الذكاء الاصطناعي تم مراعاة عدم وجود أى خبره ، حيث يتم الإفتراض أنه لا يوجد أي خبرة برمجية مسبقًا ويتم البدء من الصفر. ولا مشكلة في الإشتراك بدورة الذكاء الاصطناعي مباشرة دون الإحتياج إلى دورة علوم الحاسوب ، لكنك ستأخذ وقت كثير نسبيا لكي تستوعب بعض الأمور بها ، و يجب عليك في البداية عدم تخطي شرح أى أساسيات حيث يتم البدأ بشرح الأساسيات مثل لغة بايثون و قواعد البيانات ، لذا هي بها شرح جيد للأساسيات، لكن ستحتاج إلى البحث ودراسة بعض الأمور الأخرى خارج الدورة لكي تستوعب ما يتم شرحه.
- 1 جواب
-
- 1
-
أولا عنصر <header> : يستخدم <header> لتعريف رأس صفحة الويب, حيث يمكن أن يحتوي <header> على عناصر مثل شعار و إسم الموقع , وروابط التنقل الرئيسية والبحث، والمعلومات الأساسية عن الموقع. و غالبا ما يظهر في الجزء العلوي من الصفحة. ثانيا عنصر <nav> : يستخدم <nav> لتعريف مجموعة من الروابط التنقل داخل الموقع. يمكن أن يحتوي <nav> على قائمة رئيسية لروابط الموقع أو قائمة تنقل فرعية. حيث يساعد في تنظيم وترتيب الروابط لسهولة التصفح. ثالثا عنصر <section> : يستخدم <section> لتنظيم المحتوى داخل الصفحة إلى أقسام مختلفة .عادة ما يحتوي <section> على محتوى ذي صلة يمكن تجميعه معاً، مثل فصل المحتوى المتعلق بموضوع معين. رابعا Class: الـ Class هو سمة (Attribute) يمكنك إضافتها لعناصر HTML لتحديد مظهرها أو سلوكها بشكل مخصص. حيث يستخدم الـ Class لتطبيق نفس السمات على عناصر متعددة فى ملفات ال CSS , أو لتحديد عناصر معينة لتطبيق سمات فريدة عليها أو التلاعب بها فى ملفات ال JS .يمكن استخدامها في CSS لتحديد الأنماط التي تطبق على عناصر محددة. خامسا عنصر <footer> : يستخدم <footer> لتعريف تذييل صفحة الويب. حيث عادة ما يحتوي <footer> على معلومات الاتصال، وروابط إضافية، ومعلومات حول الموقع. و يظهر عادة في الجزء السفلي من الصفحة. هذه العناصر تساعد في تنظيم وتصميم صفحات الويب بشكل منظم وجذاب، وتسهل عملية التنقل والتفاعل مع المحتوى. ويمكنك قراءة تلك المقالات على موسوعة حسوب : header و footer و nav و section
- 3 اجابة
-
- 1
-
مرحبا إبراهيم . إذا لم يكن لديك أى خلفية مطلقا عن البرمجة أو التعامل مع الانترنت وفهم آلية عمله فإن دورة علوم الحاسوب هى المناسبة لك . ولكنك ستحتاج إلى دورة أخرى بعدها حيث إن هذه الدورة فقط للأساسيات وستساعدك على فهم المجال و يمكنك بعدها أن تقرر في أى مجال سوف تريد أن تعمل . سواء ك Full Stack او MERN Stack و Back-End و Front-End و أيضا يمكنك إختيار لغة البرمجة التى تحب أن تعمل بها . أما إذا كان لديك أساسيات بسيطة عن مجال البرمجة و معرفة ليست بالقوية فى مجال الانترنت فيمكنك إختيار أى دورة أخرى من الدورات المتاحة على حسب المجال الذى تريده و بعد الإنتهاء من واحدة أو أكثر من هذه الدورات ستكون لديك المعرفة والقدرة على البحث عن عمل ومزاولة مجال البرمجة , يمكنك الذهاب لهذا الرابط حيث توجد جميع دورات أكادمية حسوب ويمكنك قراءة ما يتم شرحه في كل دورة . وهذه بعض الأجوبة الأخرى يمكنك قرائتها بعناية حتى تقرر أى مجال تريد العمل فيه أو تحبه .
-
لا لا يمكن عمل casting فى flutter حيث أن السيرفر يتوقع بيانات معينة . من فضلك قم بمحاولة حذف <String, String> من ال body و حاول إرسال isActive ك boolean هكذا وأخبرنى بالنتيجة . body: jsonEncode({ "isActive":true }),
- 9 اجابة
-
- 1