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

Hikmat Jaafer

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

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

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

كل منشورات العضو Hikmat Jaafer

  1. وعليكم السلام, بالنسبة لمنصات شوبيفاي وسلة , فهذه المنصات تعتمد بشكل كامل على برمجة واجهات أمامية بلغاتها الخاص . حيث يكون backend جاهز من المنصة , وأنت كمبرمج واجهات امامية تقومبتصميم القوالب وعرضها للبيع , وهذا يتطلب الترويج عبر منصات التواصل الاجتماعي ومنصات مستقل وخمسات و متجر بيكاليكا . بالنسبة لشوبيفاي : فهو يعتمد بشكل اساسي على HTML, CSS, JS, Liquid لتطوير قوالب خاصة بشوبيفاي . لكن يمكنك عرض متجرك الالكتروني من خلال بناء حساب في منصات العمل الحرة , وبناء معرض اعمال جذاب وعرضه على المشترين في منصة خمسات ومتجر بيكاليكا , أو من خلال تقديم عروضك في منصة مستقل. كما يمكنك التواصل بعد حضور الدورة مع فريق الدعم لكي يساعدك بشكل كامل على بناء السيرة الذاتية الخاصة بك , إضافة إلى بناء حسابك في منصات التابعة لشركة حسوب . هذه بعض الاسئلة المتعلقة بسؤالك , ما هي المتطلبات في منصات العمل , والاختصاصات المطلوبة , و كيف تبدأ العمل بها . يمكنك الإطلاع عليها والاستفادة منها أيضاً.
  2. لاحظ أحمد أنك تقوم بطلب server من خلال العنوان التالي ip: 192.168.8.104 وهو يعمل من خلال localhost . جرب طلب server من خلال http://localhost:<port> في مثالك تصبح كالتالي : http://localhost:5100 جربه وأخبرني في حال هناك اي مشكلة
  3. مرحباً محمد , قمت بتحميل مشروعك ... هناك خطأ باسم التابع onsubmit ... انت قمت بتعريف تابع اسمه onSubmit , وتستخدم onsubmit , قم بتعديله ليصبح بالشكل التالي : <Formik initialValues={{ name: null, email: null, password: null, confPassword: null, }} validationSchema={validationSchema} onSubmit={(values, { resetForm }) => { console.log(values); onSubmit(values); // السطر الذي تم تعديله resetForm({ values: "" }); }} > قم بتصحيح الخطأ وأعلمني في حال كان هناك مشكلة اخرى
  4. مرحباً أحمد , قمت بتحميل مشروعك وتنفيذه , ظهر عندي بعض الملاحظات ومن ثم يعمل بنجاح . يجب عليك الانتباه الى port الخاص بserver ... أنت حالياً تستخدم port = 5432 , هذا الport خاص لpostgres , لذلك عليك استخدام اي port اخر , جرب port = 5012 بعدها قمت بتنفيذ مشروعك , وقمت بإنشاء حساب جديد , ومن ثم قمت بتسجيل الدخول ولم يظهر لي أي خطأ اخر , كما في الصورة .
  5. هذا يعود الى طبيعة تخصصك في مجال البرمجة كما قالوا المدربين في التعليقات السابقة , سوف تحتاج الى فهم عميق في css عندما تعمل كمطور frontend , أو مطور قوالب shopfiy او wordpress , هذه بعض المفاهيم الاساسية التي يجب عليك تعلمها في هذا التخصص كمبتدأ : تحديد العناصر: يجب أن تتعلم كيفية تحديد العناصر التي ترغب في تنسيقها في صفحة الويب باستخدام المحددات المختلفة. يمكنك استخدام المحددات العنصرية (Element Selectors) والمحددات (Class Selectors) والمحددات (ID Selectors) وغيرها. تنسيق النص: يجب أن تتعلم كيفية تنسيق النص في صفحات الويب باستخدام خصائص CSS مثل اللون والحجم والخط والتباعد بين الأحرف والمزيد. التنسيقات البسيطة: يجب أن تتعلم كيفية تحقيق التنسيقات البسيطة للعناصر، مثل تحديد ألوان الخلفية وحدود العناصر والهوامش والتباعد بين العناصر. نماذج الصناديق: يجب أن تتعلم كيفية تنسيق نماذج الصناديق مثل الصناديق المستطيلة وأزرار التحكم والقوائم المنسدلة ومربعات الاختيار ومربعات الاختيار والمزيد. التنسيقات المتعددة: أحد أهم المفاهيم المهمة جداً , يجب أن تتعلم كيفية تنسيق العناصر بطرق مختلفة، مثل تنسيق العناصر في صفوف وأعمدة باستخدام Flexbox أو CSS Grid. التحكم في العناصر: يجب أن تتعلم كيفية التحكم في موضع وحجم العناصر وتحقيق التحولات والانتقاء المتقدم لتنسيق العناصر بشكل دقيق. الوحدات والقيم: يجب أن تتعلم عن الوحدات المختلفة في CSS مثل البكسل والنسبة المئوية والـ REM وكيفية استخدامها لتحديد الأبعاد والحجم والمسافات والتنسيقات الأخرى. الرسومات والتحولات: يجب أن تتعلم كيفية تحقيق تأثيرات بصرية وحركة للعناصر باستخدام التحولات والرسومات في CSS. التصميم المتجاوب مع أحجام شاشات مختلفة: يجب أن تتعلم كيفية تحقيق تصميم متجاوب مع احجام شاشات مختلفة مثل شاشة حاسوب , وشاشة الأيباد , وشاشات الجوالات بأحجامها المختلفة , وذلك باستخدام (Media Queries) في CSS. ببدأ بتعلم هذه الاساسيات الى جانب javascript و html , سوف تتمكن من إنشاء إنشاء تصاميم جذابة والبدء في مسارك المهني . ايضاً لا تنسى أنه التعلم مستمر , لن تتقن كل شيء في أول مشروع لك , سوف تحتاج الى مشاريع مختلفة لتتقن استخدامك لCSS.
  6. يمكنك ذلك من خلال اتباع الخطوات التالية: أولاً تأكد من تثبيت Laravel 10 وإعداد بيئة العمل الخاصة بك. ثانياً قم بتنزيل مشروع Webpack و Sass الجاهز الي تريده , ومن ثم فك الضغط عنه. انتقل إلى مجلد مشروع Laravel باستخدام سطر الأوامر. قم بتثبيت المكتبات اللازمة باستخدام أداة إدارة حزم Composer. يمكنك تنفيذ الأمر التالي في سطر الأوامر: composer install قم بنسخ ملفات المشروع (ملفات الـ Webpack و Sass) في مجلد المشروع الخاص بـ Laravel. قم بتحديث ملف webpack.mix.js الخاص بـ Laravel لتضمين ملفات المشروع الجديدة. يمكنك تعديل الملف كما يلي: const mix = require('laravel-mix'); mix.js('resources/js/app.js', 'public/js') .sass('resources/sass/app.scss', 'public/css') .js('mypath/webpack/files', 'public/js') .sass('mypath/sass/files', 'public/css'); تأكد من استبدال عناوين js ,css ( mypath) بمسارات الملفات الفعلية في مشروعك. قم بتشغيل أمر البناء الخاص بـ Webpack لتجميع وتجهيز الملفات. في سطر الأوامر، قم بتنفيذ الأمر التالي: npm run dev أو إذا كنت ترغب في انشاء نسخة production ، يمكنك استخدام الأمر التالي: npm run prod تأكد من أن ملفات الناتج (الجافاسكريبت والـ CSS) تم إنشاؤها بنجاح في مجلد `public/js` و `public/css` في مشروع Laravel. قم بتضمين ملفات الناتج في قوالب Laravel الخاصة بك. يمكنك استخدام وسوم `<script>` و `<link>` في قوالب العرض الخاصة بك للإشارة إلى ملفات الجافاسكريبت والـ CSS على التوالي. أخيراً يمكنك الأن تشغيل خادم Laravel وفتح موقعك في المتصفح للتحقق مما إذا كانت المشروع المدمجة تعمل بشكل صحيح.
  7. تخصصك في شبكات الكمبيوتر يتركز على الجانب الفني والتقني للشبكات، فقد يكون أكثر تركيزك على مفاهيم الشبكات والبروتوكولات وأجهزة التوجيه والتبديل وأمان الشبكات. ومع ذلك، فإن فهم أنظمة التشغيل يمكن أن يساعدك على فهم كيفية تكامل الشبكات مع أنظمة التشغيل والخوادم.و من الجيد كمهندس أن تكون ملم بنظم التشغيل, بالإضافة إلى ذلك، قد تواجه بعض الحالات حيث يتعين عليك التفاعل أو التعامل مع بيئة العمل الخاصة بك ,و نظام linux شائع الاستخدام في الخوادم و البنية التحتية للشبكات ويوفر قدرة تخصيص ومرونة و اذا بدأت بدراسة الريد هات قد يساعدك ذلك في فهم اختصاصك أكثر والنجاح فيه.
  8. مرحباً, هل يمكنك تزويدنا برابط السؤال على leecode , أو أن تقوم بمشاركة الكود ؟
  9. هذا مثال بسيط في Node.js يوضح كيفية استخدام واجهة برمجة التطبيقات (API) لتنفيذ عملية شحن بطاقة باستخدام بوابة الدفع فيزا: const express = require('express'); const axios = require('axios'); const app = express(); app.use(express.json()); app.post('/charge', async (req, res) => { try { const { cardNumber, amount } = req.body; // قم بإرسال طلب الدفع إلى بوابة الدفع (Visa) const paymentResponse = await axios.post('https://visa-payment-gateway.com/charge', { cardNumber, amount }); // تحقق من استجابة الدفع if (paymentResponse.data.success) { // إذا كانت العملية ناجحة، قم بتنفيذ الإجراءات اللازمة هنا // مثل تحديث قاعدة البيانات أو إصدار بطاقة جديدة وما إلى ذلك res.status(200).json({ message: 'تمت عملية الشحن بنجاح' }); } else { // إذا كانت هناك مشكلة في عملية الدفع، قم بإرجاع رسالة الخطأ res.status(400).json({ error: 'فشلت عملية الشحن' }); } } catch (error) { // إذا حدث خطأ أثناء الاتصال ببوابة الدفع res.status(500).json({ error: 'حدث خطأ في الخادم' }); } }); app.listen(3000, () => { console.log('الخادم يعمل على المنفذ 3000'); }); في هذا المثال: - نستخدم إطار العمل Express.js لإنشاء خادم. - نستخدم مكتبة axios لإرسال طلبات HTTP. - يتم تحديد نقطة النهاية /charge التي تستقبل طلبات POST لعملية الشحن. - نتوقع بيانات البطاقة والمبلغ من جسم الطلب (`req.body`). - نستخدم مكتبة axios لإرسال طلب POST إلى بوابة الدفع (`https://visa-payment-gateway.com/charge`) مع بيانات البطاقة والمبلغ. - نتحقق من استجابة الدفع ونقوم بتنفيذ الإجراءات المناسبة على أساس الاستجابة. - نُرسل ردًا مناسبًا إلى العميل مع رسائل النجاح أو الفشل. هذا مجرد مثال بسيط يوضح كيفية استخدام واجهة برمجة التطبيقات (API) في Node.js لتنفيذ عملية شحن بطاقة باستخدام بوابة الدفع فيزا.
  10. هذا مثال بسيط يوضح الفرق بين "Next build" و "Next export" باستخدام بعض الكود : - مثال على "Next build": فرضًا أن لديك تطبيق Next.js بسيط يحتوي على ملف pages/index.js يحتوي على الصفحة الرئيسية للتطبيق. قم بتحرير الملف index.js على النحو التالي: export default function Home() { return <h1>Hello, Next.js!</h1>; } بعد ذلك، قم بفتح محرر الأوامر (Command Line) واكتب الأمر التالي: next build سيقوم هذا الأمر ببناء التطبيق المحلي وتجميعه. ستظهر رسائل الإخراج في سطر الأوامر توضح عملية البناء والتجميع. بعد الانتهاء، ستكون لديك مجلد /.next يحتوي على الملفات المجمعة (مثل HTML وCSS وJavaScript) جاهزة للتشغيل على الخادم المحلي. - مثال على "Next export": في هذا المثال، سنستخدم نفس الملف pages/index.js المذكور أعلاه. قم بتحريره مرة أخرى إلى المحتوى التالي: export default function Home() { return <h1>Hello, Next.js!</h1>; } ثم، قم بتحرير ملف next.config.js في الجذر الخاص بمشروعك وأضف الكود التالي: module.exports = { exportPathMap: function () { return { '/': { page: '/' }, }; }, }; هذا التكوين يحدد العنوان (route) الذي سيتم تصديره، وفي هذه الحالة هو `/` (الصفحة الرئيسية). ثم، قم بفتح محرر الأوامر واكتب الأمر التالي: next build next export سيقوم الأمر الأول next build ببناء التطبيق المحلي وتجميعه، والأمر الثاني next export سيقوم بتصدير التطبيق بناءً على التكوين المحدد في next.config.js. ستظهر رسائل الإخراج في سطر الأوامر توضح عملية التصدير. بعد الانتهاء، ستكون لديك مجلد out يحتوي على الملفات الثابتة (مثل HTML وCSS وJavaScript) التي يمكن نشرها على أي خادم ويب يدعم الملفات الثابتة.
  11. وعليكم السلام , أهلاً أُبي في مستقل وخمسات هناك عدة أقسام , ويعد أنظمة التشغيل ولغة جافا سكريبت وقواعد البيانات من أكثر الأقسام المطلوبة , اسم القسم ( برمجة , تطوير المواقع والتطبيقات ) . لكن لكل منصة من مستقل وخمسات , وأيضاً متجر بيكاليكا له طريقة عمل خاص بها للحصول على صفقة رابحة . يمكنك التواصل مع أكاديمية حسوب لإرشادك إلى الطريقة الصحيحة ومساعدتك خطوة بخطوة لبناء السيرة الذاتية الخاصة بك وبناء حسابك في كل من المنصات السابقة. أيضاً إليك بعض التفاصيل والنصائح لكل منصة : مستقل: منصة مستقل تعتبر من أفضل المنصات العربية للعمل الحر في مجال البرمجة والحاسوب والشبكات . طريقة عملها تعتمد على صاحب مشروع يقوم بنشر مشروع , ومستقلين يقوموا بتقديم عروضهم لهذا المشروع . ثم يختار صاحب المشروع المستقل المناسب لمشروعه . يمكنك الربح من خلالها من خلال أخذ هذه النصائح بعين الإعتبار وإتباع الخطوات التالية : بناء معرض أعمال : حاول أن تقوم بناء معرض أعمال متنوع , من خلال معرض الأعمال يمكنك لفت نظر صاحب المشروع أنك تعامل من قبل على مشروع مشابه لمشروعه , أو أنه لديك القدرة على تنفيذ عدة أنواع من المشاريع وبالتالي لديك الخبرة الكافية لتنفيذ مشروعه. قم بكتابة نبذة تعريفية عنك توضح لصاحب المشروع خبراتك ومجال عملك , أيضاً يجب الإنتباه أنه ليس كل أصحاب المشاريع لديهم خبرة أو معرفة برمجية , لذلك حاول أن لا تكثر من المصطلحات البرمجية أو أسماء اللغات البرمجة , أو وهو الأفضل أن تقوم بكتابة لغات البرمجة والمصطلحات البرمجية بشكل منفصل في نهاية النبذة التعريفية صاحب المشروع يختار المستقل المناسب بناءً على عدة عوامل يجب عليك معرفتها لتتمكن من جذب وإقناع صاحب المشروع : الرسالة الخاصة بالعرض الذي قدمته , حاول أن تكون واصفة لخبراتك وقدرة تنفيذك للمشروع , وأن تكون واثق من نفسك وسعر العرض ليس قليل , أغلب أصحاب المشاريع لا يهتمون بمستقل يقوم بتقديم عرض بأقل حد ممكن . النبذة التعريفية الخاص بك معرض الاعمال. طريقة التعامل معه ومرونة التعديل التقييم : حافظ على تقييمك أن يكون أكثر من 4 نجوم . هذه تعتبر من أهم النقاط. خمسات: يعتمد على بائع يقوم بعرض خدماته مقابل مبلغ واضح , حاول تقديم عدة خدمات متنوعة تشمل جميع خبراتك , ووصفها بطريقة واضحة وتجذب المشتري . بيكاليكا: يعتمد على بيع مشروع كامل جاهز للتنفيذ , أيضاً يجب عليك وصف المشروع وتقديم صور وفيديوهات تجذب المشتري , يمكنك إنشاء عدة مشاريع وبيعها في متجر بيكاليكا , وايضاً وضعها في معرض أعمالك في مستقل. تحياتي
  12. مرحباً احمد, قمت بالإطلاع على مشروعك بالكامل , هناك خطأ في الاتصال بقاعدة البيانات . يوجد بعض الملاحظات والخطوات , ارجو إتباعها وإخباري ما إذا تم حل المشكلة أم لاء : في ملف database.js قمت بوضع host: process.env.DB_HOST, وفي ملف .env قمت بتعريف DB_HOST = localhost . عند الرفع يجب عليك تغييرها , لذلك هي تعمل على جهازك من غير مشاكل , بينما عند الرفع يعطيك خطأ في الاتصال . بعد تغييرها قم بإطلاق المشروع . إذا أظهر خطأ بخصوص ssl , قم بإستبدال المتغير db بالكود التالي في ملف database.js : const db = new Sequelize( process.env.DB_NAME, process.env.DB_USER, process.env.DB_PASS, { host:process.env.DB_HOST, dialect: 'postgres', logging: false, dialectOptions: { // الكود الذي يجب عليك تضمينه ssl: { require: true, rejectUnauthorized: false } } }) ربما يظهر لك خطأ بخصوص التحقق مع قاعدة البيانات , تأكد من كلمة السر , أو قم بتغييرها من خلال الخطوات التالية : قم بتسجيل الدخول إلى خادم قاعدة بيانات PostgreSQL باستخدام أداة مثل psql أو واجهة رسومية. اتصل بقاعدة البيانات باستخدام مستخدم "المستخدم_الخاص_بك" : psql -U postgres بمجرد الاتصال، يمكنك إعادة تعيين كلمة المرور لمستخدم "المستخدم_الخاص_بك" باستخدام الأمر التالي: ALTER USER اسم_المستخدم_الخاص_بك WITH PASSWORD 'new_password'; بعد إعادة تعيين كلمة المرور، قم بتحديث تكوين Sequelize أو متغيرات البيئة ( .env file ) باستخدام كلمة المرور الجديدة.
  13. الخطأ الذي واجهته في الكود الذي قدمته يتعلق بمكتبة whois. تشير رسالة الخطأ إلى أن بمكتبة whois غير مثبتة في بيئة Python الخاصة بك. قم بتثبيت المكتبة من خلال التعليمة التالية : pip install python-whois سيقوم هذا الأمر بتنزيل وتثبيت حزمة python-whois، التي توفر مكتبة whois. بعد تثبيت حزمة python-whois، يجب أن تكون قادرًا على تشغيل التعليمات البرمجية دون مواجهة ModuleNotFoundError المتعلق بمكتبة whois.
  14. كما أرشدك المدرب عمر , ويوجد أيضاً طريقة أخرى لرفع التعديلات وإعادة ربط المشروع مع GitHub , عن طريق إعادة إنشاء مستودع Git جديد: قم بفتح موجه الأوامر (Command Prompt) أو الطرفية (Terminal) في مجلد المشروع. قم بتنفيذ الأمر التالي لإعادة إنشاء مجلد .git الخاص بالمشروع: git init قم بإضافة الملفات التي ترغب في تتبعها باستخدام الأمر التالي: git add قم بتأكيد التعديلات الجديدة باستخدام الأمر ووضع رسالة تعبر عن ذلك من خلال الامر التالي : git commit -m "Commit message قم بتعيين رابط المستودع الحالي كـ remote repository باستخدام الأمر التالي: git remote add origin <رابط المستودع الحالي> قم برفع التعديلات الجديدة إلى المستودع المرفوع على الGitHub باستخدام الأمر التالي: git push -u origin master (أو اسم الفرع الذي تستخدمه) أو يمكنك استخدام Force-Push في حال واجهتك مشكلة في الرفع git push -f origin master (أو اسم الفرع الذي تستخدمه) لاحظ استخدام f- من Force-Push . من الأفضل دائمًا حفظ نسخة احتياطية من مجلد .git قبل حذفه لتجنب فقدان تاريخ المشروع وسجل التعديلات.
  15. تماماً , هذه المتاجر متخصصة للألعاب الكمبيوتر والاجهزة المنزلية . بالنسبة للالعاب الجوال , يوجد منصة اسمها Xsolla توفر ذلك . هذا رابط شرح طريقة استعمال الapi من game key في المنصة : Set Up selling game keys
  16. كدورة خاصة في الgit والgithub لايوجد , ولكن يوجد داخل الدورة دورة تطوير واجهات المستخدم كيف تتعامل مع خدمة استضافة المشاريع GitHub. هذا شرح مختصر عن git و github : Git هو نظام تحكم بالمصدر يسمح للمطورين بتتبع تعديلات الملفات وإدارة إصداراتها. يعمل Git على تسجيل تغييرات الملفات بشكل فعال وتاريخي، ويتيح إمكانية التحكم في التعديلات والتبديل بين الإصدارات المختلفة بسهولة. يسمح Git أيضًا بإنشاء فروع مستقلة للتطوير المتوازي ودمجها فيما بعد، مما يسهل العمل الجماعي بين فريق المطورين. GitHub هو خدمة استضافة على الويب تستخدم لتخزين مشاريع Git وإدارتها. يعتبر GitHub منصة تعاونية تسمح للمطورين بمشاركة مشاريعهم والتعاون بشكل أفضل. يمكن للمطورين رفع (Push) مشاريعهم المحلية إلى مستودعات (Repositories) على GitHub والعمل على مشاريعهم بشكل مشترك. توفر GitHub أيضًا ميزات مثل إدارة المشروعات وتتبع المشاكل والطلبات للدمج (Pull Requests)، مما يجعلها مفيدة للعمل الجماعي وإدارة المشاريع بشكل فعال. باستخدام Git و GitHub معًا، يمكن للمطورين نسخ مستودع (Repository) من GitHub إلى جهازهم المحلي، ثم تعديل الكود وإجراء التغييرات المطلوبة، وبعد ذلك يمكن رفع (Push) هذه التغييرات إلى المستودع المرفوع على GitHub. يتيح هذا العملية سهولة التعاون والتحكم في النسخ والإصدارات للمشروعات التي يعمل عليها فريق أو مجتمع من المطورين. وهناك عدة أقسام أو مفاهيم اساسية ,هذا شرح مختصر , بإمكانك التعمق أكثر في كل مفهوم من خلال سؤالنا أو قراءة الdocumintaion الخاصة في git وgithub : Commit: يُشير إلى تسجيل تغييرات معينة في مستودع Git. يتم إنشاء commit لتوثيق حالة المشروع في نقطة زمنية معينة. Repository (مستودع): يُعتبر مساحة تخزين للمشروع في Git. يحتوي على جميع الملفات والمجلدات والتاريخ والتعديلات المسجلة. Branch (فرع): يُعتبر نسخة مستقلة من المستودع تستخدم للتطوير المتوازي. يمكن إنشاء فروع للعمل على ميزات جديدة أو إصلاح الأخطاء دون التأثير على الفرع الرئيسي (master branch). Merge (دمج): يُستخدم لدمج تغييرات من فرع إلى فرع آخر أو من فرع إلى الفرع الرئيسي (master branch). يتم دمج التغييرات لتحافظ على توافق المشروع. Push (رفع): يُستخدم لنشر التعديلات المحلية إلى المستودع المرفوع على GitHub. يتم رفع (push) التغييرات لمشاركتها مع فريق العمل أو المطورين الآخرين. Pull : يستخدم لجلب آخر تحديثات المستودع المرفوع على GitHub إلى المستودع المحلي. يتم سحب (pull) التغييرات لتحديث المشروع المحلي بآخر التحديثات. Checkout: يستخدم للتنقل بين الفروع أو استعادة نسخة سابقة من المشروع. يمكن استخدامه لإنشاء فروع جديدة أو التحقق من حالة معينة للمشروع. هناك مفاهيم أخرى أكثر تعمقاً مثل : Clone (استنساخ): يستخدم لنسخ مستودع Git بأكمله من GitHub إلى جهازك المحلي. يكون لديك نسخة محلية كاملة للمستودع للعمل عليها. Fork (تشعب): يستخدم لإنشاء نسخة مستقلة من مستودع مشروع GitHub. يكون لديك نسخة خاصة بك للمشروع يمكنك تعديلها بحرية دون التأثير على المستودع الأصلي. ( بمعنى أخر , إذا أردت نسخ مشروع ليس في حسابك إلى حسابك الشخصي على github ) Pull Request (طلب سحب ) يستخدم لاقتراح التغييرات التي أجريتها في فرعك الخاص إلى المستودع الأصلي على GitHub. يمكن لأصحاب المشروع أن يراجعوا التغييرات ويقبلوها أو يرفضوها. Conflict (تعارض): يحدث عندما يكون هناك تغييرات متشاركة بينك وبين مطور أخر في نفس الملف أو نفس السطر بين فروع مختلفة. يتطلب حل التعارضات قبل الدمج لضمان التوافق والتكامل السليم للتغييرات. Stash (تخزين): يستخدم لحفظ التعديلات المؤقتة التي لم تتم رفعها أو استخلاصها بعد. يمكن استخدامه عندما ترغب في checkout إلى فرع آخر بسرعة دون الحاجة لرفع التعديلات الحالية أو استخلاصها.
  17. وعليكم السلام , نعم هناك عدة منصات أو مواقع ويب توفر API للتكامل مع المتاجر عبر الانترنت لتقديم خدمات شحن الألعاب . هذه الخدمات تعرف باسم " game key أو game code delivery services ). هذه بعض المواقع التي تزود بApi للربط مع المتاجر وتوفير خدمة شحن : G2A: هو سوق شهير عبر الإنترنت للمنتجات الرقمية وتتضمن مفاتيح الألعاب. كما توفر API لتسمح بالتكامل مع المتاجر عبر الإنترنت أو الأنظمة الأساسية الأخرى لأتمتة تسليم مفاتيح اللعبة للعملاء. Kinguin : هي منصة أخرى تقدم مجموعة واسعة من المنتجات الرقمية، بما في ذلك مفاتيح الألعاب. مثل G2A , توفر (API) تسمح بالتكامل مع المتاجر عبر الإنترنت لأتمتة تسليم مفاتيح اللعبة. GamePower.
  18. في Next.js، يمكنك إضافة middleware لـ API Routes باستخدام مفهوم "Custom Server" واستخدام Express.js كجزء من الـ Serverless Functions. لإضافة middleware , يمكنك اتباع الخطوات التالية: قم بإنشاء ملف `server.js` في الRoute الخاص بمشروع Next.js وقم بتكوين Express.js وإضافة middleware كما ترغب. على سبيل المثال: const express = require('express'); const app = express(); // Middleware app.use((req, res, next) => { // أي middleware يمكنك وضعه هنا console.log('تم تنفيذ الميدلوير!'); next(); }); // التعامل مع الطلبات القادمة إلى API Routes app.all('*', (req, res) => { return handle(req, res); }); // سيتم استدعاء الدالة التالية من ملف `next.config.js` للتعامل مع الطلبات القادمة إلى API Routes module.exports = (req, res) => { return app(req, res); }; قم بتحديث ملف `next.config.js` في الجذر الخاص بمشروع Next.js ليشير إلى ملف `server.js`. يمكنك استخدام الكود التالي: module.exports = { // ... target: 'serverless', serverRuntimeConfig: { // تحديد المسار الخاص بـ server.js // افتراضيًا هو `./server.js` // يمكن تعديله بناءً على المسار الذي تم وضع ملف `server.js` فيه server: './server.js', }, // ... }; بعد إجراء هذه التغييرات، يمكنك إعادة تشغيل تطبيق Next.js الخاص بك. ستتمكن الآن من استخدام middleware في API Routes والتحكم في تنفيذها وفقًا لاحتياجاتك.
  19. تماماً , قيمة maxAge بالثواني , وبالتالي حاصل ضرب هذه القيم يساوي عدد الثواني في شهر من 30 يوم .
  20. مرحباً منتصر , أرجو أن تقوم بإرسال ملف الlogin لنتمكن من تحليل وحل مشكلتك بشكل أفضل . لكن بجميع الأحوال هذه خطوات عامة لكيف ممكن توضع jwt token في الcookies من خلال response api عندما يقوم المستخدم بتسجيل دخول . سوف نستخدم مكتبة `cookie` لتسهيل هذه العملية. قبل كل شيء، تأكد من تثبيت المكتبة `cookie` باستخدام الأمر التالي: npm install cookie بعد تثبيت المكتبة، يمكنك استخدام الكود التالي لتعيين توكن JWT في الكوكيز عند تسجيل الدخول: import { NextApiResponse } from 'next'; import cookie from 'cookie'; // دالة تقوم بتوليد التوكن JWT بناءً على البيانات الخاصة بالمستخدم function generateToken(user: UserData): string { // قم بتوليد التوكن هنا // ... return token; } // مثال على دالة تسجيل الدخول export function login(req: NextApiRequest, res: NextApiResponse): void { // قم بإجراء عملية التوثيق هنا // ... // توليد التوكن JWT const token = generateToken(user); // تعيين الكوكيز في الاستجابة res.setHeader('Set-Cookie', cookie.serialize('token', token, { httpOnly: true, secure: process.env.NODE_ENV === 'production', // تحديد ما إذا كانت الكوكيز تعمل على اتصال آمن أم لا sameSite: 'strict', // تحديد سياسة SameSite للكوكيز maxAge: 3600, // تحديد وقت انتهاء صلاحية الكوكيز بالثواني path: '/', // تحديد المسار الذي يمكن الوصول إليه الكوكيز من خلاله })); res.status(200).json({ message: 'تم تسجيل الدخول بنجاح' }); } بعد تعيين الكوكيز في الاستجابة، ستكون الكوكيز متاحة في الجانب العميل (المتصفح) ويمكن الوصول إليها من خلال `document.cookie`.
  21. مرحباً محسن, أرجو منك تزويدنا باسم الدورة المسجل بها لنتمكن من مساعدتك بشكل أفضل . لكن بجميع الأحوال , فهناك خطوات عامة يمكنك إتباعها لتحصل على عمل بعد إتمام الدورة , مثل : بناء معرض أعمال بتطبيقات متفاوتة الصعوبة ومتنوعة لتتمكن من جذب أصحاب مشاريع مختلفو التخصص . معرفة مكتبات وما يحتاجه اصحاب المشاريع والشركات في الوقت الحالي , وفي المستقبل . هذه بعض الاسئلة قد طرحت من قبل من الطلاب , يمكنك أيضاً الإطلاع عليها والاستفادة منها . إن كان لديك أي استفسار عنها , لا تتردد في طرح السؤال . نحن هنا لنساعدك. وشكراً
  22. هناك عدة مجالات للعمل الحر عبر خمسات ومستقل كما أشار المدرب مصطفى , وأكثر الأعمال المطلوبة وأعلاها دخلاً ( سعر ) هي التصميم والبرمجة . بالنسبة للتصميم : يوجد عدة الاختصاصات , منها : Graphic Design. UI/UX Design. Motion Graphic Design. سوف تحتاج إلى تعلم مبادئ التصميم وتناسق الألوان , بالاضافة الى برامج التصميم مثل : Adobe Photoshop. Adobe Illustrator. Adobe InDesign. Adobe AfterEffect بالنسبة للبرمجة : هناك عدة أختصاصات , إليك بعض منها : Web App Development. Frontend Development. Backend Development. Mobile App Development. Desktop App Development. في جميع الاختصاصات سوف تحتاج الى تعلم مبادئ البرمجة ومعرفة اساسية بلغات الهيكلة والتنسيق من : HTML CSS لغات برمجة مثل JavaScript , C#, Java هذه بعض الشروحات التي ممكن أن تساعدك في فهم البرمجة ومبادئ البرمجة , وكيف يمكن أن تتعلمها في حال إردت ذلك : لا تقلق , ربما تبدو صعبة التعلم , لكن سوف تجدها سهلة التعلم وممتعة عندما تبدأ بها .
  23. أولاً يجب عليك معرفة ما هي إختصاصات البرمجة , وما هي المجالات التي تحب أن تصبح مبرمجاً بها , ومن ثم تسجيل في دورات لهذا الاختصاص . مجال البرمجة مجال كبير وواسع , ومن المستحيل أن تكون على علم بكل الاختصاصات وبخبرة ممتازة . لذلك يجب عليك معرف ما هي اختصاصات والمجالات في البرمجة , ومن ثم تختار مجال لتعلمه وتكون محترف فيه بدلاً من تعلم البرمجة ككل ومعرفة كل شيء في البرمجة . هذه توضيح مختصر عن البرمجة ومجالات عملها , ودورات لأشهر الاختصاصات في البرمجة : الهدف من البرمجة بشكل مختصر , هو إيجاد حل لمشكلة حقيقية على أرض الواقع , أو تسهيل عمل حقيقي . فمثلاً , موقع amazon قام بتسهيل للناس تصفح المنتجات وشرائها دون الحاجة الى الذهاب للمتجر . ومواقع البنوك , فعلياً فإن البنك إعتماده على البرامج المحاسبية أكثر من 90% , لأنه عندما تكون الحسابات والمعادلات و العمليات المحاسبية كبيرة جداً , فإنه يصعب بشدة ضبطها والسيطرة عليها يدوياً إن لم يكن مستحيلاً , وضمان عدم السرقة وغيره من الامور التي تحتاج الى الدقة. ومواقع وتطبيقات التواصل الاجتماعي , جعلت من السهل جداً التواصل بين أبعد شخصين على الأرض. وchatGPT والبرمج الذكاء الصناعي , مكنت من لا يعرف شيء , أن يعرف كل شيء . فقط أسأل chatGPT. هذا الهدف من البرمجة , أما عن مجالاتها , أشهر المجالات في البرمجة : مطور تطبيقات الويب : يمكنك من خلال هذا الاختصاص تطوير مواقع إلكترونية بسيطة مثل ( موقع ملاحظات ) أو عادية ( مثل صفحات تعريفية بشركات ) أو معقدة وتحتاج إلى خبرة ( مثل amazon للمتاجر الإلكترونية أو google ) , كما أنه يوجد عدة أختصاصات في هذا المجال, إليك أهمها : Frontend Developer مطور واجهات أمامية : وهو الذي يقوم بما تراه من تصميم الموقع والازرار وتوزيع محتوى الموقع . Backend Developer مطور واجهات خلفية : وهو الذي يتعامل مع قواعد البيانات , اضافة أو تعديل أو حذف أو عرض , وبالتالي هو من يقوم بتزويد مطورين الواجهات الامامية بالمعلومات والبيانات عن طريق ما يسمى API . Database Analysis محلل قواعد بيانات : هذا الاختصاص ربما لا تراه إلا في الشركات الكبيرة والمتوسطة , فرص عمله تعتبر قليلة بالنسبة لمطور الواجهات الامامية والخلفية. Full Stack Web Developer : هذا يمتلك خبرة في تطوير الواجهات الامامية والواجهات الخلفية . مطور تطبيقات هواتف : يمكنك من خلال هذا الاختصاص تطوير تطبيقات الهاتف , مثل whatsapp أو gmail . Full Stack Developer : مطور مواقع إلكترونية وتطبيقات هاتف . مطور ألعاب. AI Developer مطور ذكاء صناعي. مطور تطبيقات سطح مكتب Desktop . أما عن كيف تبدأ بتعلم أحد هذه الاختصاصات , لنفترض أنك أردت أن تتعلم Full Stack Developer , فيمكنك إتباع الخطوات التالية : هناك عدة لغات لاختصاص ال frontend والbackend . يمكنك تعلم لغة javascript , فهي يمكنك من خلالها برمجة Frontend و Backend . جميع الاختصاصات او المجالات تعتمد على نفس مبدائ البرمجة , وهي الاساسيات + OOP . لذلك يجب عليك تمكين نفسك من هذه المعلومات وتطبيقها بجد. البدأ بتعلم HTML و CSS ( هذه لغات تستخدم لتطوير شكل الموقع , أي Frontend Developer ). البدأ بتعلم مفاهيم واساسيات javascript . تعلم OOP في الjavascript وتطوير تفسك في التفكير البرمجي والخوارزميات تعلم React.js من أجل تطوير Frontend . تعلم Node js من أجل تطوير Backend. يمكنك أيضاً الاستفادة من هذا الرابط بالنسبة للدورات التعليمية . فمنصة أكاديمية حسوب تقدم دورة في هذا المجال , يمكنك الإطلاع عليه من خلال الرابط التالي
  24. وعليكم السلام يبدو أنك تستخدم مكتبة PIL و pytesseract لقراءة النص من صورة موجودة على الإنترنت. ومع ذلك، فإن مكتبة PIL لا تدعم مباشرة قراءة الصور من الإنترنت باستخدام عنوان URL. لحل هذه المشكلة،يمكنك فعل مثل ما قال استاذ عمار في تعليقه , أو يمكنك تنزيل الصورة الموجودة على الرابط المحدد وحفظها محليًا على جهاز الخادم الخاص بك، ثم استخدام مسار الملف المحلي لقراءة الصورة باستخدام PIL. فيما يلي مثال على كيفية تنزيل الصورة وحفظها محليًا قبل قراءتها باستخدام PIL و pytesseract: from PIL import Image import pytesseract import requests from io import BytesIO # رابط الصورة image_url = 'https://2.bp.blogspot.com/--I_lNobSfMk/V8MKPK9wDLI/AAAAAAAAY1Q/cyzstRG2EWoobUk0D3xNvojqwYFIeY1NwCLcB/s1600/kalam-hob-english%2B%25282%2529.jpg' # تنزيل الصورة وحفظها محليًا response = requests.get(image_url) image = Image.open(BytesIO(response.content)) image.save('image.jpg') # استخدام Tesseract لتحليل النص في الصورة text = pytesseract.image_to_string(image, lang='eng') # استخدم اللغة المناسبة print(text) هذا الكود يستخدم مكتبة `requests` لتنزيل الصورة من الرابط المحدد و`BytesIO` لتحويل المحتوى المستلم إلى أوبجيكت صورة قابل للقراءة بواسطة PIL. ثم يتم حفظ الصورة المحملة محليا باسم "image.jpg" قبل قراءتها باستخدام `pytesseract`. أيضاً يجب عليك التأكد أن لديك الأذونات اللازمة للوصول إلى الصورة من الرابط المحدد وتنزيلها.
  25. من ناحية صعوبة الأمر , يبدو أنك سوف تواجه بعض الصعوبات إن كنت مبتدأ في البرمجة , أو فقد قمت بإنشاء بعض المشاريع . لأن تحويل من لغة الى لغة أو إنشاء تطبيق لموقع , يتطلب ذلك منك فهم عدة أمور برمجية وآلية عملها , ومعرفة برمجة تطبيقات هاتف باستخدام اللغة مثل flutter . flutter تعتمد على لغة dart , لذا يجب عليك أن تتعلم لغة dart ومن ثم flutter , إضافة إلى ذلك يتوجب عليك فهم كيف تصمم تطبيق في flutter . لأن تصميم التطبيق في flutter ليس كالويب , هناك بعض المفاهيم يجب عليك فهمها ومعرفة التعامل معها . لكن إن كان لديك وقت كافي ومرن , فلا بأس يمكنك البدء بتعلم flutter وتنفيذ مشروعك بسهولة . أما إن كان هناك وقت محدود ودقيق جداً , فيبدو أنك سوف تواجه صعوبات كثيرة في هذه الحالة . أيضاً المقالات التي أشار لها استاذ مصطفى تفيدك كثيرا في هذا الموضوع . يمكنك قراءتها والاستفادة منها
×
×
  • أضف...