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

محمد_عاطف

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

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

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

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

    133

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

  1. هذا لأنك لم تقم بكتابة كلمة المرور في سلسلة الإتصال . يجب هنا بعد علامة ال : أن تقوم بكتابة كلمة مرور قاعدة البيانات.
  2. لا توجد أى مشكلة لقد تم الإنشاء والإتصال بنجاح لاحظ علامة الصح بجوار كلمة localhost . كلمة password is encrypted بسبب أن البرنامج يقوم بتشفير كلمة المرور لعدم عرضها وسرقتها . فإذا قام أى شخص بفتح البرنامج لا يستطيع الحصول على كلمة المرور . أى يمكنك الإكمال دون أى مشكلة. أما إذا حدث خطأ أثناء تشغيل الكود يرجى إرفاقه هنا.
  3. هذه مشكلة شائعة وأغلب الطلاب يعانون منها . حيث نسيان الأكواد والأوامر أمر طبيعي للغاية خصوصا عندما تدرس لغة برمجة جديدة أو تقنية جديدة . و أي شخص بدأ في تعلم البرمجة بشكل عام مر بهذا لذلك لا تقلق كل ما عليك هو عدم الإستسلام لهذا الشعور ومع التكرار والمراجعة و حل التمارين ستجد أن الأمور أصبحت جيدة وأن مشكلة النسيان لم تعد تتكرر لديك. وأيضا من الممكن أنك لم تقم بفهم الدروس والأساسيات بشكل كامل لهذا تحدث تلك المشكلة فإذا لم تقم بفهم الدروس ووظيفة وطريقة إستخدام كل شئ فبالطبع ستجد صعوبة في حل التمارين بنفسك ولن تتذكر الدروس . لهذا يجب عليك التأكد من عدم تخطي أى درس دون فهمه بشكل كامل. وإليك النصائح التالية التي ستساعدك :
  4. نعم إن Apidog يوفر لكِ حل شامل لإدارة ال API بشكل كامل فهو يجمع مميزات كثيرة مثل تصميم ال API وتوثيقها واختبارها وإنشاء Mock Servers وكل ذلك في برنامج واحد.
  5. ستجد أسفل فيديو الدرس صندوق للتعليقات كما هنا يرجى طرح سؤالك أسفل الدرس وليس هنا حيث هنا قسم الأسئلة العامة ولا نقوم بإجابة الأسئلة الخاصة بمحتوى الدورة أو الدرس، وذلك لمعرفة الدرس الذي توجد به مشكلتك و لمساعدتك بشكل أفضل.
  6. نعم توجد العديد من البدائل لأداة 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 ويوفر تخطيط لصفحة واحدة مع جدول تلقائي به أمثلة للكود.
  7. توجد العديد من البرامج الأخرى سوى postman والتي تنافسه . فمثلا يوجد برنامج Insomnia فهو يتميز بواجهة بسيطة وسريعة ويوفر لكِ دعم لإدارة البيئات والمتغيرات.وهو مجاني ومفتوح المصدر. ويقوم بتحزين البيانات على الجهاز المحلي عكس Postman يقوم باخزين البيانات على الإنترنت والتي من الممكن أن تكون عرضة للكشف . يوجد أيضا Hoppscotch ويمكنكِ استخدامه مباشرة من المتصفح دون تثبيت ويوفر مميزات مشابهة ل Postman. يوجد Bruno ويمكنكِ من إدارة مجموعات ال API كملفات نصية داخل مستودع ل Git. فلو كنتِ تريدين البساطة والتكامل مع أدوات التطوير فإن Insomnia أو Bruno هما الأفضل لكِ في تلك الحالة.
  8. يفضل حذف code runner وتنزيل الحزمية الأساسية python التالية : بعد تنزيلها يرجى إعادة تشغيل vs code والضغط على زر التشغيل في ملف بايثون وسيعمل معك. إذا إستمرت المشكلة يرجى إرفاق صورة للخطأ الذي يظهر لك.
  9. نعم بالفعل بمجرد إنتهاءك من الدورة تبدأ فترة ال 6 أشهر لضمان إسترداد الأموال. فبعد الحصول على الشهادة من الأكاديمية مباشرة سيتم منحك باقة كتابة السيرة الذاتية في موقع بعيد بقيمة 99$ مجانًا وسيجري لك فريق أخصائي التوظيف مقابلة صوتية يتعرف فيها على مهاراتك ويكتب لك أفضل سيرة ذاتية مخصصة لك ثم سيتابع معك لضبط حسابك على مستقل وبعيد ويقدم لك نصائح مخصصة للحصول على عملك الأول. حيث أكاديمية حسوب لا تقدم لك عمل أو وظيفة مباشرة ولكن تساعدك في العثور على عمل وأيضا منحة موقع بعيد لكتابة السيرة الذاتية وتهيئة حسابك بشكل جيد على موقع مستقل ونصائح لك للوصول إلى العميل الأول لك وكيفية أختيار العميل والعمل المناسب. لذلك فإن هذا الأمر سيفيدك بالطبع في جانب العمل الحر كما تريد ولكن يجب أولا الإنتهاء من الدورة والحصول على الشهادة.
  10. إن خطاف useTheme هو خطاف مخصص (Custom Hook) في React وهو يوفر لك وصول سهل إلى السمات (themes) الخاصة بالتطبيق أو إعدادات التصميم. فهو طريقة للحصول على البيانات المتعلقة بالتصميم مثل الألوان والخطوط و المسافات وغيرها في أي مكون React يحتاجها. فمثلا لو أن لديك تطبيق أو مشروع وتريد توفير إمكانية للمستخدم أن يقوم تبديل المظهر مثلا بين الوضع العادي والوضع الليلي أو من الممكن أن تريد إستخدام مجموعة معينة من الألوان والخطوط يقوم بإختيارها المستخدم. لذلك بدون useTheme سيتوجب عليك تمرير هذه السمات ك props إلى كل مكون يحتاجها وهذا الأمر سيكون صعبا وسيأخذ وقت كبير. فمثلا : أولا يجب إنشاء سياق الثيم (Theme Context) حيث يتم إنشاء React.Context خاص لتخزين بيانات الثيم. بعد ذلك إنشاء مزود السمة (Theme Provider) حيث يكون عبارة عن مكون ThemeContext.Provider يكون حول جزء من شجرة المكونات ويوفر قيمة السمة لهذا السياق. وأخيرا خطاف useTheme حيث يستخدم useContext من React للوصول إلى القيمة المقدمة من ThemeContext. فمثلا في ملف ThemeContext.js : import React, { useContext, createContext } from 'react'; const ThemeContext = createContext(null); export const ThemeProvider = ({ children, theme }) => { return ( <ThemeContext.Provider value={theme}> {children} </ThemeContext.Provider> ); }; export const useTheme = () => { const context = useContext(ThemeContext); if (!context) { throw new Error('should use useTheme ThemeProvider'); } return context; }; ثانيا ملف App.js : import React from 'react'; import { ThemeProvider } from './ThemeContext'; import MyComponent from './MyComponent'; const lightTheme = { colors: { background: '#FFFFFF', text: '#000000', }, fonts: { primary: 'Arial', }, }; function App() { return ( <ThemeProvider theme={lightTheme}> <MyComponent /> </ThemeProvider> ); } export default App; والآن في المكون الذي تريد تغير الثيم له : import React from 'react'; import { useTheme } from './ThemeContext'; function MyComponent() { const theme = useTheme(); return ( <div style={{ backgroundColor: theme.colors.background, color: theme.colors.text, fontFamily: theme.fonts.primary }}> <p>text</p> </div> ); } export default MyComponent; إذا إن useTheme هو أداة تجعل إدارة وتطبيق ثيمات التطبيق في React منظم وإنشاءه بسهولة.
  11. ما هي فكرة المشروع التي تعمل عليها أو ما الذي تحاول تنفيذه هنا ؟ إليك الأفكار التالية ويمكنك تنفيذها بناء على ما تريد أن يقوم به المشروع . يمكنك بناء لوحة تحكم شخصية للمستخدم (User Dashboard) فيمكنك إنشاء سجل للمستخدمين وإنشاء حسابات حيث تسمح لهم بالاحتفاظ بسجل لتنبؤاتهم السابقة. وهذا يسمح لهم بمتابعة تطور حالتهم مع الوقت. أيضا يمكنك إستخدام وإنشاء رسم بياني يوضح احتمالية الإصابة وأيضا توفير نصائح متخصصة بناءً على القيم المدخلة. أيضا يمكنك مقارنة النتائج مع المتوسطات الطبيعية لمعرفة مدى بعد القيم عن الطبيعي. يمكنك إنشاء واجهة رسومية GUI لتستخدم ال apis التي تنشأها.
  12. يوجد العديد والكثير من المشاريع التي يمكنك إنشاءها بإستخدام React وهي مشاريع متقدمة في المستوى وأيضا في الصعوبة. فمثلا يمكنك إنشاء لوحة تحكم Dashboards لإدارة موقع أو بيانات لديك. يمكنك إنشاء مشروع تجارة إلكترونية متكامل حيث تقوم بعرض المنتجات والطلبات وعربة التسوق وأيضا لوحة تحكم لمتابعة الطلبات وتعديل البيانات وغيرها من الأمور التي تتحكم بها في الموقع. يمكنك إنشاء تطبيق تواصل إجتماعي حيث يحوي دردشة حية . وأيضا قوائم للأصدقاء وإرسال طلبات الصداقة . وأيضا نشر المنشورات وغيرها من الخصائص الموجودة في مشاريع التواصل الإجتماعي. يمكنك أيضا إنشاء منصة تعليمية كما هنا في الاكاديمية حيث توفر عرض الدروس والإشتراكات والأسئلة وغيرها من الخصائص المهمة في المنصات التعليمية. وهكذا يمكنك إنشاء أى مشروع تريده يمكنك البحث عن مواقع مهمة بالنسبة لك ومحاولة إنشاء مثلها إذا أردت.
  13. إذا قمت بفتح ال console ستجد أخطاء فيه وهي التي تمنع تشغيل المشروع بشكل صحيح. لاحظ المشكلة أنك لم تقم بإستيراد المكون Contact و Footer لذلك يجب إستيرادهم في ملف src\App.jsx هكذا : import Contact from "./Components/Contact/Contact"; import Footer from "./Components/Footer/Footer"; ليكون الكود هكذا : import React from "react" import Navbar from "./Components/Navbar/Navbar"; import Home from "./Components/Home/Home"; import About from "./Components/About/About"; import Skills from "./Components/Skills/Skills"; import Services from "./Components/Services/Services"; import Projects from "./Components/Projects/Projects"; import Contact from "./Components/Contact/Contact"; import Footer from "./Components/Footer/Footer"; function App() { return ( <> <div> <Navbar /> <Home /> <About /> <Skills /> <Services /> <Projects /> <Contact /> <Footer /> </div> </> ) } export default App
  14. لاحظ المشكلة أنك قمت بوضع سطر 25 : @app.route('/') قبل الصنف Predict مباشرة وهذا خاطئ . وحيث أنك إستخدمت api.add_resource لتسجيل الأصناف. إذا المسارات التي يجب أن تذهب إليها هي /predict أو /health وليس المسار / . ولكن الصحيح هو إما حذف @app.route('/') أو إضافة مسار أساسي هكذا مثلا : from flask import Flask, jsonify from flask_restful import Api, Resource, reqparse import numpy as np import pandas as pd import joblib import tensorflow as tf app = Flask(__name__) api = Api(app) # تهيئة Flask-RESTful # تحميل النماذج والمحولات dl_model = tf.keras.models.load_model('models/dl_model.h5') rf = joblib.load('models/rf_model.joblib') scaler = joblib.load('models/scaler.joblib') # مستخرج السمات من النموذج العميق feature_layer = dl_model.get_layer(index=-2).output extractor = tf.keras.Model(inputs=dl_model.input, outputs=feature_layer) # تحضير محلل البيانات المطلوبة parser = reqparse.RequestParser() for feat in ['age', 'sex', 'cp', 'trestbps', 'chol', 'fbs', 'restecg', 'thalch', 'exang', 'oldpeak', 'slope', 'ca', 'thal']: parser.add_argument(feat, type=float, required=True, help=f"{feat} مطلوب") @app.route('/') def home(): return "Home use /predict or /health" class Predict(Resource): def get(self): args = parser.parse_args() df = pd.DataFrame([args]) X_scaled = scaler.transform(df.values) X_dl = extractor.predict(X_scaled) X_comb = np.hstack([X_scaled, X_dl]) y_pred = int(rf.predict(X_comb)[0]) y_proba = rf.predict_proba(X_comb)[0].tolist() # توليد التوصيات العلاجية recommendations = [] if y_pred >= 2: recommendations = [ "مراجعة طبيب قلب مختص", "إجراء رسم قلب وتخطيط مجدد", "متابعة مستمرة للضغط والكوليسترول" ] else: recommendations = [ "اتباع نظام غذائي قليل الدسم", "ممارسة الرياضة بانتظام", "متابعة سنوية فقط" ] return jsonify({ 'prediction': y_pred, 'probabilities': y_proba, 'recommendations': recommendations }) class Health(Resource): def get(self): return {'status': 'healthy'}, 200 api.add_resource(Predict, '/predict') # GET /predict api.add_resource(Health, '/health') # GET /health if __name__ == '__main__': app.run(debug=True) ويمكنك الذهاب إلى المسارات التالية الصحيحة : http://localhost:5000/predict http://localhost:5000/health
  15. إذا الخطأ يخبرك أنه لم يتم إعادة respone صالح وصحيح حيث يجب على الرد أن يكون إما سلسلة نصية أو قاموس أو قائمة ولكنك قمت بإعادة كائن Predict . يرجى إرفاق ملف المشروع للإطلاع عليه ومساعدتك.
  16. إن خطأ 401 يعني Unauthorized (أت أن الوصول غير مصرح به). وهذا يحدث عندما تطلب موارد محمية بكلمة مرور أو بيانات اعتماد أو إشتراك، ولكنك لم تقم بتقديم هذه البيانات أو قمت بتمريرها أو كتابتها بشكل غير صحيح. ولذلك يجب عليك التأكد من تسجيل الدخول الصحيح وإرسال إما ال token أو jwt بناء على ما تقوم به ويمكنك إرفاق صورة للخطأ لمساعدتك. وإليك أنواع الأخطاء التي من الممكن أن تظهر لك وسبب ظهورها:
  17. المشكلة لديك في ملف src\Components\Navbar\Navbar.jsx في جزء ال ul حيث لاحظ أنك تستخدم عنصر a مع href يحوي رابط localhost:5173 ولكن الصحيح هو جعل الرابط نسبي أى من الموقع الحالي المفتوح . لذلك يرجى إستبدال من سطر 13 حتى 16 بالتالي : <li><Link to="/">Home</Link></li> <li><Link to="/about">About</Link></li> <li><Link to="/services">Services</Link></li> <li><Link to="/contact">Contact</Link></li> وإستيراد link في بداية الملف كالتالي : import { Link } from 'react-router-dom'; ليصبح كود الملف كالتالي : import React from 'react' import './Navbar.css'; import logo from '../../assets/logo.png' import { Link } from 'react-router-dom'; const Navbar = () => { return ( <div> <div className="navbar"> <div className="logo"> <img src={logo} alt="" /> </div> <div className="nav-list"> <ul> <li><Link to="/">Home</Link></li> <li><Link to="/about">About</Link></li> <li><Link to="/services">Services</Link></li> <li><Link to="/contact">Contact</Link></li> </ul> </div> </div> </div> ) } export default Navbar
  18. يرجى تفعيل ال debug لمعرفة أين الخطأ وما هو . يجب إستبدال السطر التالي : app.run() بهذا السطر : app.run(debug=True) بعد ذلك يجب إغلاق المشروع وإعادة تشغيله وإرسال رسالة الخطأ التي تظهر لك مع أخر ملف قمت بتعديله.
  19. وعليكم السلام ورحمة الله وبركاته. نعم صحيح ما تقوم بإنشائه يشبه إلى حد ما لعبة "Mad Libs Generator" حيث يتم إنشاء قصة باستخدام مدخلات المستخدم لملء الفراغات في القصة لديك. الأمر أسهل بكثير بالنسبة للغة الإنجليزية أما مثلا في اللغة العربية الأمر صعب وعقد حيث يتم تغير الضماء والأفعال وحتى الصفات لتناسب جنس البيانات المدخلة . أما في الإنجليزية فيمكننا إنشاء متغيرات بناء على الجنس المدخل هكذا مثلا : if gender == 'male': pronoun = 'he' possessive = 'his' elif gender == 'female': pronoun = 'she' possessive = 'her' else: pronoun = 'they' # للتعامل مع حالات الإدخال الخاطئة أو غير المحددة possessive = 'their' ويمكنك إستخدام تلك الضمائر بداخل الجملة هكذا مثلا : name = input('Enter your name: ') gender = input('Enter your gender (male/female): ').lower() age = int(input('Enter your age: ')) favorite_food = input('Enter your favorite food: ') country = input('Enter your country: ') country_dream = input('Enter which country you wish you could live in: ') siblings = input('Enter the number of your siblings: ') hobbies = input('Enter your hobbies: ') if gender == 'male': pronoun = 'he' possessive = 'his' elif gender == 'female': pronoun = 'she' possessive = 'her' else: pronoun = 'they' possessive = 'their' print(f'Once upon a time, there was a person named {name}. This {gender} was {age} years old. ' f'{pronoun.capitalize()} loved eating {favorite_food}. {pronoun.capitalize()} lived in {country} ' f'but dreamed of settling in {country_dream}. {pronoun.capitalize()} had {siblings} siblings ' f'and enjoyed {hobbies} in {possessive} free time.')
  20. إذا يجب عليك تحديد أولا المجال الذي تريد العمل فيه سواء كان تطوير تطبيقات الويب أو الهاتف أو الذكاء الإصطناعي وذلك لتحديد الدورة المناسبة لك. أما إذا لم تكن لديك فكرة مسبقة عن مجال البرمجة أو التكنولوجيا عموما ولا تعرف المجال المناسب لك فإن دورة علوم الحاسوب هي أفضل بداية لك : ويمكنك قراءة تفاصيل حول تلك الدورة وفائدتها لك :
  21. إذا هذه مشكلة في الكود في الخادم لديك يبدوا أنه يوجد خطأ في الكود
  22. هذا لأنك في الصنف في سطر 26 قمت بتعريف فقط طريقة post أى يجب أن يتم إرسال الطلب من خلال نوع post من نموذج form . ولكن لو أردت أن تجعل الطلب get أى يمكنك الوصول إليه من خلال كتابته في المتصفح يجب تغير post إلى get . أو أن تقوم بتعريف دالة get بداخل الصنف وتعيد ما تريد إعادته عند الذهاب إلى العنوان /
  23. وعليكم السلام ورحمة الله وبركاته. هل تقصد أنك قمت بالإشتراك في دورة هنا في الأكاديمية ؟ إذا كان كذلك هل يمكنك توضيح أى دورة إشتركت بها لمساعدتك.
  24. هل تقوم بالذهاب إلى مسار الرئيسية / ويظهر لك 404 أم تذهب إلى عنوان أخر ؟ أولا غالبا المشكلة بسبب أنك قمت بتعريف app مرتين مرة في سطر 8 ومرة أخرى في سطر 23 . app = Flask(__name__) حيث بسبب هذا بعد أن قمت بكتابة المسار في سطر 10 من خلال app تم إعادة تعينه . لذلك يجب خذف هذا السطر 23 . وأيضا في نهاية الملف لم تستدعي app.run() يجب أن تستديعها هكذا : if __name__ == '__main__': app.run()
×
×
  • أضف...