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

كل الأنشطة

تحدث تلقائيًا

  1. الساعة الماضية
  2. الأمر يعتمد على الوقت الذي يتم تخصيصه يوميا وعلى الساعات التي يمكن دراستها خلال اليوم الواحد فمثلا قد يستطيع الانسان مذاكرة اكثر من شخص اخر اعتمادا على مدة التركيز والفراغ الذي نحصل عليه. وعلينا ان نفهم ايضا ان قدرة الاستيعاب من شخص الى اخر قد تختلف فمثلا مدة الدورة 69 ساعة فبعض الاشخاص قد يفهم المعلومة من مرة واحد وقد يحتاج بعض الاشخاص يحتاج ان يعيد الفيديو من مرتين الى ثلاث ليستوعب وحسب تعب الانسان اثناء مشاهدة الكورس فاثناء التعب نحتاج وقت اكثر. بشكل عام تحتاج الدروة من 3 الى 4 اضعاف الساعات المسجلة حسب التركيز وفراغ الذهن والوقت المخصص لانه نحتاج ان نوقف الفيديو ومن ثم ان نطبق وقد نعيد ونكرر ونستفسر والخ. فان تم المذاكرة 3 ساعات باليوم فقد يحتاج الموضوع من شهرين الى 3 والخ وحسب الالتزام. يمكنكِ الاطلاع على المناقاشات التالية:
  3. مرحبا @Aya Zartit. إن مدة الدورة كاملة هي 69 ساعة تعليمية وهي مقسمة إلى عدة مسارات كل مسار بداخله العديد من الدروس ويمكنك مشاهدة المسارات ومدة كل منهم من خلال الرابط التالي : https://academy.hsoub.com/learn/python-application-development/ ويمكنك تحديد المسارات التي تريدين دراستها بناء على الوظيفة النهائية التي تريدينها فمثلا يمكنكِ تجاهل أخر ثلاث مسارات في الدورة إذا لم تريدي التطرق للذكاء الإصطناعي وتحليل البيانات وأيضا إذا لم تريدي دراسة odoo فيمكنكِ تجاهل المسار الخاص به وهكذا يمكنكِ جمع ساعات الدراسة للمسارات التي ستقومين بدراستها وهكذا تكون لديكِ مدة الدروس في الدورة . وكقاعدة يمكن الاستناد عليها فإنه تتراوح مدة دراسة الدورة ما بين 3 إلى 5 أضعاف وذلك ما بين مشاهدة الدروس والاستيعاب والتطبيق والبحث والمراجعة وأيضا تختلف من طالب إلى طالب فالجميع ليس لديهم نفس مستوى الإستيعاب . فمثلا هنا لو الدورة هي 69 ساعة ومستوى تقدم الطالب متوسط مثلا فنقوم بضرب 69 في 4 أى 276 ساعة في المجمل ولنفرض أنكِ ستذاكرين 4 ساعات في المتوسط أى 70 يوما أى حوالي شهرين ونصف للإنتهاء من الدورة بأكملها . وكما وضحت لكِ الأمر مختلف من شخص لآخر بمعنى خلفيته السابقة وهل يبدأ من الصفر أم لا والوقت المخصص للدراسة بشكل يومي ومدى قدرة الشخص على الاستيعاب فهناك فروق فردية بالطبع أيضًا طريقته في المذاكرة فلكل شخص أسلوب يناسبه وإذا كنتِ متفرغة فأنصحكِ بتخصيص من 6 إلى 10 ساعات يوميا للمذاكرة أما إذا كنتِ غير متفرغة فيمكنكِ تخصيص 3 ساعات يوميا للمذاكرة أو ساعتان حيث أن أقل من ذلك لا يعتبر وقت كافي للدراسة . وإليك الإجابات والنصائح التالية : أما بخصوص طريقة الدراسة فإن الدورة مصممة خصيصا ومرتبة للتدرج في الصعوبة والأساسيات لذلك دائما يفضل إتباع الترتيب في المسارات والترتيب في الدروس وعدم تخطي أى درس دون التأكد من فهمه بشكل تام والتطبيق مع المدرب في الدرس وإليك النصائح التالية لطرق الدراسة المناسبة والجيدة :
  4. مرحبا انا بلشت بكورس برمجة التطبيقات باستخدام بايثون ممكن اعرف شو الوقت التقديري حتى اقدر انهي الكورس واذا في حدا يساعدني حتى اعمل خطة للدراسة بحيث اقدر التزم وشكرا
  5. هناك خطأ شائع يحدث عندما نستخدم credentials: true عندما تضبط الخادم (Express) ليقبل credentials: true فأنت تخبر المتصفح أنك تثق في هذا الموقع لدرجة أنك تسمح له بإرسال واستقبال الكوكيز أو التوكنز (headers) الخاصة بالمصادقة. وفي المقابل يجب على العميل (React/Axios) أن يرسل withCredentials: true مع كل طلب وبدون تلك الخطوة سيرفض المتصفح إرسال الطلب كإجراء أمني. لذلك أولا في الخادم يجب ترتيب الـ Middlewares قم بجعل ال cors هو أول middleware يتم استخدامه حتى قبل express.json() وهذا يضمن أن الطلبات يتم معالجتها بشكل صحيح. بعد ذلك في الواجهة الأمامية أضف withCredentials: true إلى جميع طلبات axios الخاصة بك : useEffect(() => { const fetchImages = async () => { try { const res = await axios.get( "https://mern-stack-image-gallery-app.onrender.com/api/images", { withCredentials: true } // أضف هذا ); setImages(res.data); } catch (err) { // ... } finally { // ... } }; fetchImages(); }, []);
  6. اليوم
  7. مشكلة لم تنحل هكذا استخدمته في axios import express from 'express'; import dotenv from 'dotenv'; import { connectDB } from './libs/connectDB.js'; import userRouter from './routes/user.route.js'; import imageRouter from './routes/image.route.js'; import cors from 'cors'; import path from 'path'; dotenv.config(); const app = express(); app.use(express.json()) app.use(cors({ origin: 'https://mern-image-gallery-app.netlify.app', credentials: true })); connectDB(); const port = process.env.PORT || 3000; app.get('/' , (req , res) => { res.send("Hello World!"); }); app.use('/api/auth' ,userRouter); app.use('/api/images' ,imageRouter); app.use('/uploads', express.static(path.join(process.cwd(), 'public', 'uploads'))); app.listen(port , () => { console.log(`Server is running on port ${port}`) }); import { useState, useEffect } from 'react'; import axios from 'axios'; import { FaHeart, FaRegHeart } from 'react-icons/fa'; import { useNavigate } from 'react-router-dom'; import toast from 'react-hot-toast'; const Home = () => { const [images, setImages] = useState([]); const [loading, setLoading] = useState(true); const [message, setMessage] = useState(""); const [modalImage, setModalImage] = useState(null); const navigate = useNavigate(); const token = localStorage.getItem("token"); useEffect(() => { const fetchImages = async () => { try { const res = await axios.get("https://mern-stack-image-gallery-app.onrender.com/api/images"); setImages(res.data); } catch (err) { console.error(err); setMessage("حدث خطأ أثناء جلب الصور"); } finally { setLoading(false); } }; fetchImages(); }, []); const handleLike = async (id) => { if (!token) { toast.error("يجب تسجيل الدخول اولاُ", { duration: 3000 }); navigate("/login"); return; } try { const res = await axios.post( `https://mern-stack-image-gallery-app.onrender.com/api/images/like/${id}`, {}, { headers: { Authorization: `Bearer ${token}` } } ); setImages(images.map((img) => img._id === id ? { ...img, likes: res.data.likes } : img )); } catch (error) { console.error(error); toast.error(error.response?.data?.message || "حدث خطأ أثناء الإعجاب بالصورة"); } }; if (loading) return <p className="text-center mt-10">جارٍ تحميل الصور...</p>; if (message) return <p className="text-center mt-10 text-red-500">{message}</p>; return ( <div className="container mx-auto p-4 grid grid-cols-1 sm:grid-cols-2 md:grid-cols-3 gap-4"> {images.map((img) => ( <div key={img._id} className="border rounded shadow p-2 bg-white relative h-72"> <img src={`https://mern-stack-image-gallery-app.onrender.com${img.imageUrl}`} alt={img.title || "img"} className="w-full h-48 object-cover rounded cursor-pointer" onClick={() => setModalImage(img)} /> <h3 className=" mt-2 font-semibold">{img.title}</h3> <p className='text-gray-800'>{img.description}</p> <button onClick={() => handleLike(img._id)} className="absolute top-2 right-2 text-red-500 text-xl" > {img.likes && img.likes > 0 ? <FaHeart /> : <FaRegHeart />} <span className="ml-1">{img.likes || 0}</span> </button> </div> ))} {modalImage && ( <div className="fixed inset-0 bg-black bg-opacity-50 flex items-center justify-center z-50"> <div className="bg-white rounded p-4 max-w-lg w-full relative"> <button onClick={() => setModalImage(null)} className="absolute top-2 right-2 text-xl font-bold text-gray-600 hover:text-black" > ❌ </button> <img src={`https://mern-stack-image-gallery-app.onrender.com${modalImage.imageUrl}`} alt={modalImage.title} className="w-full h-auto rounded mb-4" /> <h2 className="text-xl font-bold mb-2">{modalImage.title}</h2> <p className="text-gray-700">{modalImage.description}</p> </div> </div> )} </div> ); }; export default Home;
  8. يجب حذف الشرطة المائلة (/) من النهاية فالمتصفحات ترسل ال Origin بدون شرطة مائلة في النهاية والكود لديك يحتوي عليها. لذلك قم بإزالة / من نهاية الرابط: app.use(cors({ origin: 'https://mern-image-gallery-app.netlify.app', credentials: true })); وتأكد من أن الكود السابق في بداية الملف لديك أى قبل أى route موجود حتى يتم تنفيذه أولا . وأخيرا بعد إجراء أي تعديل على ملف الخادم، يجب أن تقوم بإعادة نشره (re-deploy) على Render حتى يتم تطبيق التغييرات وتأكد من أن عملية النشر تمت بنجاح على Render.
  9. عندي مشروع React + Express.js ورفعت مجلد خادم على render و تم رفعه بنجاح وعطاني رابط واستخدمته بدل من localhost:3000 وبعدين حطيت رابط مشروع في cors بهذه شكل app.use(cors({ origin: 'https://mern-image-gallery-app.netlify.app/', credentials: true })); ورفعت مجلد عميل على Netlify وخادم لم يعمل.
  10. وعليكم السلام ورحمة الله وبركاته. نعم إن دالت find_parent و check متشابهتان إلى حد كبير لأنهما تؤديان نفس العملية الأساسية وهو إجتياز شجرة البحث الثنائية (BST) فكلاهما يبدأ من الجذر (root) ويبدا التحرك يسارا أو يميناً بناء على مقارنة القيمة. ولكن بالرغم من هذا التشابه فإنهما يستخدمان لهدفين مختلفين تماما: فدالة check هدفها هو العثور على تطابق تام وهي تسأل هل القيمة X موجودة في الشجرة أم لا وتتوقف إما عند العثور على القيمة وتعيد true أو عند الوصول إلى نهاية فرع فارغ (NULL) وتعيد false. وأما دالة find_parent هدفها هو العثور على المكان المناسب لإدراج عقدة جديدة وهي تسأل أين يجب أن يتم وضع القيمة X إذا لم تكن موجودة .وإنها لا تبحث عن تطابق بل تبحث عن آخر عقدة في المسار (الأب) التي سيتفرع منها الابن الجديد. ولذلك فإن محاولة دمجهما مباشرة كما تقول من خلال تخزين الأسطر المتشابهة ستجعل الكود أكثر تعقيدا وليس أبسط ولن يكون سهل القراءة والفهم وأيضا ستحتاج إلى إضافة شروط كثيرة أو أعلام (flags) داخل الدالة المشتركة لتقرر ما إذا كانت في وضع البحث أم وضع إيجاد الأب وهذا يتعارض مع مبدأ الفصل بين الاهتمامات (Separation of Concerns) في البرمجة. حيث هذا المبدأ أساسي جدا وهو أن يكون لكل جزء من الكود وظيفة حادة وليس أكثر من وظيفة وذلك لجعل التعديل سهل في المستقبل وعدم إعتماد الأكواد على بعضها البعض .
  11. من ناحية الدينلو الصورة عليها حقوق ملكية يجب ان تستأذن من صاحبها لو الغرض تجاري ولتحمي نفسك ايضا من اى شكوى ضدك
  12. من ناحية الدينلو الصورة عليها حقوق ملكية يجب ان تستأذن من صاحبها طالما الغرض تجاري ولتحمي نفسك ايضا من اى شكوى
  13. الإجابة بإختصار هي يجب عليك دائما إجراء تقسيم التدريب/الاختبار على مستوى السجل العملاء أو الزلازل وليس على مستوى السجل الفرعي المعاملات أو القراءات. وقلقك بشأن تسرب البيانات (Data Leakage) صحيح تماما وإليك السبب بالتفصيل: وإليك كيفية فهم تسرب البيانات في البيانات الهرمية حيث ما تصفه هو حالة كلاسيكية من تسرب البيانات تعرف أحيانا بتسرب المجموعة (Group Leakage) والهدف من مجموعة الاختبار هو محاكاة أداء النموذج عند مواجهة بيانات جديدة تماما وغير مرئية في العالم الحقيقي. في السيناريو الخاطئ وهو التقسيم حسب السجل الفرعي (المعاملات) : هنا يتم خلط جميع المعاملات أو قراءات الزلازل من جميع العملاء معا بشكل عشوائي ثم يتم تقسيمها 80% للتدريب و 20% للاختبار. المشكلة تكمن في أن مثلا العميل "أ" لديه 10 معاملات ومن المحتمل أن تقع 8 معاملات في مجموعة التدريب و 2 في مجموعة الاختبار. وعندما يتدرب النموذج فإنه لا يتعلم فقط الأنماط العامة للمعاملات بل يتعلم أيضا الأنماط الخاصة بالعميل أ مثل عادات إنفاقه ومواعيده المفضلةوهكذا . وعندما يرى النموذج المعاملتين المتبقيتين للعميل أ في مجموعة الاختبار فإنه يتذكره جزئيا. والنتيجة انه النموذج يحقق أداء جيدا بشكل مبالغ فيه (حيث يكون متفائل بشكل خاطئ) في مجموعة الاختبار وأنت لا تختبر قدرته على التنبؤ بعملاء جدد بل تختبر قدرته على التنبؤ بمعاملات إضافية لعملاء يعرفهم بالفعل. أما في السيناريو الصحيح وهو التقسيم حسب السجل (العملاء) : فهنا أنت لا تقسم المعاملات بل تقسم العملاء (أو الزلازل). فمثلا : تحدد 80% من العملاء بشكل عشوائي وجميع معاملات هؤلاء العملاء تذهب إلى مجموعة التدريب. وال 20% المتبقية من العملاء جميع معاملاتهم تذهب إلى مجموعة الاختبار. هنا النموذج يتدرب على مجموعة كاملة من العملاء. ويتم اختبار النموذج على مجموعة مختلفة تماما من العملاء لم يرهم من قبل. وهذا يحاكي بدقة ما سيحدث في الواقع حيث سيطلب منك التنبؤ بسلوك عميل جديد ليس في قاعدة بياناتك التدريبية.
  14. لا حاجة لشراء جهاز جديد حاليا إذا لم ترد ذلك فيمكنك أثناء التعلم أن تقوم بالتدرب على google colab كما تم الشرح في الدورة حيث يتم توفير موارد مجانية لك وقوية لن تحتاج إلى جهاز قوي لتشغيله عليها . ولكن إذا أردت جهاز جديد فيمكنك تحديد الميزانية التي تناسبك لتحديد أفضل جهاز في تلك الفئة . أولا يجب عليك أن يكون لديك RAM أقل سعة مناسبة هي 16GB وكلما كانت أكبر فهي أفضل وستساعدك في تحميل وتشغيل النماذج الكبيرة. أيضا يجب عليك البحث عن معالج processor قوي لتسريع العمليات وأيضا أن تبحث عن كارت شاشة قوى وأن يكون من شركة NVIDIA والتي كروت الشاشة الخاصة بها تدعم الذكاء الإصطناعي بشكل كبير .
  15. بعد أن تتخرج منها ستكون مطور ذكاء اصطناعي قادر على: تحليل المشكلة وتحديد النهج المناسب سواء تعلم آلة تقليدي، تعلم عميق، استخدام LLM.\ جمع البيانات ومعالجتها. بناء وتدريب وتخصيص النماذج باستخدام أحدث المكتبات والأدوات بواسطة Transformers أو TensorFlow دمج تلك النماذج في تطبيقات حقيقية عبر واجهات برمجية APIs.
  16. بعد الإنتهاء من الدورة وإجتيازها والحصول على الشهادة فإن هنا الأكاديمية سمنحك باقة كتابة السيرة الذاتية في موقع بعيد بقيمة 99$ مجانًا وسيجري لك فريق أخصائي التوظيف مقابلة صوتية يتعرف فيها على مهاراتك ويكتب لك أفضل سيرة ذاتية مخصصة لك ثم سيتابع معك لضبط حسابك على مستقل وبعيد ويقدم لك نصائح مخصصة للحصول على عملك الأول. حيث أكاديمية حسوب لا تقدم لك عمل أو وظيفة مباشرة ولكن تساعدك في العثور على عمل وأيضا منحة موقع بعيد لكتابة السيرة الذاتية وتهيئة حسابك بشكل جيد على موقع مستقل ونصائح لك للوصول إلى العميل الأول لك وكيفية أختيار العميل والعمل المناسب.
  17. توجد أفكار كثيرة حولك يمكنكِ البحث عن فكرة جيدة تناسبك وتجدين أنها ستفيدك في مشروعك وفي مجال تعلمك . الأفكار تأتي من المشاكل التي نواجها أو يواجهها الأشخاص الأخرين ويريدون حل لها . مثلا يمكنكِ إنشاء موقع خاص بالتعليم مثلا موقع للدروس الإلكترونية الخاصة بالكلية فمثلا يتم إنشاء فصول وتضمين الطلاب بها وتوفير إختبارات لهم وتقيمات وغيرها من المميزات الأخرى . ويمكنكِ دمج الذكاء الإصطناعي في المشروع لديكِ لتتبع مستوى الطلاب مثلا وإرسال نصائح وإشعارات لهم.
  18. وعليكم السلام ورحمة الله وبركاته. هذا أمر شائع في LearnPress حيث يعتمد التسجيل بشكل أساسي على إعدادات WordPress نفسه بينما يتطلب الشراء خاصة للدورات المدفوعة إعدادات إضافية أو تكامل مع إضافات مثل WooCommerce وإليك الحلول التالية لإصلاح ذلك: أولا تمكين التسجيل التلقائي للطلاب (Registration) : إن LearnPress لا يدير التسجيل بنفسه بل يعتمد على نظام التسجيل في WordPress وإذا لم يكن التسجيل مفعلا لن يتمكن الزوار من إنشاء حسابات جديدة من الواجهة الأمامية لذلك : اذهب إلى لوحة التحكم في WordPress: Dashboard ثم Settings ثم General. في قسم Membership فعل الخيار Any one can register (أي شخص يمكنه التسجيل). اختر دور المستخدم الافتراضي للمستخدمين الجدد مثل "Subscriber" أو "Student" وهذا إذا كان متوفراً عبر LearnPress. وأهير قم بحفظ التغييرات. بعد ذلك، يجب أن يظهر نموذج التسجيل على صفحة الدخول أو الملف الشخصي وإذا كنت تريد تمكين نموذج تسجيل خاص ب LearnPress: اذهب إلى LearnPress ثم Settings ثم Pages وقم بتفعيل ال Enable Register Form في إعدادات الملف الشخصي وهذا يجعل النموذج يظهر على الصفحة الافتراضية للملف الشخصي. والآن جرب التسجيل كزائر جديد من خلال صفحة الدورات أو الدخول. إذا ظهر خطأ مثل "Access Denied" قم بالتأكد من عدم وجود تعارض مع الإضافات الأخرى مثل Membership plugins أو قم بمسح الكاش في المتصفح. ثانيا إعداد عملية الشراء والدفع (Purchase) : إذا كانت دوراتك مدفوعة فإن LearnPress لا يدير الدفع بمفرده بشكل افتراضي ولكنه يحتاج إلى إعداد بوابات دفع أو تكامل مع WooCommerce لمعالجة الطلبات والالتحاق التلقائي بعد الدفع وإليك الخطوات التالية في LearnPress: اذهب إلى LearnPress ثم Settings ثم Payment. فعل بوابات الدفع المتاحة مثل PayPal واضغط على اسم البوابة لتكوينها مثل إدخال ال API keys. تأكد من إنشاء صفحة الدفع (Checkout) وإذا لم تكن موجودة أنشئ صفحة جديدة وأضف shortcode [learn_press_checkout] ثم حددها في الإعدادات. للدورات المدفوعة في إعدادات الدورة من LearnPress ثم Courses ثم Edit Course ثم Course Settings حدد سعر أكبر من 0 وفعل خيارات مثل Repurchase إذا أردت إعادة الشراء. للشراء بدون تسجيل (Guest Checkout) فعل Enable Guest Checkout في إعدادات الدفع حيث الزوار يدخلون بريدهم الإلكتروني ويتلقون مفتاح طلب (Order Key) عبر البريد للوصول إلى الدورة.
  19. في الكود المرفق لا يوجد أى مشكلة فهو يعمل في الشاشات الصغيرة والكبيرة دون ظهور هذا الجزء الأبيض. هل المشكلة تظهر لك عندما تقوم بتغير الحجم وتصغير الشاشة ؟ أم حتى لو لم تغير حجم الشاشة وكانت صغيرة بمجرد فتح الصفحة ؟ إذا كان الجزء الأبيض يظهر عند تصغير الشاشة أثناء التصفح فغالبا هذه مشكلة في المتصفح نفسه وليس الكود . أيضا قم بفتح الموقع من خلال Microsoft Edge أو أى متصفح أخر وانظر هل المشكلة موجودة أم لا . إذا لم تكن موجودة فإذا المشكلة في المتصفح لديك أو في إضافة من الإضافات . إذا ظلت المشكلة يرجى عمل inspect للعنصر وإرسال صورة لما يظهر لك.
  20. ستجد أسفل فيديو الدرس صندوق للتعليقات كما هنا يرجى طرح سؤالك أسفل الدرس وليس هنا حيث هنا قسم الأسئلة العامة ولا نقوم بإجابة الأسئلة الخاصة بمحتوى الدورة أو الدرس، وذلك لمعرفة الدرس الذي توجد به مشكلتك و لمساعدتك بشكل أفضل. إذا لم يكن هذا السؤال خاص بإحدى الدورات إليك رابط التحميل التالي: https://scratch.mit.edu/download
  21. مرحبا كيف ننزل تطبيق سكراتش شكرا جزيلا
  22. البارحة
  23. طيب بعد ما اخلص الدوره وش ممكن اشتغل فيه او مادا اكون محلل بينات او مادا هو المسار الي بكون اشتغل فيه واكون جاهز له ؟؟؟؟؟؟
  24. الدورة ليست مخصصة بشكل كبير لمجال تحليل البيانات و للعمل بوظيفة محلل بيانات Data Analyst ستحتاج إلى تعلم أمور أخرى بجانب الدورة وإليك الإجابات التالية لمزيد من التفاصيل حول هذا المجال وما ينبغي عليك فعله : أما بعد الإنتهاء من الدورة وإجتيازها والحصول على الشهادة فإن هنا الأكاديمية سمنحك باقة كتابة السيرة الذاتية في موقع بعيد بقيمة 99$ مجانًا وسيجري لك فريق أخصائي التوظيف مقابلة صوتية يتعرف فيها على مهاراتك ويكتب لك أفضل سيرة ذاتية مخصصة لك ثم سيتابع معك لضبط حسابك على مستقل وبعيد ويقدم لك نصائح مخصصة للحصول على عملك الأول. حيث أكاديمية حسوب لا تقدم لك عمل أو وظيفة مباشرة ولكن تساعدك في العثور على عمل وأيضا منحة موقع بعيد لكتابة السيرة الذاتية وتهيئة حسابك بشكل جيد على موقع مستقل ونصائح لك للوصول إلى العميل الأول لك وكيفية أختيار العميل والعمل المناسب.
  25. وعليكم السلام ورحمة الله وبركاته. إذا كنت قد انقطعت عن الدورة لفترة طويلة فقد تحتاج بالفعل إلى إعادة النظر إلى الدورة من الصفر وهذا بسبب أنك بالطبع ستكون نسيت ما قمت بمذاكرته ولذلك إستكمال الدورة من حيث المكان الذي توقفت عنده لن يكون جيدا وبما أنك ستنقطع سنة كاملة للدراسة فسوف تقوم بنسيان ما قمت بتعلمته في البرمجة وأيضا يجب الإنتباه إلى أن هذا الأمر يعتمد على مدى خبرتك وتقدمك في البرمجة فالمبتدئين الذين فقط لديهم الأساسيات ولم يقوموا بالتطبيق فمن الممكن الإبتعاد عن البرمجة لمدة طويلة ينسيهم كل ما تعلموه وهكذا ينبغي عليهم مراجعة ما تعلموه قبل ذلك. وأما إذا كانت مدة الإنقطاع ليست كبيرة فيمكنك مراجعة الدروس سريعا فقط مشاهدتها مع المدرب حتى تستطيع الإستذكار السريع للأمور وبعد ذلك يمكنك إستكمال التعلم من الدرس الذي توقفت عنه . ويمكنك مراجعة الإجابة التالية لتفاصيل أكثر حول كيفية مذاكرة الدورة :
  26. المشكلة في ملف app\api\todos\route.ts حيث تقوم بإعادة البيانات كما هي ولكنك في الواجهة الأمامية تستقبلها من todo.todos ولهذا تحدث المشكلة . لذلك يجب إعادة البيانات بداخل كائن json لديه todos . في سطر 20 و 49 يجب ان يكونا كالتالي : return NextResponse.json({todos}, {status:200}); return NextResponse.json({todo}, {status:201}); وهذا هو الملف . route.ts
  27. السلام عليكم و رحمة الله و بركاته انا طالب ثانوي وحاليا انا ادرس و دراستي سوف تنتهي خلال سنة لكن اشعر اني نسيت بعض المهارات التي اكتسبتها في رحلة تعلمي للبرمجة أريد نظام لاستعادة هذه المهارات بعد الدراسة
  28. ماهي مشكلة التي ظهرت لم استطع حلها Todolist full stack.zip
  1. عرض المزيد
×
×
  • أضف...