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

Mustafa Suleiman

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

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

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

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

    403

كل منشورات العضو Mustafa Suleiman

  1. لا مشكلة لو قمت بتنفيذ تصميم من نفسك، المطلوب هو تنفيذ المشروع المطلوب بتصميم مقبول، ومن المفترض أنك خلال الدورة تعلمت كيف يكون شكل الموقع والتصميم الخاص به وأشكال الأقسام. ولمساعدتك أنصحك بالإطلاع على المقالات التالية: ثم نأتي لخطوة استلهام التصميم، والتي تتطلب تغذية بصرية لإختيار أشكال الأقسام في موقعك من عدة تصاميم مختلفة أي تجميع التصميم من خلال عدة تصاميمـ، وقد تصادف تصميم مناسب للفكرة التي تريد تنفيذها ولا مشكلة في ذلك لكن حاول التعديل عليه قليلاً أو ذكر أنك لم تقم بتصميم الجزء الخاص بالـ UI/UX بل كتبت الكود فقط لحفظ الحقوق، وستجد مواقع كثيرة لاستلهام التصميم هنا: وبخصوص الألوان أنصحك بالإعتماد على الموقع التالي في البداية فهو يوفر لك قوالب للألوان لتختار من بينها: https://www.happyhues.co/ والموقع التالي أيضًا: https://coolors.co/palettes/trending ومع الوقت ستتحسن لديك مهارة التصميم من خلال التغذية البصرية والتطبيق، ولكن أنصحك بتعلم أساسيات تصميم واجهة المستخدم فيما بعد فهو أمر ضروري لمطور الواجهات الأمامية، وذلك من خلال القنوات التالية: Ahmad Sekmani Anas Rafaat | أنس رأفت وستجد معلومات مفيدة هنا أيضًا: وإذا كان لديك أي استفسار بخصوص مشروع التخرج وتريد التواصل مع المدرب المسؤول عن مشروعك، فتستطيع التحدث مع مركز المساعدة في أكاديمية حسوب.
  2. الأسئلة الإختبارية لا يتم الإجابة عليها بشكل مباشر ولكن يمكن توضيح الخطوات العامة لتنفيذ المشروع، وفي حال وفرت الكود يمكن مساعدتك في حل المشكلة التي تواجهك. أولاً أنت بحاجة إلى حل المشروع في لغة C++ واستخدام طريقة التكرار (iteration) لتنفيذ خوارزميات الترتيب المختلفة (Insertion sort، Merge sort، Quick sort، Counting Sort) على المجموعات المختلفة من البيانات، وسنقوم بالتالي: 1- عليك بتعريف خوارزميات الترتيب المختلفة المطلوب استخدامها (Insertion sort، Merge sort، Quick sort، Counting Sort)، فقم بتنفيذ كل خوارزمية بطريقة التكرار (iteration) بحيث تقوم بفرز المجموعات العشوائية. 2- إنشاء دوال لتوليد البيانات العشوائية (random data)، البيانات المرتبة (sorted data) والبيانات المرتبة بالترتيب العكسي (reverse-sorted data) بناءً على الحجم الذي يدخله المستخدم. 3- اسأل المستخدم لكل مجموعة عن حجمها (عدد العناصر التي يرغب في توليدها). 4- لكل مجموعة من البيانات (random data، sorted data، reverse-sorted data)، قم بتنفيذ كل خوارزمية وقياس الوقت الذي استغرقه الفرز باستخدام دالة قياس الوقت مثل clock(). 5- تسجيل نتائج قياس الوقت لكل مجموعة بيانات ولكل خوارزمية في ملف إكسل (Excel sheet). يمكنك استخدام مكتبة خارجية مثل "libxl" لكتابة البيانات في ملف Excel. 6- استخدم Excel tools لرسم النتائج المسجلة على شكل رسوم بيانية، برسم ثلاثة مخططات بيانية منفصلة لكل مجموعة من البيانات (random data، sorted data، reverse-sorted data) تُظهِر أداء كل خوارزمية بحسب حجم المجموعة. وبالطبع تستطيع مكتبات خارجية لتسهيل بعض الأمور مثل الرسم البياني وكتابة البيانات في ملف Excel (مثل matplotlib لـ C++ أو gnuplot) لتجسيد النتائج بدلاً من استخدام Excel إذا كان الأمر ممكنًا، ولكن المطلوب الأساسي هو تنفيذ خوارزميات الترتيب بطريقة التكرار وقياس الوقت الذي تستغرقه هذه الخوارزميات على المجموعات المختلفة من البيانات.
  3. أفضل بيئة ولغة هي بيئة العمل واللغة التي لديك خبرة بها، فأنت مثلاً مطور MERN بالتالي أنت على دراية ببيئة Node.js. ,بيئة Node.js ممتازة من أجل ذلك الغرض مع واستخدام مكتبات خارجية متخصصة للتعامل مع الصور والفيديوهات، مثل sharp لمعالجة الصور و ffmpeg لمعالجة مقاطع الفيديو، وتستطيع العثور على العديد من المكتبات الأخرى المتاحة حسب احتياجات مشروعك. وإذا أردت ترشيحات أخرى فهناك Python مع مكتبات مثل Django أو Flask واستخدام مكتبات مثل Pillow لمعالجة الصور و MoviePy لمعالجة الفيديوهات. يوجد أيضًا PHP مع Laravel Framework مع الإعتماد على مكتبات مثل Intervention Image لمعالجة الصور و FFMpeg للتعامل مع ملفات الفيديو وتلك المكتبة تسمح لك بقص، دمج، تحويل الصيغ، وتطبيق تأثيرات وفلاتر على مقاطع الفيديو. ولمعلوماتك تستخدم كل من يوتيوب وانستجرام بنية أساسية معقدة لمعالجة الصور والفيديوهات، وتشمل تلك البنية الأساسية مجموعة متنوعة من المكونات ، بما في ذلك الخوادم والشبكات والأجهزة. وتستخدم يوتيوب مجموعة متنوعة من الأنظمة الأساسية لمعالجة الصور والفيديوهات ، تشمل kubernetes و tensorflow، بينما تستخدم انستجرام أيضًا مجموعة متنوعة من الأنظمة الأساسية ، بما في ذلك kafka و elasticsearch. وتعتمد كل من يوتيوب وانستجرام أيضًا مجموعة متنوعة من الإطارات لمعالجة الصور والفيديوهات، بما في ذلك OpenCV و FFmpeg. ومن المهم أن نفهم أنه عند التعامل مع الصور والفيديوهات، لا تكون اللغة أو البيئة وحدها المسؤولة عن الأداء، بل تعتمد على المكتبات المستخدمة والحالة الخاصة للمشروع.
  4. إذا أردت نصيحتي، فيكفيك المعرفة فقط بهياكل البيانات الأساسية في بداية تعلمك للبرمجة والأمر نفسه بالنسبة للخوارزميات، حيث أنك لن تحقق استفادة من هياكل البيانات والخورازميات المتقدمة في البداية وستنساها، ومن الأفضل العودة إليها بعد إنهاء مسارك البرمجة بالكامل وتنفيذ أكثر من مشروع كبير الحجم نسبيًا، وعند العودة لدراستها ستفهم ما الفائدة منها. وبالنسبة للدوال والـ methods المختلفة، فعليك بفهمها ثم حفظها في البداية ثم التطبيق، وبعد ذلك تستطيع البحث في حال نسيت أمرًا ما. وفي البداية عليك بفهم هياكل البيانات الأساسية وهي: القوائم (Lists) الصفوف (Tuples) القواميس (Dictionaries) المجموعات (Sets) الفئات (Classes) وبالنسبة للخوارزميات فهى: الحلقات (Loops) الدوال (Functions) التعبيرات النمطية (Regular Expressions) وغيرها من الخوارزميات الأساسية في بايثون. أما بعد ذلك كما أخبرتك، ستحتاج إلى تعلم الخوارزميات المتقدمة لتطوير مهاراتك البرمجية كالتالي: البحث الثنائي (Binary Search): خوارزمية فعالة تستخدم للبحث عن عنصر معين في قائمة مرتبة بسرعة. فرز القائمة (Sorting Algorithms): مجموعة من الخوارزميات التي تستخدم لترتيب البيانات في قوائم بترتيب محدد، مثل فرز الدمج (Merge Sort) وفرز السريع (Quick Sort). البحث الخطي (Linear Search): بحث بسيط يتم فيه فحص كل عنصر في القائمة للعثور على القيمة المطلوبة. القوائم المرتبة (Linked Lists): هيكل بيانات يتيح لك تخزين عناصر بطريقة مرتبة وربطها ببعضها البعض. المكدس (Stack): هيكل بيانات يعمل بنظام "الLast-In-First-Out" ويستخدم عادة في تتبع التاريخ المحدود وتنفيذ الدوال التابعة. الطابور (Queue): هيكل بيانات يعمل بنظام "First-In-First-Out" ويستخدم عادة في تنفيذ العمليات بترتيب الوقت. القوائم المرتبة ذات الاتجاهين (Doubly Linked Lists): نوع من القوائم المرتبة يحتوي على روابط في الاتجاهين، مما يسمح بالوصول إلى العناصر بسهولة من البداية والنهاية. خوارزمية البحث العميق (Depth-First Search): تستخدم للتنقل عبر الأشجار والرسم البياني بطريقة عميقة قبل التحرك إلى المستوى التالي. خوارزمية البحث العرضي (Breadth-First Search): تستخدم للتنقل عبر الأشجار والرسم البياني بطريقة أفقية بدءًا من الجذر. وأيضًا يوجد كتب جيدة أنصحك بقراءتها تم ذكرها هنا:
  5. تأكد من أن الحزمة Law. status موجودة بشكل صحيح في ملف google-services.json حيث يجب كتابة اسم الحزمة بنفس الاسم في applicationId في gradle ، وكمثال: "client_info": { "mobilesdk_app_id": "1:23978655351:android:2b2fece6b961cc70", "android_client_info": { "package_name": "in.ac.geu.debug" } }, هنا يجب أن تطابق اسم الحزمة مع applicationId في gradle كالتالي: defaultConfig { applicationId "in.ac.geu.debug" //اكتب اسم الحزمة الصحيح هنا minSdkVersion 23 targetSdkVersion 26 versionCode 7 versionName "1.0" testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" }
  6. الموقع جيد، لكن عليك بتحسين جزء الـ Hero (أول قسم في الموقع) بحيث يتم جذب إنتباه من يستعرض موقعك الشخصي لأول مرة، وأيضًا لعرض معلومات كافية عنك، فالإنطباع الأول هام جدًا وكل ما يتم رؤيته عند زيارة الموقع هو اسمك وتخصصك لكن لا وجود لأي إشارة إلى أن هناك أجزاء أخرى من الموقع، لذلك حاول تحسين ذلك الجزء. وإليك بعض الأمثلة: أيضًأ حاول وضع روابط GitHub وLinkedIn أي الروابط الخاصة بالبرمجو تجنب وضع شهادات أو روابط في غير مجالك. وبخصوص طريقة عرض الأعمال، من الأفضل وضع المزيد من الصورة وليس صورة واحدة فقط، ويا حبذا لو قمت بتخصيص صفحة للتحدث عن كل عمل أو رابط لتصفح المشروع بشكل حي.
  7. تكلفة إنشاء متجر إلكتروني أو موقع ويب ووردبريس تختلف حسب مجموعة متنوعة من العوامل، بما في ذلك: نوع القالب الذي تختاره عدد الميزات التي تريد إضافتها إلى موقعك مستوى الدعم الذي تحتاجه وعامًة إنشاء متجر إلكتروني أو موقع ويب ووردبريس يتطلب تكلفة تتراوح من 500 دولار إلى 5000 دولار، وإذا كنت ترغب في إنشاء متجر إلكتروني بسيط، فقد تتمكن من القيام بذلك بتكلفة أقل، ولكن إذا كنت ترغب في إنشاء متجر إلكتروني معقد مع العديد من الميزات، فستحتاج إلى إنفاق المزيد من المال. وفيما يلي بعض العوامل التي تؤثر على تكلفة إنشاء متجر إلكتروني أو موقع ويب ووردبريس: هناك العديد من القوالب المختلفة المتاحة لـ ووردبريس، وبعضها مجاني والبعض الآخر مدفوع، وتختلف تكلفة القوالب المدفوعة من 50 دولارًا إلى 1000 دولار أو أكثر. بإمكانك إضافة العديد من الميزات إلى موقع ووردبريس الخاص بك، مثل ميزات التجارة الإلكترونية وميزات التسويق عبر البريد الإلكتروني وميزات الأمان، وتختلف تكلفة تلك الميزات من مزود لآخر. في حال أنك غير خبير في ووردبريس، فستحتاج إلى الحصول على دعم من مطور ويب، وتختلف تكلفة الدعم من مطور لآخر. وفي البداية أنت تريد طريقة لإنشاء متجر إلكتروني أو موقع ويب ووردبريس بتكلفة منخفضة، وهناك بعض الأشياء التي يمكنك القيام بها: قم بإضافة الميزات التي تحتاجها فقط، فأنت لا تحتاج إلى إضافة جميع الميزات المتاحة إلى موقع ووردبريس في باديء الأمر، فقط بإضافة الميزات التي تحتاجها بالفعل. البدء في تعلم مجال البرمجة من خلال تعلم PHP ولارافيل ووردبريس ثم إنشاء مشروعك الخاص وفي أكاديمية حسوب يوجد دورة تطوير تطبيقات الويب باستخدام لغة PHP.
  8. بالفعل هي مشكلة قائمة حاليًا في webdriver_manager حاول تمرير إصدار المتصفح كالتالي في حال أنك تستخدم selenium 4 : from selenium import webdriver from selenium.webdriver.chrome.service import Service as ChromeService from webdriver_manager.chrome import ChromeDriverManager driver = webdriver.Chrome(service=ChromeService(ChromeDriverManager(version="115.0.5790").install())) وفي حال استمرت المشكلة، فالسبب هو Selenium Manager تم تضمينه في selenium الإصدار 4.10.0 وكل ما أنت بحاجة إليه الآن هو كتابة الكود كالتالي: from selenium import webdriver from selenium.webdriver.chrome.service import Service service = Service() options = webdriver.ChromeOptions() driver = webdriver.Chrome(service=service, options=options) وفي حال لم يتم العثور على الـ driver في الـ PATH فسيقوم Selenium Manager بتحميله تلقائيًا.
  9. أولاً ما قمت بتنفيذه هو جانب الواجهة الأمامية Front-End وهو الجانب الخاص بعرض البيانات الواردة من الخادم أو من أي API خارجي والذي بدوره يعمل على واجهة خلفية Back-End، ولتفعيل خواص الموقع أنت بحاجة إلى برمجة واجهة خلفية أو استخدام واجهة API من طرف ثالث مثل بوابة دفع معتمدة وآمنة تسمح للعملاء بإجراء عمليات الشراء عبر الإنترنت، وبوابات الدفع تتيح التحقق من بطاقات الائتمان أو الحسابات المصرفية وتنفيذ العمليات المالية بشكل آمن. بعض أمثلة على بوابات الدفع هي PayPal وStripe و2Checkout. وأنت في دورة تطوير واجهات المستخدم ستتعلم فقط تطوير الواجهة الأمامية وليس الخلفية، وليس عليك تعلم الواجهة الخلفية لتفعيل ميزة الشراء فكما أخبرتك هناك منصات جاهزة توفر لك API لذلك، لكن في حال أردت إضافة ميزات أخرى فقد تحتاج إلى تطوير الواجهة الخلفية من خلال node.js أو PHP وغيرهم مما يعني أنك ستصبح Full-stack developer.
  10. في حال أنك من مصر وتستخدم cdn من jsdelivr ووجدت أخطاء في الكونسول بخصوص المكتبات، فعليك بتعديل روابط المكتبات من cdn.jsdelivr إلى fastly.jsdelivr وفي حال استمرت المشكلة فعليك بتفقد الأخطاء التي تظهر لك في الكونسول. وأيضًا حاول حذف الملفات والإعدادات المؤقتة من خلال الأمر التالي: php artisan optimize:clear ثم تحزيم المشروع من خلال تشغيل الأمر: npm run dev وتأكد من أن عملية التحزيم تتم بشكل سليم.
  11. العرض متاح من أجل الإشتراكات الجديدة وتستطيع الإشتراك في أي دورتين تريد، أما بخصوص الإشتراكات القديمة فلا ينطبق العرض عليها. وتستطيع التحدث لمركز المساعدة في أكاديمية حسوب وتسجيل الدخول بالحساب الذي قمت بالإشتراك به في الدورة، وشرح الموقف لهم وسيتم الرد عليك في خلال 24 إلى 48 ساعة في حال وجود ضغط لا تقلق، وفي حال وجود إمكانية لذلك سيتم مساعدتك.
  12. أنا بحاجة لتفقد وإختبار الموقع من خلال أدوات المطور أو يمكنك القيام أنت بذلك، قم بتحديد حالة hover من خلال أدوات المطور لعناصر القائمة ثم تفقد الجزء الذي يظهر أسفل الـ navbar من أين يأتي. وأيضًا لاحظت أنه عند التمرير للأسفل يتم تغطية الـ navbar بخلفية زرقاء، هل تقصد ذلك؟ من الأفضل إعطائه قيمة z-index أعلى لتجنب ذلك.
  13. تلك الخاصية متاحة في الإصدار الأخير من excel عليك بتحديث البرنامج لديك في حال قمت بتفعيله بشكل رسمي. وفي حال لم يتوفر لديك التحديث، فهناك حل لتلك المشكلة، وهي بتثبيت إضافة List Search Add-in من الرابط التالي: https://www.excelcampus.com/wp-content/uploads/2022/02/The_List_Search_Add-in_for_Excel.zip وبعد تحميل الملف قم بفك الضغط عنه في مجلد في مكان آمن. ولتثبيت الإضافة ستضغط على file ثم options وستظهر لك نافذة اختر منها Go كالتالي: ثم ستظهر لك قائمة اختر منها Browse كالتالي: والآن ابحث عن الإضافة في المجلد الذي قمت بفك الضغط به واخترها كالتالي: ثم اضغط على ok ليتم الحفظ. والآن قم بإختيار على القائمة الخاصة بك ثم ستجد أن هناك تبويب جديد ظهر لك باسم XL Campus وعند الضغط عليه ستجد خيار باسم List Search اضغط عليه وستجد صندوق بحث قد ظهر لك ابحث بداخله عما تريد وستجد النتائج مباشرًة من القائمة الخاصة بك. وبعد إختيار النتيجة اضغط على Enter أو اضغط على السهم المشار إليه.
  14. أنت تريد استخراج اسم النظام من نتيجة Nmap، صحيح؟ عليك بالبحث عن حقل "OS" في الإخراج وستجد اسم النظام، وإليك مثال لنتيجة لـ Nmap: Nmap scan report for 127.0.0.1 Host is up (0.00012s latency). Not shown: 998 closed ports PORT STATE SERVICE 22/tcp open ssh 80/tcp open http Host: 127.0.0.1 (localhost) OS: Microsoft Windows 10 (10.0 Build 19041) Aggressive OS guesses: Microsoft Windows 10 (10.0 Build 19041) اسم النظام هو "Microsoft Windows 10 (10.0 Build 19041)". ولاستخراج تلك القيمة، استخدم الأمر التالي: nmap 127.0.0.1 | grep OS تستطيع أيضًا استخدام الأمر التالي لاستخراج اسم النظام والمعلومات الأخرى حول المضيف المستهدف: nmap -O 127.0.0.1 والنتيجة هي إخراج المعلومات التالية: Host: 127.0.0.1 (localhost) OS: Microsoft Windows 10 (10.0 Build 19041) Aggressive OS guesses: Microsoft Windows 10 (10.0 Build 19041) أيضًا هناك توفر لك المعلومات TTL مؤشرًا على نظام التشغيل المستهدف، حيث أن هناك العديد من العروض المختلفة مع بروتوكولات مختلفة تعطي لنا نظرة عامة على الأنظمة التي تعمل بقيم TTL محددة. وTTL هي قيمة يتم تعيينها من قبل مرسل الحزمة وتُستخدم لتحديد عدد أجهزة التوجيه التي يمكن للحزمة المرور عبرها قبل رفضها، والقيمة الافتراضية لـ TTL لأنظمة Linux و Unix هي 64، بينما القيمة الافتراضية لـ TTL لأنظمة Windows هي 128. وإليك القيم: Linux/Unix - 64 Windows - 128 AIX - 255 BSD - 255 Solaris - 255
  15. عليك بتفقد ما هو التنسيق الذي يتم تنفيذه عند عمل hover على عناصر قائمة التنقل، ومن الأفضل إرفاق مجلد المشروع لمعاينة المشكلة.
  16. كما أخبرتك يجب أن تكون 18 عام حيث تم ذكر ذلك في شروط الاستخدام على منصة مستقل، وأظن أن الشرط موضوع من أجل أن تمتلك بطاقة هوية، وطالما أنك تمتلكها فلا مشكلة، وذلك غير مؤكد ولتأكيد ذلك تحدث لمركز المساعدة في مستقل.
  17. أنت بحاجة إلى تعلم لغة برمجة أولاً تؤهلك لتطوير تطبيقات الأندرويد، وحاليًا يوجد لغتي جافا وكوتلن لتطوير تطبيقات Native. أما إذا أردت تعلم إطار عمل من أجل تطوير تطبيق يعمل على الأندرويد و iOS، فأمامك إطار Flutter ولغة البرمجة الخاصة به هي Dart وأيضًا يوجد React Native ولغة البرمجة الخاصة به هي جافاسكريبت. لذلك عليك بتحديد ما تريده، ثم البدء في التعلم وأنصحك قبل ذلك بقراءة التالي: ويوجد في أكاديمية حسوب دورة تطوير تطبيقات باستخدام جافاسكريبت وبها مسار كامل لتطوير تطبيقات الهاتف باستخدام React Native.
  18. بالطبع فدورة بايثون شاملة، فلو بحثت عن متطلبات وظيفة python developer أو back-end بلغة بايثون على LinkedIn مثلاً ستجد أن الدورة تغطي تلك المتطلبات. وخلال الدورة ستقوم بإنشاء مشاريع حقيقية لوضعها بمعرض أعمالك وليست مجرد نماذج. والأسهل في البداية هو العمل في شركة من أجل أن يتم توجيهك وإعطائك مهام مناسبة لمستواك، فالبعض يصاب بالإحباط عند العمل في البداية على مواقع العمل الحر، وأنصحك بقراءة التالي فقد أجبت على سؤال مشابه بشكل مفصل:
  19. المشكلة هي أنك تحاول تحميل صورة لمستخدم جديد باستخدام اسم المستخدم كاسم الملف في Firebase Storage وتحميل الصورة قبل أن يتم إنشاء المستخدم في Firebase Authentication. أي أن السطر التالي في ملف Register.jsx هو السبب في حدوث الخطأ: const storageRef = ref(storage, displayName); وعند تشغيل ذلك السطر، يتم البحث عن مجلد أو ملف باسم المستخدم (displayName) في Firebase Storage، ولكن بما أن المستخدم لم يتم إنشاؤه بعد (إذ لم يتم إنجاز عملية createUserWithEmailAndPassword بنجاح)، فإن Firebase يقوم بإرجاع خطأ بسبب عدم وجود المستخدم. لذلك حاول تأجيل عملية تحميل الصورة حتى يتم إنشاء المستخدم بنجاح، عن طريق تحويل جزء من الكود داخل المحاولة (try) إلى جزء من التأكيد (then) في Promise الذي يتم إرجاعه من createUserWithEmailAndPassword. قم بتحديث الكود في ملف Register.jsx كما يلي: const handleSubmit = async (e) => { e.preventDefault(); const displayName = e.target[0].value; const email = e.target[1].value; const password = e.target[2].value; const file = e.target[3].files[0]; try { const res = await createUserWithEmailAndPassword(auth, email, password); // تم إنشاء المستخدم بنجاح، يمكن الآن متابعة عملية تحميل الصورة const storageRef = ref(storage, displayName); const uploadTask = uploadBytesResumable(storageRef, file); // باقي الكود لتحميل الصورة وتحديث بيانات المستخدم يبقى كما هو // ... } catch (err) { // يمكنك معالجة الخطأ هنا إذا لزم الأمر } };
  20. من ضمن شروط الاستخدام المذكورة في منصة مستقل أن تكون 18 عام كحد أدنى، ولكن طالما أنك تمتلك إثبات هوية فلا مشكة في ذلك على ما أظن، ولتأكيد ذلك من الأفضل التحدث لمركز المساعدة في مستقل.
  21. من المفترض أن يتم طلب توثيق الهوية بعد أول مشروع لك على الموقع، وشروط الواجب توافر في الوثائق هي: أن تكون صور الوثائق ملونة، لا يسمح بإضافة الهوية بالأبيض والأسود إضافة صور واضحة عالية الجودة. لا يتم قبول الصور منخفضة الجودة يجب أن تتطابق معلومات الهوية مع كافة بياناتك في حسوب: الاسم الأول والثاني، البلد، العنوان وتاريخ الميلاد أن تظهر المعلومات بشكل واضح في صورة الهوية، كالصورة الشخصية، الاسم الكامل، العنوان، تاريخ الإصدار وتاريخ الصلاحية، والإمضاء أو الختم الإداري تاريخ صلاحية الهوية غير منتهي بعد التقاط صورة الهوية مباشرة عبر الجوال بدون أي تعديلات أن يكون محتوى الهوية باللغة العربية أو الإنجليزية وتستطيع قراءة المزيد من هنا: توثيق الهوية الشخصية على مستقل وإذا كان لديك أي استفسار تستطيع التحدث لمركز المساعدة على مستقل.
  22. بالطبع سيتم سؤالك عن إثبات للهوية في حال قيامك بأي نشاط على باي بال، سواء من خلال بطاقة الرقم القومي أو جواز السفر، وذلك لأن نPayPal يسعى إلى حماية المستخدمين من الاحتيال، وهناك عدد من الطرق المختلفة الأخرى التي يمكنك من خلالها توثيق حسابك، بما في ذلك: تقديم نسخة من كشف حسابك المصرفي. التحقق من رقم هاتفك المحمول. التحقق من عنوانك البريدي. ويختلف مقدار المعلومات التي يُطلب منك تقديمها اعتمادًا على البلد الذي تعيش فيه ونوع حساب PayPal الذي لديك، وإذا طُلب منك توثيق حسابك، فيمكنك القيام بذلك من خلال زيارة موقع PayPal وتسجيل الدخول إلى حسابك. ثم، انقر فوق علامة التبويب "الحساب" وحدد "التوثيق" من القائمة. سيرشدك PayPal بعد ذلك خلال عملية التوثيق.
  23. أولاً عليك بتصميم جدول للمنتجات يحتوي على معلومات المنتجات مثل الاسم والسعر والكمية المتوفرة وغيرها من المعلومات التي تحتاجها كالتالي: CREATE TABLE products ( product_id INT AUTO_INCREMENT PRIMARY KEY, product_name VARCHAR(255) NOT NULL, price DECIMAL(10, 2) NOT NULL, quantity INT NOT NULL ); ثم إنشاء جدول لتخزين بيانات الفواتير مثل تاريخ الفاتورة ومعلومات الموظف وحالة الدفع. CREATE TABLE invoices ( invoice_id INT AUTO_INCREMENT PRIMARY KEY, employee_name VARCHAR(255) NOT NULL, invoice_date DATE NOT NULL, total_amount DECIMAL(10, 2) NOT NULL, amount_paid DECIMAL(10, 2) NOT NULL, payment_status ENUM('Unpaid', 'Partially Paid', 'Paid') NOT NULL ); بعد ذلك ربط جدول المنتجات بجدول الفواتير لكي تتمكن من تتبع التفاصيل الخاصة بكل فاتورة والمنتجات المرتبطة بها: CREATE TABLE invoice_details ( detail_id INT AUTO_INCREMENT PRIMARY KEY, invoice_id INT NOT NULL, product_id INT NOT NULL, quantity INT NOT NULL, subtotal DECIMAL(10, 2) NOT NULL, FOREIGN KEY (invoice_id) REFERENCES invoices (invoice_id), FOREIGN KEY (product_id) REFERENCES products (product_id) ); والآن تأتي خطوة إضافة بيانات المنتجات بإضافة بعض البيانات الاختبارية لجدول المنتجات باستخدام عبارة INSERT INTO. INSERT INTO products (product_name, price, quantity) VALUES ('Product 1', 10.00, 50), ('Product 2', 15.00, 30), ('Product 3', 20.00, 20); وعندما يقوم الموظف بعمل طلب جديد، يتم إنشاء فاتورة جديدة في جدول الفواتير، وربما تحتاج إلى تعبئة بعض المعلومات مثل اسم الموظف وتاريخ الفاتورة. وبعد إنشاء الفاتورة، قم بإضافة تفاصيل الطلب (المنتجات المطلوبة وكمياتها) إلى جدول تفاصيل الفواتير. ثم احتفظ بمعلومات المبلغ المدفوع في جدول الفواتير، وتستطيع تحديث حالة الدفع إلى "Partially Paid" عند دفع جزء من المبلغ وعند دفع المبلغ بالكامل يمكنك تحديث حالة الدفع إلى "Paid". وباستخدام حقل الحالة في جدول الفواتير، بإمكانك متابعة ما إذا كان العميل قد قام بدفع الفاتورة بالكامل أم لا.
  24. لديه خطأ يعني أنه عندما تقوم بتطبيق مشغّل الفحص (null check operator) "!" على قيمة تكون فارغة (null)، وعند استخدام "!" بجانب متغير أو خاصية يفترض أن تكون غير فارغة (non-null)، فإذا كانت القيمة فعليًا فارغة (null)، سيتم رفع خطأ بسبب هذا التصريح غير الصحيح. وفي الكود لديك قبل استخدام المشغّل "!" على المتغير أو الخاصية، عليك بالتحقق إذا كانت القيمة فعليًا غير فارغة باستخدام التحقق من القيمة الفارغة كالتالي: if (myVariable != null) { // قم بتنفيذ العمليات على myVariable هنا } أيضًا استخدم مشغل عدم الائتمان "?" بدلاً من "!" والذي سيتجاوز الخطأ إذا كان المتغير فعليًا فارغًا (null) وسيعيد قيمة افتراضية بدلاً من رفع الخطأ كالتالي: var value = myVariable?.someProperty; وفي حال كانت myVariable فارغة (null)، سيتم تعيين قيمة value بدلاً من رفع الخطأ. بإمكانك أيضًا استخدام ثلاثي العوامل للتحقق من أكثر من خاصية في سلسلة من الخصائص دون رفع الخطأ إذا كان أحد هذه الخصائص فارغًا (null): var value = myVariable?.someProperty?.anotherProperty;
  25. أنت تقصد التصميم المتجاوب للموقع، صحيح؟ ستحتاج إلى استخدام الـ media query من أجل ضبط تصميم الصفحة على مختلف أحجام الشاشات وذلك من خلال إختبار الموقع وتفق الـ Break points التي يصبح فيها التنسيق غير سليم عند حجم معين، وذلك باستخدام أدوات المطور في المتصفح أي بتصغير حجم الموقع أو إختيار حجم معين للشاشة وتصفح الموقع لإختباره. ومن الأفضل أن تعتمد من البداية على الـ Grid والـ Flex ووحدة قياس rem وأيضًا خاصية max-width من أجل تسهيل عملية تجاوب الصفحة. وقد تم ذكر ذلك هنا بالتفصيل: أما في حال كنت تقصد تصميم الموقع نفسه على أداة مثل Figma فستحاج بالطبع إلى تصميم نسخة خاصة بالشاشات الصغيرة وكيف سيتم عرض أقسام وعناصر الموقع على تلك المساحة الصغيرة، وأحيانًا يتم إنشاء نسخة لأجهزة التابلت أيضًا، والأمر عبارة عن إعادة توزيع لعناصر التصميم وتصغير الأحجام أو حذف بعض العناصر الغير ضرورية.
×
×
  • أضف...