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

محمد_عاطف

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

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

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

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

    117

كل منشورات العضو محمد_عاطف

  1. وعليكم السلام ورحمة الله وبركاته. يجب عليك ألا تشعر بالملل سريعا فإن مجال البرمجة كبير ولا يمكن إختصاره وإلا لن يكون مستواك بالمستوى المطلوب والذي يؤهلك للوصول إلى الوظائف بسهولة وبسرعه. أنصحك إذا مللت ولا تريد إكمال دورة علوم الحاسوب ولكن من إكمالها . أن تقوم على الأقل بدراسة المسارات التالية : قواعد البيانات إلى عالم الويب البرمجة كائنية التوجه ويمكنك حينها الإنتقال إلى دورة تطوير واجهات المستخدم . ونعم بالفعل دورة تطوير واجهات المستخدم تؤهلك لأن تصبح مطور مواقع ثابته وأن تقوم بتصميم صفحات الهبوط وغيرها من الوظائف التي تتطلب تصميم واجهات المستخدم .
  2. لقد فهمت المشكلة التي تقصدها . هذا بسبب مشاكل كثيرة لديك في التنسيقات . أولا في ملف style.css سطر 405 لاحظ أنك وضعت العرض بقيمة 100vh وهذا خاطئ حيث vh هي للأطوال أم vw للعرض ولكن تلك القيمة كبيرة وهي سبب تلك المشكلة لذلك يجب حذف هذا السطر . ثانيا المشكلة في الصور في قسم article لاحظ أنك وضعت لها عرض ثابت 600px ولهذا في الشاشات الأقل من 600px الصورة تأخذ عرض أكبر بكثير من الشاشة . وأيضا في قسم services قد وضعت padding كبير لهذا يجب تقليله في الشاشات الصغيرة . وإليك الملف بعد تعديل الأخطاء لك . style.css
  3. الخطأ الذي يظهر هو ValueError: X has 13 features, but StandardScaler is expecting 15 features as input. وهو بسبب السطر Xs = scaler.transform(df). وهذا الأمر يعني أن scaler.joblib الذي قمت بتحميله في تطبيق Flask يتوقع 15 ميزة كمدخل لديك بالرغم أن df الذي تنشأه من args يحتوي على 13 ميزة فقط. وفي الملف notebook.ipynb الذي أرفقته يظهر أنه تم تدريب StandardScaler على 5 ميزات رقمية فقط وهي age و trestbps و chol و thalch و oldpeak. فالكود الحالي في api.py يقوم بتمرير جميع ال 13 ميزة إلى scaler.transform. ولحل المشكلة يجب علينا التأكد من أن df الذي يتم إدخاله إلى scaler.transform يحتوي على 15 ميزة قبل تمريره إلى ال scaler. وهذا يعني أن ال 5 ميزات الرقمية الأصلية age و trestbps و chol و thalch و oldpeak يجب ألا يتم تمريرها إلى هذا ال scaler. وإليك الملف api.py بعد تعديله وإصلاح الأخطاء. api.py
  4. هل يمكنك توضيح المشكلة التي تقصدها ؟ فالموقع والصورة المرفقة لا توجد بها أى مشكلة.
  5. أولا في ملف api.py يجب تغير get إلى post في Predict في السطر 22 هكذا : class Predict(Resource): @login_required def post(self): args = parser.parse_args() print(args) df = pd.DataFrame([args]); Xs = scaler.transform(df) Xdl = extractor.predict(Xs); X = np.hstack([Xs, Xdl]) y = int(rf.predict(X)[0]); probs = rf.predict_proba(X)[0].tolist() rec = (["مراجعة طبيب قلب","رسم قلب","متابعة مستمرة"] if y>=2 else ["نظام غذائي","رياضة","متابعة سنوية"]) pr = Prediction(result=y, proba=probs, user=current_user._get_current_object()) db.session.add(pr); db.session.commit() print(y,probs,rec) return jsonify(prediction=y, probabilities=probs, recommendations=rec) بعد ذلك يجب إنشاء ملف templates\predict.html ولقد قمت بإرفاقه لك يمكنك وضعه مباشرة في مجلد templates وهذا هو الذي سيحوي النموذج والمدخلات إلى الخادم. والآن في ملف auth.py يجب وضع المسار الجديد الذي يعرض النموذج هكذا : @bp.route('/predict', methods=['GET']) @login_required def predict(): return render_template('predict.html') يجب إيقاف الخادم الآن وإعادة تشغيله والذهاب إلى العنوان http://127.0.0.1:5000/predict وسيظهر لك النموذج . predict.html
  6. هل تقصد إرسال البيانات إلى العنوان predict ؟ إذا كان كذلك فيمكنك إرساله في ال body هكذا من خلال برنامج postman ولكن يجب عليك أن تكون قد قمت بتسجيل الدخول أولا : وهذه هي البيانات التي يمكنك إدخالها : { "age":10, "sex":1.0, "cp":1, "trestbps":1, "chol":1, "fbs":1, "restecg":1, "thalch":2, "oldpeak":1, "slope":1, "thal":1, "ca":1, "exang":1 } ولكن يفضل تغير نوع الطلب إلى post وليس get للتعامل معه بشكل أفضل.
  7. المشكلة غالبا بسبب إضافة في المتصفح لديك . إذا كان لديك أى مانع إعلانات يرجى تعطيلها للموقع حتي يعمل الفيديو بشكل صحيح . يمكنك مشاهدة أيضا الحلول التالية : إذا لم ينفع أى حل يرجى محاولة تجربة متصفح أخر غير الذي تستعمله الآن.
  8. هذا يعتمد على حجم المشروع وحجم التلاعب بالعناصر DOM . وأيضا هل تريد أن يكون المشروع هو مشروع صفحة واحدة أم لا . أولا إن التلاعب بال DOM هو أمر صعب ومكلف أى إذا لم يتم إستخدامه بشكل صحيح فإنه يستهلك موارد الجهاز ويجعل الموقع بطيئا مما يعطي تجربة مستخدم سيئة . بعكس React والذي يتعامل مع ال DOM بشكل أفضل بكثير بفضل ال Virtual Dom . إذا لو مثلا كان مشروعك عبارة عن صفحة واحدة أو بعض الصفحات البسيطة والتي لا تتطلب أن يكون المشروع عبارة عن صفحة واحدة أى يمكن تحديث الصفحة دون مشكلة . فهنا بالطبع الأفضل ال DOM لأنه سيوفر وقت ومجهود في إنشاء مشروع React وتخصيصه . أما إذا كان المشروع يتطلب إرسال طلبات إلى الخادم API وإحضار بيانات وعرضها وتحديثها في الصفحة فالأفضل هنا بالطبع React لتوفير الوقت والمجهود عليك وأيضا لجعل الموقع سريع .
  9. إذا يجب عليك إستخدام React Route لتحقيق ذلك فأنت في ملف src\App.jsx تقوم بإتخدام مكون Home و About معا حيث تستدعي About أسفل Home . ولكن يجب عليك إستدعائه المكون عند الذهاب إلى العنوان نفسه . فأولا يجب تثبيت الحزمة من خلال الأمر : npm install react-router-dom بعد ذلك نقوم بتعديل ملف App ليكون كالتالي : import React from "react" import { BrowserRouter as Router, Routes, Route } from 'react-router-dom'; import Navbar from "./Components/Navbar/Navbar" import Home from "./Components/Navbar/Home/Home" import About from "./Components/About/About" function App() { return ( <> <Router> <Navbar /> <Routes> <Route path="/" element={<Home />} /> <Route path="/about" element={<About />} /> </Routes> </Router> </> ) } export default App والآن في ملف src\Components\Navbar\Navbar.jsx نقوم بتغيره إلى التالي : import React from 'react'; import { Link } from 'react-router-dom'; import './Navbar.css'; import logo from '../../assets/logo.webp' const Navbar = () => { return ( <nav className='navbar'> <div className="logo"> <img src={logo} alt="img" /> </div> <div className="nav_link"> <ul> <li> <Link to="/">Home</Link> </li> <li> <Link to="/about">About</Link></li> <li> <Link to="/menu">Menu</Link></li> <li> <Link to="/service">Services</Link></li> <li> <Link to="/review">Review</Link></li> <li> <Link to="/contact">Contact</Link></li> </ul> </div> </nav> ) } export default Navbar والآن سيتم إستدعاء كل مكون عند الذهاب إلى العنوان الصحيح.
  10. السؤال غير واضح هل تقصد جعل قسم ال about يظهر فقط عند الذهاب إلى عنوان about وال home يظهر فقط في ال home أم ماذا ؟
  11. هل سؤال بخصوص إحدى دروس الدورات ؟ إذا كان كذلك فستجد أسفل فيديو الدرس صندوق للتعليقات كما هنا يرجى طرح سؤالك أسفل الدرس وليس هنا حيث هنا قسم الأسئلة العامة ولا نقوم بإجابة الأسئلة الخاصة بمحتوى الدورة أو الدرس، وذلك لمعرفة الدرس الذي توجد به مشكلتك و لمساعدتك بشكل أفضل. أما بخصوص إصدار بايثون فيمكنك فعليا تنزيل أى إصدار لديك على ويندوز . ولكن ويندوز 7 أو xp ليس كل الإصدارات متاحة لهم.
  12. وعليكم السلام ورحمة الله وبركاته. هل تعمل على إطار عمل لارافيل ؟ إذا كان كذلك فنعم يجب تثبيب حزمة doctrine/dbal لتغير طول الأعمدة . حيث هي مطلوبة للسماح ل Laravel بإجراء تغييرات معقدة على الأعمدة مثل تغيير الطول عند إستدعاء الدالة change . لذلك يجب تثبيت الحزمة من خلال الأمر التالي : composer require doctrine/dbal الآن بداخل ملفات التهجير لتغير طول العمود يكون من خلال كود كالتالي : $table->string(‘name’, 80)->change(); حيث نقوم بكتابة إسم العمود الذي نريد تغير الطول الخاص به ومن ثم الطول الجديد وفي النهاية إستدعاء الدالة change .
  13. في مسار "تحليل البيانات Data Analysis" يتم شرح مكتبات مهمة في تحليل البيانات والتي سيتم إستخدامها في المسارات التالية في تعلم الآلة وغيرها من التطبيقات العملية . مثل مكتبة Pandas لتمثيل البيانات . ومكتبات مثل Matplotlib و Seaborn وأيضا يتم شرح كيفية تنظيف البيانات والتي سيتم إستخدامها بكثرة في المسارات التالية لمسار تحليل البيانات . أما مسار التعامل مع البيانات فهو منفصل عن مسار تحليل البيانات . حيث في مسار التعامل مع البيانات يتم شرح قواعد البيانات وكيفية التعامل معها ومع البيانات الموجودة بها وأيضا كيفية التعامل معل ملفات ال Excel و ال CSV وكيفية إحضار البيانات منها وقرائتها والتي سيتم إستخدامها بكثرة في مسار تعلم الآلة والمسارات التي تليه مثل مسار "تطوير نماذج ذكاء اصطناعي لمتجر إلكتروني" والذي يتعامل مع قواعد البيانات وال API لإحضار البيانات . لهذا تم وضع مسار تحليل البيانات قبل المسارات التي تعتمد عليه و مسار التعامل مع البيانات قبل المسارات التي تعتمد عليه وهكذا يصبح لديك المعرفة المسبقة وتستطيع فهم ما يستخدمه المدرب لأنه تم شرح أساسياته في المسارات السابقة.
  14. لاحظ المشكلة لديك في ملف login.html في هذا السطر : وكما يظهر من الخطأ فهو يخبرك أنه لا يوجد عنوان بإسم register لديك لهذا لا يستطيع إنشاء url له. ويخبرك أنه غالبا أنك تريد إستخدام "auth.register" وهذا هو إسم العنوان لديك. لذلك يجب إستبدال register المشار إليها في السطر السابق في رسالة الخطأ ب : auth.register
  15. وعليكم السلام ورحمة الله وبركاته. نعم بالفعل تم تغير ترتيب المسارات مؤخرا حيث يتم تعديل ترتيب مسارات الدورات في الأكاديمية أحيانا وذلك لتحسين التسلسل التعليمي وتسهيل الفهم ومساعدة الطلاب في التدرج في التعلم بشكل سهل ومناسب لهم . ولهذا أنصحك باتباع الترتيب الجديد لأنه الأحدث والأفضل وهذا إذا لم تقم بإتمام مسارات كثرة في الدورة . وإذا كنت قد أكملت أى مسار سابقا يمكنك تخطيه لا حاجة لإعادته بالكامل في الترتيب الجديد حيث الدروس كما هي فقط الترتيب الذي إختلف.
  16. هذا لأنك لم تقم بكتابة كلمة المرور في سلسلة الإتصال . يجب هنا بعد علامة ال : أن تقوم بكتابة كلمة مرور قاعدة البيانات.
  17. لا توجد أى مشكلة لقد تم الإنشاء والإتصال بنجاح لاحظ علامة الصح بجوار كلمة localhost . كلمة password is encrypted بسبب أن البرنامج يقوم بتشفير كلمة المرور لعدم عرضها وسرقتها . فإذا قام أى شخص بفتح البرنامج لا يستطيع الحصول على كلمة المرور . أى يمكنك الإكمال دون أى مشكلة. أما إذا حدث خطأ أثناء تشغيل الكود يرجى إرفاقه هنا.
  18. هذه مشكلة شائعة وأغلب الطلاب يعانون منها . حيث نسيان الأكواد والأوامر أمر طبيعي للغاية خصوصا عندما تدرس لغة برمجة جديدة أو تقنية جديدة . و أي شخص بدأ في تعلم البرمجة بشكل عام مر بهذا لذلك لا تقلق كل ما عليك هو عدم الإستسلام لهذا الشعور ومع التكرار والمراجعة و حل التمارين ستجد أن الأمور أصبحت جيدة وأن مشكلة النسيان لم تعد تتكرر لديك. وأيضا من الممكن أنك لم تقم بفهم الدروس والأساسيات بشكل كامل لهذا تحدث تلك المشكلة فإذا لم تقم بفهم الدروس ووظيفة وطريقة إستخدام كل شئ فبالطبع ستجد صعوبة في حل التمارين بنفسك ولن تتذكر الدروس . لهذا يجب عليك التأكد من عدم تخطي أى درس دون فهمه بشكل كامل. وإليك النصائح التالية التي ستساعدك :
  19. نعم إن Apidog يوفر لكِ حل شامل لإدارة ال API بشكل كامل فهو يجمع مميزات كثيرة مثل تصميم ال API وتوثيقها واختبارها وإنشاء Mock Servers وكل ذلك في برنامج واحد.
  20. ستجد أسفل فيديو الدرس صندوق للتعليقات كما هنا يرجى طرح سؤالك أسفل الدرس وليس هنا حيث هنا قسم الأسئلة العامة ولا نقوم بإجابة الأسئلة الخاصة بمحتوى الدورة أو الدرس، وذلك لمعرفة الدرس الذي توجد به مشكلتك و لمساعدتك بشكل أفضل.
  21. نعم توجد العديد من البدائل لأداة Swagger والتي تمكنكِ من توثيق ال API بشكل أسهل وهذا يعتمد على احتياجات المشروع لديكِ. أولا يوجد Postman فهو ليس مجرد أداة لاختبار API بل أصبح الآن منصة شاملة لتطوير API وإدارتها فيمكنكِ تصميم واجهات ال API وتوثيقها وإنشاء طلبات HTTP واختبارها وهذا الأمر يسهل أمور العمل مع الفرق لتوثيق واختبار API. وهو يوفر واجهه سهلة الاستخدام وإمكانيات كبيرة ويمكنه أيضا إستيراد مواصفات OpenAPI -تنسيق Swagger- مما يجعله متوافق مع المشاريع الحالية لديكِ إذا كنتي تريدن التبديل من Swagger. يوجد أيضا Apidog وهو يوفر حل شامل لإدارة ال API بشكل كامل فهو يوفر لكِ تصميم ال API وتوثيقها واختبارها وإنشاء Mock Servers وكل ذلك في برنامج واحد ويتميز أيضا بواجهة مستخدم سهلة الإستخدام وقدرة على إنشاء وثائق تفاعلية تلقائيا لل API. يوجد أيضا Redoc فإذا كان هدفك الأساسي هو إنشاء وثائق API جيدة ومنسقة ويتم عرضها بشكل احترافي فإن الخيار المناسب لكِ فيمكنه تحويل ملفات OpenAPI JSON/YAML إلى صفحات ويب تفاعلية. يوجد Stoplight فهو يحوي مجموعة أدوات متكاملة لتصميم وتطوير وتوثيق ال API وأيضا يتميز بواجهة بصرية لتصميم ال API والتحقق من صحة المواصفات وإنشاء وثائق تفاعلية جيدة. أيضا هناك Slate فهو إطار عمل بسيط ومفتوح المصدر لإنشاء وثائق ال API الثابتة ويعتمد على ال Markdown ويوفر تخطيط لصفحة واحدة مع جدول تلقائي به أمثلة للكود.
  22. توجد العديد من البرامج الأخرى سوى postman والتي تنافسه . فمثلا يوجد برنامج Insomnia فهو يتميز بواجهة بسيطة وسريعة ويوفر لكِ دعم لإدارة البيئات والمتغيرات.وهو مجاني ومفتوح المصدر. ويقوم بتحزين البيانات على الجهاز المحلي عكس Postman يقوم باخزين البيانات على الإنترنت والتي من الممكن أن تكون عرضة للكشف . يوجد أيضا Hoppscotch ويمكنكِ استخدامه مباشرة من المتصفح دون تثبيت ويوفر مميزات مشابهة ل Postman. يوجد Bruno ويمكنكِ من إدارة مجموعات ال API كملفات نصية داخل مستودع ل Git. فلو كنتِ تريدين البساطة والتكامل مع أدوات التطوير فإن Insomnia أو Bruno هما الأفضل لكِ في تلك الحالة.
  23. يفضل حذف code runner وتنزيل الحزمية الأساسية python التالية : بعد تنزيلها يرجى إعادة تشغيل vs code والضغط على زر التشغيل في ملف بايثون وسيعمل معك. إذا إستمرت المشكلة يرجى إرفاق صورة للخطأ الذي يظهر لك.
  24. نعم بالفعل بمجرد إنتهاءك من الدورة تبدأ فترة ال 6 أشهر لضمان إسترداد الأموال. فبعد الحصول على الشهادة من الأكاديمية مباشرة سيتم منحك باقة كتابة السيرة الذاتية في موقع بعيد بقيمة 99$ مجانًا وسيجري لك فريق أخصائي التوظيف مقابلة صوتية يتعرف فيها على مهاراتك ويكتب لك أفضل سيرة ذاتية مخصصة لك ثم سيتابع معك لضبط حسابك على مستقل وبعيد ويقدم لك نصائح مخصصة للحصول على عملك الأول. حيث أكاديمية حسوب لا تقدم لك عمل أو وظيفة مباشرة ولكن تساعدك في العثور على عمل وأيضا منحة موقع بعيد لكتابة السيرة الذاتية وتهيئة حسابك بشكل جيد على موقع مستقل ونصائح لك للوصول إلى العميل الأول لك وكيفية أختيار العميل والعمل المناسب. لذلك فإن هذا الأمر سيفيدك بالطبع في جانب العمل الحر كما تريد ولكن يجب أولا الإنتهاء من الدورة والحصول على الشهادة.
×
×
  • أضف...