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

Mustafa Suleiman

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

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

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

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

    445

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

  1. يتم تحديث الدورات كل فترة سواء بتحديث مسارات لاستخدام أحدث التقنيات أو بإضافة محتوى جديد، وإطار FastAPI من الإطارات المهمة بخصوص لغة بايثون. فهو يقدر لك طريقة سهلة وسريعة كما هو واضح من اسمه، ففكرته تقوم على كتابة أقل قدر ممكن من الكود لإنشاء API كامل ومتعدد المزايا، حيث يوفر الكثير من المزايا بالمجان بدون الحاجة إلى برمجتها، مثل التحقق من أنواع البيانات التي يتم إرسالها، إعادة الأخطاء بشكل مناسب ومفهوم، توليد التوثيق بشكل تلقائي، والكثير غير ذلك. أي لا حاجة لدراسة أُطر العمل الأكثر تعقيدا مثل Flask و Django. يمكنك متابعة آخر التحديثات بخصوص الدورات من هنا: https://academy.hsoub.com/release-notes/
  2. ذلك في البداية وليس في النهاية، من الأفضل دراسة أساسيات المحاسبة لو تنوي القيام بالمشروع ويجب وجود محاسب ذو خبرة معك أيضًا ويجب توضيح ذلك للعميل.
  3. لا عليك، في حال لديك الوقت الكافي قم بدراسة كامل الدورة ثم قرر أي مجال تريد، لكن المجال يتم تقريره تبعًا لسوق العمل وليس تبعًا لما تفضله أنت، أي عليك البحث في سوق العمل لديك عن الوظائف الخاصة بمستوى Junior أو خبرة سنة أو سنتين وتفقد التقنيات المطلوبة وما هو المجال أو التقنيات المطلوبة بكثرة، لديك مواقع مثل LinkedIn و Indeed، وذلك لكي تحافظ على وقتك وتدرس في الإتجاه الصحيح. بعد ذلك قم بدراسة المسارات الخاصة بالمجال الذي حددته، مثلاً مجال الويب يوجد لديك الواجهة الأمامية والواجهة الخلفية وفي حال دراستهم معًا تصبح Full-stack وذلك مسمى وظيفي مطلوبة خاصًة في بداية مسيرتك. المسارات الأساسية: أساسيات لغة JavaScript أساسيات TypeScript مسارات الواجهة الأمامية: أساسيات React.js تطبيق دردشة يشبه WhatsApp (الجزء الخاص بالواجهة الأمامية react). مسارات الواجهة الخلفية: أساسيات Node.js تطبيق دردشة يشبه WhatsApp (الجزء الخاص بالخادم) تطبيق حجز مناسبات باستخدام GraphQL Full-stack: إنشاء تطبيق أسئلة وأجوبة باستخدام Next.js تطبيق تعلم اللغات باستخدام Next.js وتقنيات الذكاء الاصطناعي
  4. ليس كذلك، ما ستقوم به أنت هو عملية التطوير لكن هل المطلوب هو نظام ERP أم نظام محاسبي accounting فقط مثل Quickbooks عامًة ما يريده العميل هو إنشاء منصة SaaS لتقديم خدمة بإشتراك. ستحتاج إلى شخص لديه خبرة في المحاسبة وليس خبرة بسيطة، من أجل مساعدتك في تخطيط هيكل المشروع، أي تحديد المطلوب ثم التفكير حول كيفية ترجمة ذلك داخل المنصة، ولن تستطيع القيام بذلك بمفردك، فنعم بإمكانك تعلم أساسيات المحاسبة لكن لن تمتلك الخبرة اللازمة من الواقع العملي والمشاكل المتعلقة بالعمليات المحاسبية وما يبحث عنه العملاء، فالغرض من المنصة هو تقديم حل للـ pain points الخاصة بالعملاء. عامًة يوجد دورة عربية كبيرة على اليوتيوب خاصة بلارافل ابحث عن "erp system project laravel" وتفقد الأمر.
  5. يوجد عنصر RichTextBox في وينفورم لإنشاء ورقة نصية يمكنك فيها كتابة النصوص بطرق مختلفة، لكن لو تريد إنشاء ورقة نصية بتصميم معين، فاستخدم عنصر Panel ووضع عناصر Label و TextBox . using System; using System.Windows.Forms; public class MyForm : Form { public MyForm() { Panel panel = new Panel(); panel.Location = new System.Drawing.Point(0, 0); panel.Size = new System.Drawing.Size(320, 210); this.Controls.Add(panel); Label label1 = new Label(); label1.Location = new System.Drawing.Point(10, 10); label1.Size = new System.Drawing.Size(100, 20); label1.Text = "اسم الطالب :"; panel.Controls.Add(label1); TextBox textBox1 = new TextBox(); textBox1.Location = new System.Drawing.Point(120, 10); textBox1.Size = new System.Drawing.Size(150, 20); panel.Controls.Add(textBox1); Label label2 = new Label(); label2.Location = new System.Drawing.Point(10, 40); label2.Size = new System.Drawing.Size(100, 20); label2.Text = "عنوانه :"; panel.Controls.Add(label2); TextBox textBox2 = new TextBox(); textBox2.Location = new System.Drawing.Point(120, 40); textBox2.Size = new System.Drawing.Size(150, 20); panel.Controls.Add(textBox2); Label label3 = new Label(); label3.Location = new System.Drawing.Point(10, 70); label3.Size = new System.Drawing.Size(100, 20); label3.Text = "رقم الهاتف :"; panel.Controls.Add(label3); TextBox textBox3 = new TextBox(); textBox3.Location = new System.Drawing.Point(120, 70); textBox3.Size = new System.Drawing.Size(150, 20); panel.Controls.Add(textBox3); } [STAThread] static void Main() { Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); Application.Run(new MyForm()); } } وفي حال تريد استخدام كريستال ريبورت لإنشاء تقرير، فاستخدم عنصر CrystalReportViewer في وينفورم: using System; using System.Windows.Forms; using CrystalDecisions.Windows.Forms; public class MyForm : Form { public MyForm() { CrystalReportViewer crystalReportViewer = new CrystalReportViewer(); crystalReportViewer.Location = new System.Drawing.Point(0, 0); crystalReportViewer.Size = new System.Drawing.Size(320, 210); this.Controls.Add(crystalReportViewer); MyReport myReport = new MyReport(); crystalReportViewer.ReportSource = myReport; } [STAThread] static void Main() { Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); Application.Run(new MyForm()); } } ولإنشاء تقرير كريستال، استخدم أداة كريستال ريبورت في فيجوال ستوديو من خلال: فتح المشروع في فيجوال ستوديو. انقر على Projec ثم Add New Item. اختر Crystal Reports من قائمة النماذج. اختر Crystal Report ثم انقر على Add. في نافذة Crystal Report Gallery، اختر Blank Report ثم انقر على OK. في نافذة Crystal Report Designer، يمكنك إنشاء تقريرك بتصميم معين.
  6. يجب توضيح ما المشكلة التي تواجهها وفي أي جزء من التصميم بتوفير صورة على الأقل لما يحدث لديك، ومن الأفضل توفير الكود.
  7. لا يوجد مشكلة عند الضغط على زر تسجيل الدخول أو زر إنشاء الحساب، قمت بكتابة إيميل وباسورد وتم تسجيل الدخول والتحويل للصفحة الرئيسية. عامًة قم بتغيير الكود للتالي: registerBtn?.addEventListener('click', () => { container.classList.add("active"); }); loginBtn?.addEventListener('click', () => { container.classList.remove("active"); }); لاحظ ? وهو Optional chaining operator فائدته التحقق من وجود قيمة أي يعمل على التحقق من وجود قيمة registerBtn و loginBtn قبل محاولة الوصول إلى خاصية addEventListener. وفي حال registerBtn أو loginBtn تساوي null أو undefined، فإن الكود لن يُنفذ addEventListener وسيتم تجنب حدوث خطأ.
  8. ليس عليك ذلك، المطلوب منك فهم المشكلة من خلال وصف المسابقة ووصف البيانات المتاحة، ثم معالجتها تبعًا لذلك
  9. لو أردت نصيحة واحدة فهي لا تتسرع فمجال البرمجة بحاجة إلى صبر ومجهود ومع الإلتزام يصبح الأمر أسهل فأسهل، ولا تقلق من المشاكل والأخطاء اعتد عليها وتعلم منها. وأيضًا لا تتسرع في دراسة الأساسيات والإنتقال إلى التقنيات وهي المكتبات والإطارات المبنية على جافاسكريبت مثل React أو CSS مثل بوتستراب. تعمق في دراسة HTML, CSS, JS ولا تنتقل من HTML و CSS لغة إلى أخرى قبل التطبيق بشكل جيد وبشكل متدرج أي نماذج بسيطة في البداية ثم انتقل إلى تصميم كامل. وليس من خلال الشرح فقط بل بمفردك أيضًا، أي قم بالبحث عن تصميم بسيط لجزء معين من الصفحة أو تصميم كامل وحاول تنفيذه من خلال HTML, CSS. ستجد على اليوتيوب الكثير من المشاريع للمبتدئين، وأيضًا على مواقع مثل frontend mentor. ستجد تفصيل هنا بخصوص طريقة المذاكرة الجيدة:
  10. ما هو الخطأ الذي ظهر لك؟
  11. العمود يعني أن هناك بعض القيم التي لم يتم جمعها أو لم يتم إجراء الفحص اللازم، وللتعامل مع الأمر أولاً لو لديك معلومات عن سبب عدم الفحص، فقم باستبدال Not done بقيمة تصف السبب (مثل Refused أو Contraindication). وإن لم يكن لديك معلومات عن السبب، فقم باستبدالها بقيمة محددة مثل Missing أو Unknown. أيضًا تستطيع حذف الصفوف التي تحتوي على Not done، لكن سيؤدي ذلك إلى فقدان معلومات مهمة إن كانت نسبة الصفوف التي تحتوي على Not done كبيرة، بجانب تحيزات في تحليل البيانات لو هناك علاقة بين عدم الفحص والعوامل الأخرى.
  12. الصور لتظهر بشكلها فقط أي الحذاء بدون الخلفية، يجب أن تكون بصيغة png ويجب التأكد من عدم وجود خلفية بها، فصيغة png هي التي تدعم الخلفية الشفافة. بخصوص تموضع الصورة في الخلف أو الأمام، فذلك يتم من خلال قيمة z-index عليك إعطائها رقم أكبر لتظهر في الأمام، ولكن يجب تحديد قيمة لخاصية position للصورة أي كالتالي: img { position: absolute; z-index: 10; }
  13. يمكن استخدامه في عمود يحتوي على أكثر من متغير، فالهدف منه هو تحويل القيم النصية إلى قيم رقمية يمكن للنماذج الإحصائية التعامل معها. مثلاً لو لديك عمود يحتوي على قيم مثل مدينة، ريف، ساحل، فاستخدمه لتحويل القيم إلى قيم رقمية مثل 0، 1، 2. ولكن يجب أن تكون حذرًا عند استخدامه في عمود يحتوي على قيم متعددة، حيث يمكن أن يؤدي ذلك إلى مشاكل مثل التمثيل غير الصحيح في حال القيم في العمود ليست متسلسلة أو لا تتبع ترتيبًا معينًا، أو الارتباط الخاطئ لو كانت القيم في العمود غير مرتبطة ببعضها البعض. عامًة لا أنصحك باستخدام ترميز التسمية في الأعمدة التي تحتوي على ترتيب طبيعي بين القيم، أي لو لديك عمود Age يحتوي على القيم Child, Teen,Adult, فترميز التسمية سيؤدي إلى فهم خاطئ للنموذج، حيث سيعتقد أن Teen أكبر منAdult. واستخدم Label Encoding فقط مع القيم النصية وليس مع القيم الرقمية أو التاريخية، ومن المهم مراجعة البيانات قبل استخدامه للتأكد من أن القيم في العمود ليست متكررة بشكل كبير، وأنها لا تحتوي على قيم غير متوقعة. وفي حال القيم في العمود لا تتبع ترتيبًا معينًا، فهناك تقنيات أخرى مثل One-Hot Encoding أو Hashing أو Dummy Encoding.
  14. الأمر بحاجة إلى وقت ليتم تحديث موقعك في نتائج جوجل أي بعد إعادة الزحف والأرشفة لموقعك ستظهر النتيجة، تفقدها بعد أسبوع.
  15. لن يتم السؤال عنه في الإمتحان، من شروط التقدم للإختبار إجتياز 4 مسارات فقط كحد أدنى، بالتالي طالما قمتي بدراسة 4 مسارات أو أكثر من ذلك فلا مشكلة تستطيعي التقدم للإختبار وتقديم التطبيقات العملية التي قمتي بها، وسيتم إختبارك في المسارات التي قمتي بدراستها فقط. لكن أرجو ذكر المسارات التي قمتي بدراستها في الدورة عند التقدم للإختبار، وذلك من خلال مركز المساعدة
  16. لا عليك، تستطيع إرسال رابط المشروع إلى مركز المساعدة وسيتم مراجعة المشروع، لكن أرجو ذكر أنك كنت تتحدث مع إياد الاسماعيل. بعد ذلك أرجو الإنتظار لحين مراجعة مشروعك وسيتم العودة والرد عليك بالنتيجة وأية نصائح وإرشادات.
  17. ذلك مجرد إختصار alias لاسم المكتبة عند استيرادها بمعنى إعادة تسمية لتسهيل استخدامها خلال الكود الخاص بنا. تخيل الأمر كأنه لقب، مثلاً اسمك علي من الممكن تلقيبك بأسماء أخرى. لكن تجنب أسماء غير مفهومة عند إعادة التسمية مثلاً np لمكتبة numpy فذلك مفهوم أما ma مثلاً فذلك غير مفهوم.
  18. استخدم التالي لإضافة الأيقونة: <link rel="shortcut icon" type="image/x-icon" href="icon.ico?"> بخصوص وسائل التواصل فكل ما تحتاجه هو إضافة التالي فقط: <meta property="og:title" content="Haitham Sharlie's Portfolio"> <meta property="og:description" content="Explore Haitham Sharlie's web development projects and UI/UX skills."> <meta property="og:image" content="https://raw.githubusercontent.com/haitham-sharlie/my-portfolio/refs/heads/main/icon.ico"> لاحظ أضفت رابط الصورة المباشر.
  19. جربت تغيير html و css ولم يحدث الخطأ وأعدت تشغيل المشروع، حاول إغلاق المحرر والمتصفح ثم التجربة من جديد.
  20. متى يحدث الخطأ، قمت بحذف مجلد dist ثم إعادة تشغيل المشروع وتجربته والضغط على الروابط ولم يحدث الخطأ. بعد حذف مجلد dist وتشغيل المشروع، قم بإعادة تحديث الصفحة أيضًا بالضغط على CTRL + F5 لحذف الملفات المؤقتة.
  21. من الأفضل الإعتماد على Local Storage وسيتم تخزين البيانات على جهاز المستخدم, وتستطيع الوصول إليها من خلال جافاسكريبت، وستبقى المنتجات موجودة في السلة عند عودة المستخدم مرة أخرى. لكن للإجابة على سؤالك بشكل جيد، تحتاج إلى الإجابة على هل منتجاتك محدودة العدد؟ بمعنى، هل تحتاج إلى حجز منتج لمدة 10 دقائق حتى يتمكن المستخدم من شرائه؟ هل تريد إجراء تحليلات عليها وإرسال رسائل بريد إلكتروني لاحقًا؟ هل تريد تذكرها عبر الأجهزة بحيث تصبح متزامنة على أجهزة المستخدم؟ هل تريد من المستخدمين تسجيل الدخول أم الشراء مباشرًة؟ عملية التخزين على جانب المتصفح تعمل بشكل جيد فقط في حال كان المشروع صغير لديك، ودائمًا من الأفضل حفظ عناصر السلة في جانب الخادم
  22. في حال قمت بتثبيت react بشكل global أي عالمي لتصبح متاحة لكافة المشاريع على جهازك فعليك حذفها من خلال: npm un react-g بعد ذلك قمت بإنشاء مشروع react بشكل محلي أي كل مشروع بشكل منفصل بالحزم الخاصة به. لتفقد الأمر أيضًا قم بعرض نتيجة الأمر التالي لرؤية الحزمة المثبتة بشكل global لديك npm list -g --depth=0
  23. ستحتاج إلى استخدام Django Channels ويوجد مكتبة daphne لتسهيل إضافة ذلك للمشروع لديك. وهي ببساطة خادم ASGI (Asynchronous Server Gateway Interface) تم تطويره بواسطة فريق Django، و ASGI تلك واجهة برمجة تطبيقات API جديدة لـ Python نستخدمها لإنشاء تطبيقات ويب غير متزامنة Async. وتدعم WebSocket أيضًا لتوفير ميزات الاتصال في الوقت الفعلي Real-time. ابحث على اليوتيوب عن chat app using Django وستجد تفصيل عملي لكيفية تنفيذ الأمر.
  24. المشكلة في العنصر الذي يحمل الكلاس center-div text-center يستحوذ على مساحة أكبر من باقي العناصر ويظهر خارج الـ container. وذلك بسبب وضع margin جهة اليمين له، عليك حذفه ومعالجة الأمر عند مساحة الشاشة التي تظهر بها المشكلة وهي 1200px. من الأفضل تجنب وضع margin للعناصر لتنفيذ التصميم، واستخدام gap الخاصة بـ Flexbox والـ Padding لتنسيق التصميم.
×
×
  • أضف...