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

كل الأنشطة

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

  1. الساعة الماضية
  2. اليوم
  3. يوجد بدائل بالفعل، حيث أنّ prompt هي حزمة شائعة في Node.js لطلب مدخلات المستخدم من واجهة سطر الأوامر (CLI). والحزم البديلة هي: Inquirer commander وكمثال سنقوم بتثبيت inquirer: npm i inquirer@^8.0.0 وطريقة الاستخدام import inquirer from 'inquirer'; inquirer .prompt([ { type: 'input', name: 'userName', message: "what's your name?", }, ]) .then(answers => { console.log(`Hey ${answers.userName}`); }) .catch(error => { if (error.isTtyError) { // Prompt couldn't be rendered in the current environment } else { // Something else went wrong } }); وتستطيع حتى طرح أسئلة والحصول على الإجابات من خلال خيارات من متعدد كالتالي، لكن عليك تغيير نوع السؤال type إلى checkbox:
  4. أخي الكريم، بكونك قد أسست أرضية مناسبة للبدء في لارافل، في البداية يجب أن تعرف أن لارافل تعتبر من أٌطر عمل الBackend والتي يلزمها بشكل أساسي: إتقان مهارة التخطيط للمشروع وتحديد متطلباته وتصميم قواعد بياناته بشكل صحيح. والآن سأدرج لك بعض الخطوات التي يمكنك اتباعها من خلال مصادر التعلم التي تفضلها سواء كانت مواقع الإنترنت أو الكتب أو الدورات التعليمية والتي ستوصلك لهدفك : ستحتاج أولاً إلى أساسيات HTML, CSS, JS تعلم كيفية تنزيل مشروع لارافل بأحدث إصدار أو بإصدار معين (ففي بعض الأحيان يلزمك تنزيل واستخدام نسخة معينة) التعرف لبنية المشروع وهيكلية الملفات وتنظيمها التعرف على مدير الحزم الـComposer والذي يساعدك على إدارة الحزم (packages) التي تقوم بالتعامل معها في مشروع لارافل. الانتقال لمفاهيم لارافل وهي : فهم معمارية MVC (Model-View-Controller): إن إطار عمل لارافل مبني بمعمارية MVC والتي تستخدم لتنظيم الكود. وإليك شرح مبسط عنها: النموذج (Model): والذي يتفاعل مباشرة مع قاعدة البيانات الخاصة بك ويضيف أو يعدل عليها أو يسترد المعلومات منها. العرض (View): والذي يعني واجهة التطبيق فهو يعرض الصفحات التي يتفاعل معها المستخدم مباشرةً. المتحكم (Controller): وهو صلة الوصل بين العرض (View) والنموذج (Model) فهو يستقبل طلبات المستخدمين (Requests) ويعالجها ويقوم ببعض العمليات عن طريق النموذج ومن ثم يرسل بعض المعلومات إلى صفحات العرض. فهم Eloquent ORM: وهو نظام لارافيل للتعامل مع قواعد البيانات والذي يسهِّل عملية إنشاء الاستعلامات والتعامل مع قواعد البيانات عن طريق الModels. وأنصحك بالمقال التالي من أكاديمية حسوب: المبادئ الأساسيّة لإطار العمل Eloquent ORM الانتقال لفهم العلاقات وهي (One to One, One to Many, Many to Many) وكيفية تمثيلها في لارافل. فهم تهجير البيانات (Migrations) في لارافل: والتي تقابل كل منها جدولاً في قاعدة البيانات وتعرف حقوله وتحدد القيود (Constraints) على كل حقل. فهم الـتوجيه (Routing): التعرف لطرق التوجيه في لارافيل وكيفية ربطها بالControllers. التعرف لبعض الأوامر الأساسية في لارافل مثل (إنشاء Controller وإنشاء Model وإنشاء Migration وإنشاء Middleware وتشغيل مشروع لارافل) التعرف على محرك القوالب في لارافل (Blade Templating Engine): والذي يسمح لك بكتابة أكواد HTML ضمن ملفات PHP ويوفر لك العديد من المزايا التي تسهل عملية كتابة الكود. فهم البرمجيات الوسيطة (Middlewares): لإضافة طبقات من المنطق قبل أو بعد تنفيذ الطلبات في التطبيق. التعرف إلى نظم المصادقة (Authentication) في لارافيل الواجهات البرمجية APIs وكيفية بناءها في لارافل وفي الختام، يجب أن أشير لك لأحد مصادر تعلم لارافيل Laravel الغنية عن التعريف بشهادة معتمدة تعزز فرصتك في سوق العمل حيث ستجد في أكاديمية حسوب دورة تطوير تطبيقات الويب باستخدام لغة PHP، وأنصحك بقراءة هذا المقال المقدم من أكاديمية حسوب ما هو إطار عمل لارافيل Laravel وأهميته في سوق العمل، وما هي أهم المميزات التي يقدمها في مجال تطوير مواقع وتطبيقات الويب، والتعرف إلى كيفية تنصيب لارافيل وبدء التعامل معه وأهم مصادر تعلمه. وأتمنى لك كل التوفيق في رحلتك.
  5. تعتمد الطريقة على كيفية ارتباط الجداول ببعضها البعض، فعند ربط الجداول بعلاقة "واحد إلى واحد" عليك استخدام مفتاح رئيسي مشترك لربط الجداول، أي على إفتراض الجداول كالتالي: customers (مع أعمدة customer_id و name) orders (مع أعمدة order_id و customer_id و order_date) order_items (مع أعمدة order_item_id و order_id و product_id و quantity) فنربط كالتالي: SELECT c.name, o.order_date, oi.product_id, oi.quantity FROM customers c JOIN orders o ON c.customer_id = o.customer_id JOIN order_items oi ON o.order_id = oi.order_id; أما في حال ربط الجداول بعلاقة "واحد إلى عدة"، فنستخدم مفتاح رئيسي من جدول واحد كمفتاح أجنبي في جدول آخر، على إفتراض الجداول كالتالي: employees (مع أعمدة employee_id و name) departments (مع أعمدة department_id و name) employees_departments (مع أعمدة employee_id و department_id) نربط بينها: SELECT e.name, d.name FROM employees e JOIN employees_departments ed ON e.employee_id = ed.employee_id JOIN departments d ON ed.department_id = d.department_id; الحالة الأخيرة ربط الجداول بعلاقة "عدة إلى عدة"، فيلزم وجود جدول وصل بين الجداول، مثلا الجداول كالتالي: students (مع أعمدة student_id و name) courses (مع أعمدة course_id و name) student_courses (مع أعمدة student_id و course_id) فنربط بالشكل: SELECT s.name, c.name FROM students s JOIN student_courses sc ON s.student_id = sc.student_id JOIN courses c ON sc.course_id = c.course_id; الربط بين الجداول
  6. بالطبع يمكن إجراء استعلام لربط (join) ثلاثة جداول في قاعدة بيانات SQLite باستخدام لغة SQL. الفكرة الأساسية هي استخدام عملية الربط بين الجداول لدمج البيانات من جداول متعددة بناءً على علاقة مشتركة بينها، مثل مفتاح أساسي ومفتاح خارجي. مثال توضيحي ازاي ممكن تربط تلاتة جداول: خلينا نفرض عندنا تلاتة جداول: 1- students (الطلاب) بأعمدة id, name 2- courses (الدورات) بأعمدة id, course_name 3- enrollments (التسجيلات) بأعمدة student_id, course_id, grade وعايزين نجيب قائمة باسماء الطلاب واسماء الدورات اللي سجلوا فيها ودرجاتهم. الاستعلام هايكون كده: SELECT students.name, courses.course_name, enrollments.grade FROM enrollments JOIN students ON enrollments.student_id = students.id JOIN courses ON enrollments.course_id = courses.id; في الاستعلام ده: - بدأنا بجدول enrollments اللي بيربط بين الطلاب والدورات - عملنا JOIN بين جدول students وجدول enrollments بشرط ان student_id في enrollments يتطابق مع id في students - عملنا JOIN تاني بين جدول courses وجدول enrollments بشرط ان course_id في enrollments يتطابق مع id في courses - اخترنا الأعمدة name من جدول students، و course_name من جدول courses، و grade من جدول enrollments علشان تتعرض في النتايج الطريقة دي بتخلينا ندمج البيانات من التلاتة جداول على أساس العلاقات المحددة بالمفاتيح. يمكنك الاطلاع علي المزيد عن الربط بين الجداول من هنا
  7. السلام عليكم ، هل هناك استعلام يقوم بالربك بين ثلاثة جداول في لغة sql و قواعد البيانات sqlite3
  8. أرجو التعليق أسفل فيديو الدرس ستجد صندوق تعليقات أسفل الدرس كما هنا وذلك لمساعدتك بشكل أفضل.
  9. طبقت كل الخطوات ولم استطيع التنقل بين اللسلايدات وتظهر الصور وهى بجانب بعضها هل يمكنك مساعدتي gallery.html slide.css slider.js
  10. منذ فترة طويلة وانا احاول الحصول على API key لـ ChatGPT ويمنعني إلى بعد إضافة طريقة دفع، اضفت البطاقة من الراجحي ويرفضها حيث يحدث خطأ غير معروف، لكن عندما تقوم بتحديث الصفحة تجد ان البطاقة مضافة، بعد ذلك حاولت القيام بإضافة رصيد يخبرني بأن البطاقة غير مدعومه ، جربت (بطاقة البنك العادية من الراجحي، بطاقة بVISA من الراجحي، بطاقة تسوق من الراجحي، بطاقة سفر من الراجحي) جميعها لا تعمل قررت اجرب بنك اخر (بطاقة بنك STC، بطاقة UrPay) ونفس المشكلة هل لدى احد حل لهذه المشكلة لمن في السعودية؟
  11. لا اعلم لماذا تبحث عن بدائل بدلا من استخدام الكود الاساسي حيث انك بهذه الطريقة ستصعب الامور عليك اكثر ومبدئيا لا يوجد بديل مباشر للدالة prompt ولكن دائما ما يمكننا الحصول على ما نريد بالبرمجة بطرق ملتوية غير مباشرة لذلك يمكنك اخبارنا بما تريد فعله بالضبط لنتمكن من مساعدتك بشكل افضل وبالتوفيق ...
  12. يمكنك استخدام الكلمة import لاستيراد الاكواد من ملفات اخرى والكلمة export لتصدير الأكواد من ملفك الحالي ولكن قبل استخدامها يجب عليك التأكد بان النظام لديك يدعم ES6 Modules والان دعنا نأخذ ذات المثال مكتوب بكلا الطريقتين لتفهم اكثر كيف تسير الامور require : لدينا هذا الكود في ملف math.js وقمنا بعمل export للدالة add التي تقوم بعملية الجمع function add(a, b) { return a + b; } // Export the function module.exports = add; الان لعمل استيراد باستخدام ال require نستخدم الكود التالي : const add = require('./math.js'); console.log(add(2, 3)); سيعطينا النتيجة 5 والان لنشاهد كيف تسير الامور بالطريقة الاخرى import : نقوم بعمل export للدالة ب ملف ال math.js كالتالي export function add(a, b) { return a + b; } ثم يمكننا القيام باستدعائها بهذه الطريقة import { add } from './math.js'; console.log(add(2, 3)); وسيعطينا ذات النتيجة 5 كما انه يمكنك قراءة هذه المقالات للتعرف اكثر عن كلا الطريقتين بالتوفيق لك
  13. أرجو التعليق أسفل فيديو الدرس الذي به مشكلة لتفقده ومساعدتك للوصول لحل. ستجد صندوق تعليقات كما هنا أسفل الدرس.
  14. السلام علكيم ، ماهو بديل require في جافاسكربت بالنسبة للمتصفحات
  15. هل تقصد فتح البرنامج بكامل الشاشة ( وكأنك ضغطت على أيقونة التكبير ) عندما يفتح البرنامج في البداية ( أي الوضع الافتراضي يكون تكبير للشاشة ) ؟ إذا كان هذا قصدك , فيمكنك فعل ذلك كالتالي ( باستخدام windowManager.screenSize.width و windowManager.screenSize.height ) : import 'package:flutter/material.dart'; import 'package:window_manager/window_manager.dart'; void main() { runApp(MyApp()); makeWindowFullScreen(); } void makeWindowFullScreen() async { WidgetsFlutterBinding.ensureInitialized(); await windowManager.ensureInitialized(); await windowManager.setTitleBarStyle('hidden'); await windowManager.setFullScreen(false); await windowManager.setWindowSize(windowManager.screenSize.width, windowManager.screenSize.height); await windowManager.center(); await windowManager.show(); await windowManager.setSkipTaskbar(false); } class MyApp extends StatelessWidget { @override Widget build(BuildContext context) { return MaterialApp( home: Scaffold( appBar: AppBar( title: Text('Flutter Desktop App'), ), body: Center( child: Text( 'مرحبا بك في تطبيق فلاتر ديسكتوب', style: TextStyle(fontSize: 24), ), ), ), ); } }
  16. انا كل الذي دكرته تعلمته انا مشكلتي في mvc ما قصدك با كيفية تصميم النماذج models لقواعد البيانات. ثم تعلم كيف تقوم بتنفيذ Routing باستخدام PHP.
  17. ما هو الخطأ الذى يظهر لكى عند الربط ؟ هل يتم ارسال البيانات الى السيرفر ام لا ؟ اعتقد ان الخطأ لديكى فى عنصر form حيث لم تقومى بكتابة الخاصية action و method الخاصة بال form حتى يتم ارسال البيانات الى العنوان الصحيح فى السيرفر . <form class="mx-1 mx-md-4" method="post" action="/register.php"> حيث انه من المفترض حين انشاء مستخدم ان تكون طريقة الإرسال هى post و حين لا يتم كتابة ال method فانها تاخذ القيمة الافتراضية get. وخاصية ال action هى العنوان على السيرفر الذى سيتم توجيه الطلب له . لذلك تاكدى اولا من كتابة هاتين الخاصيتين بشكل صحيح واذا حدث اى خطأ من فضلى ارسلى لى صورة الخطأ.
  18. لا اريد تعيين حجم ثابت اريد الواجهة تكون بحجم شاشة الحاسوب (ليس fullscreen الذي يطبقه الكود await windowManager.setFullScreen(true)) شوف الصورة تفهم قصدي عندما اضغط هاذ الايقونة تكبر النافذة انا لا اريد الضغط اريدها كبيرة عندما افتح البرنامج برمجيا
  19. السلام عليكم حاولت وبحثت كثيراً لكن لا فائدة, المشكلة ان قاعدة البيانات لا ترتبط مع الموقع: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-QWTKZyjpPEjISv5WaRU9OFeRpok6YctnYmDr5pNlyT2bRjXh0JMhjY6hW+ALEwIH" crossorigin="anonymous"> </head> <body> <center><h1>Welcome In My Site!</h1></center> <section class="vh-100" style="background-color: #eee;"> <div class="container h-100"> <div class="row d-flex justify-content-center align-items-center h-100"> <div class="col-lg-12 col-xl-11"> <div class="card text-black" style="border-radius: 25px;"> <div class="card-body p-md-5"> <div class="row justify-content-center"> <div class="col-md-10 col-lg-6 col-xl-5 order-2 order-lg-1"> <p class="text-center h1 fw-bold mb-5 mx-1 mx-md-4 mt-4">Sign up</p> <form class="mx-1 mx-md-4"> <div class="d-flex flex-row align-items-center mb-4"> <i class="fas fa-user fa-lg me-3 fa-fw"></i> <div data-mdb-input-init class="form-outline flex-fill mb-0"> <input type="text" id="form3Example1c" class="form-control" /> <label class="form-label" for="form3Example1c">Your Name</label> </div> </div> <div class="d-flex flex-row align-items-center mb-4"> <i class="fas fa-envelope fa-lg me-3 fa-fw"></i> <div data-mdb-input-init class="form-outline flex-fill mb-0"> <input type="email" id="form3Example3c" class="form-control" /> <label class="form-label" for="form3Example3c">Your Email</label> </div> </div> <div class="d-flex flex-row align-items-center mb-4"> <i class="fas fa-lock fa-lg me-3 fa-fw"></i> <div data-mdb-input-init class="form-outline flex-fill mb-0"> <input type="password" id="form3Example4c" class="form-control" /> <label class="form-label" for="form3Example4c">Password</label> </div> </div> <div class="d-flex justify-content-center mx-4 mb-3 mb-lg-4"> <button type="button" data-mdb-button-init data-mdb-ripple-init class="btn btn-primary btn-lg">Register</button> </div> </form> </div> <div class="col-md-10 col-lg-6 col-xl-7 d-flex align-items-center order-1 order-lg-2"> <img src="https://mdbcdn.b-cdn.net/img/Photos/new-templates/bootstrap-registration/draw1.webp" class="img-fluid" alt="Sample image"> </div> </div> </div> </div> </div> </div> </div> </section> <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/js/bootstrap.bundle.min.js" integrity="sha384-YvpcrYf0tY3lHB60NNkmXc5s9fDVZLESaAA55NDzOxhy9GkcIdslK1eN7N6jIeHz" crossorigin="anonymous"></script> </body> </html> حسناً هذه هي صفحة الواجهة الامامية التي اريد ربطها.
  20. مرحباً Amir, للقيام بتكبير التطبيق عند فتحه، يمكنك استخدام المكتبة نفسها التي ذكرها المدرب مصطفى window_manager ولكن بشكل مختلف. يمكنك استخدام دالة setWindowSize لتحديد حجم النافذة عند الافتتاح. سأقوم بالكود التالي توضيح كيف يمكننا فعل ذلك: import 'package:flutter/material.dart'; import 'package:window_manager/window_manager.dart'; void main() { runApp(MyApp()); makeWindowLarge(); } void makeWindowLarge() async { WidgetsFlutterBinding.ensureInitialized(); await windowManager.ensureInitialized(); await windowManager.setTitleBarStyle('hidden'); await windowManager.setFullScreen(false); await windowManager.setWindowSize(800, 600); // يمكنك تعديل الأبعاد كما تشاء await windowManager.center(); await windowManager.show(); await windowManager.setSkipTaskbar(false); } class MyApp extends StatelessWidget { @override Widget build(BuildContext context) { return MaterialApp( home: Scaffold( appBar: AppBar( title: Text('Flutter Desktop App'), ), body: Center( child: Text( 'مرحبا بك في تطبيق فلاتر ديسكتوب', style: TextStyle(fontSize: 24), ), ), ), ); } } لاحظ أنني أقوم بفتح التطبيق بحجم محدد بدلاً من الشاشة الكاملة. قمت بتحديد حجم النافذة باستخدام setWindowSize وقمت بتعيين العرض والارتفاع وفقاً لاحتياجاتك. يمكنك تعديل الأبعاد وفقاً للحجم الذي تريده.
  21. هاذا يجعلها fullscreen وانا اريد تكبيرها شوف الصورة المرفقة تفهم
  22. pandas دي مكتبة في لغة البايثون بتستخدم بشكل أساسي لتحليل البيانات ومعالجتها. بتوفرلك بُنى بيانات قوية ومرنة زي DataFrame و Series، اللي بتخليك تتعامل مع البيانات بفعالية. - بتستخدم pandas تقرأ البيانات من مصادر مختلفة زي ملفات CSV و Excel، وتعالج البيانات دي بطرق كتيرة زي التصفية، التجميع، والتحويلات المختلفة. PandasAI دي مكتبة توسعة لمكتبة pandas الأصلية، بتضيف دعم لعمليات تعلم الآلة على بُنى بيانات pandas . يعني بتخليك تنفذ نماذج تعلم آلي مباشرة على بيانات DataFrame. - PandasAI بتقدملك أدوات تقدر تبني وتدرب بيها نماذج تعلم آلي بشكل مباشر وسهل، دا بيخلي المستخدمين يدمجوا تحليل البيانات وتعلم الآلة بكفاءة أعلى في بيئة pandas . مثال توضيحي: - خليك فاكر انك عندك جدول بيانات فيه درجات الطلاب في مادة معينة ووعايز تحسب المتوسط. باستخدام pandas ، ممكن بسهولة تحسب المتوسط دا. بس لو عايز تستخدم البيانات دي تتوقع درجات الطلاب في مادة تانية بنموذج تعلم آلي، هنا PandasAI هتديك الأدوات تعمل دا بطريقة متكاملة جوا بيئة pandas . بالشكل دا، ممكن تستخدم pandas لكل احتياجات معالجة البيانات الأساسية، ولما تحتاج تضيف تعلم آلي لتحليلك، PandasAI هتسهلك العملية دي من غير ما تحتاج تتحول لأدوات او مكتبات تانية.
  23. السلام عليكم اي الفرق بين مكتبه pandasai و مكتبه pandas ؟
  24. استخدم حزمة window_manager، قم بالتثبيت كالتالي flutter pub add window_manager ثم استيراد الحزمة: import 'package:window_manager/window_manager.dart'; ثم في الكود الرئيسي main للتطببيق ضع التالي بعد RunApp لفتح التطبيق في وضع full screen: WidgetsFlutterBinding.ensureInitialized(); // Must add this line. await windowManager.ensureInitialized(); // Use it only after calling `hiddenWindowAtLaunch` windowManager.waitUntilReadyToShow().then((_) async { // Hide window title bar await windowManager.setTitleBarStyle('hidden'); await windowManager.setFullScreen(true); await windowManager.center(); await windowManager.show(); await windowManager.setSkipTaskbar(false); }); وللخروج من وضع full screen نقوم بوضع false: await WindowManager.instance.setFullScreen(false);
  1. عرض المزيد
×
×
  • أضف...