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

كل الأنشطة

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

  1. الساعة الماضية
  2. السلام عليكم ورحمة الله تعالى وبركاته، يمكنك تعديل الكود ليطلب من المستخدم إدخال اسم المدينة بدلاً من استخدام رابط ثابت. استبدل الجزء الخاص بالرابط والبحث بهذا الكود: city = input("أدخل اسم المدينة: ") url = f"https://www.timeanddate.com/worldclock/{city.lower()}" driver.get(url) مع إضافة معالجة للأخطاء في حالة عدم وجود المدينة: try: html = driver.page_source soup = BeautifulSoup(html, "html.parser") time_element = soup.find("span", {"id": "ct"}) if time_element: print(f"الوقت في {city}: {time_element.text}") else: print("لم يتم العثور على المدينة") except Exception as e: print("خطأ في الحصول على البيانات") finally: driver.quit()
  3. اليوم
  4. # دالة تضرب أي عدد من الأرقام وتُرجع النتيجة def multiply(*numbers): result = 1 for n in numbers: result *= n return result # الآن برنامج أكبر يستعمل الدالة print("أدخل أرقامًا تريد ضربها (افصلها بمسافة):") user_input = input(">> ") # تحويل الإدخال إلى قائمة أرقام numbers = [float(x) for x in user_input.split()] # استعمال الدالة لحساب النتيجة product = multiply(*numbers) # طباعة النتيجة print("النتيجة هي:", product)
  5. من خلال دالة input ستطلب من المستخدم كتابة اسم المدينة وتخزينه في متغير user_input. user_input = input("Please enter the city name: ") ثم بدلاً من الذهاب إلى رابط ثابت، عليك إنشاء رابط جديد في كل مرة بناءًا على مدخلات المستخدم، أي الرابط الخاص بالبحث في الموقع يكون بهذا الشكل لو أدخل المستخدم cairo https://www.timeanddate.com/worldclock/?query=cairo وتستطيع تكوين الرابط من خلال f-string لتسهيل دمج اسم المدينة في الرابط، لكن عليك استخدام وحدة urllib لتحويل المسافات لرمز + بمعنى New York يتم تحويلها إلى New+York. import urllib.parse query = urllib.parse.quote_plus(city_name) url = f"https://www.timeanddate.com/worldclock/?query={query}"
  6. منصة Kaggle وجوجل كولاب هي بيئة عمل جاهزة، لذا الاستقرار هو أهم عامل يتم التركيز عليه، فبيئة Kaggle Notebook تُعرف بـ Docker Image أي هي نظام متكامل ومعقد، ولا تحتوي فقط على مكتبة واحدة مثل pandas أو scikit-learn، بل تحتوي على مئات المكتبات التي تعتمد على بعضها البعض، بالإضافة إلى برامج تشغيل GPU مثل CUDA و cuDNN. وبتحديث مكتبة واحدة بشكل عشوائي إلى أحدث إصدار، فأحيانًا يكسر توافقها مع مكتبة أخرى، أي قد يتطلب إصدار جديد من TensorFlow نسخة أحدث من CUDA لا تدعمها بيئة Kaggle الحالية، أو يتعارض مع نسخة معينة من numpy. لذا يعمل فريق Kaggle على تجميع واختبار Image كاملة تحتوي على مجموعة من المكتبات التي تم التأكد من أنها تعمل معاً بشكل سليم ومستقر. أيضًا لا يعني وجود إصدار جديد من المكتبة أنه أفضل، بل أحيانًا يحدث العكس، لذا الأمر بحاجة إلى وقت لإختبار والتحقق من استقرار تلك الإصدارات.
  7. لا قصدي نظام مدينة كشف الجرائم يعني : 1- سرقة المتاجر. 2- الإختطافات . 3- معرفة الاطفال الضائعة من خلال ميزة التتبع. 4- مرور على الاشارة الحمراء. 5- تتبع المشتبه عبر تسلسل الكاميرات. 6- التقاط ارقام السيارات الي دخالها المشتبه. وأكيد داخل بيئة محاكات في الحاسب ,وسبب اختياره لعدة نماذجه. مثل هذا :https://github.com/OpenVisualCloud/Smart-City-Sample اريد معرفة الاشياء الاخرى التي يجب أن اتعلمها ,وطرق اخرى لتكوين خبرة عالية في المجال وتعزيز الفهم. وشكرا.
  8. ليس دائمًا، فالدوال الجاهزة مثل image_dataset_from_directory مناسبة في الحالات العادية التي يتوفر بها هيكل بيانات اعتيادي، بمعنى مجلد لمجموعة البيانات ويحتوي بداخله على مجلدات أخرى وبها البيانات. ومن خلالها تستطيع تحميل مجموعة بيانات كاملة ببضعة أسطر فقط، وتلك الدوال ليست مجرد اختصار في TensorFlow، بل تقوم image_dataset_from_directory بإنشاء كائن tf.data.Dataset، وهو مصمم خصيصًا للأداء العالي، ويستخدم تقنيات مثل الجلب المسبق Prefetching لتحميل الدفعة التالية من البيانات في الخلفية بينما تتدرب الشبكة على الدفعة الحالية، لمنع اختناق وحدة معالجة الرسومات وانتظارها للبيانات، وتقنية التوازي Parallelism لقراءة ومعالجة عدة صور في نفس الوقت باستخدام أنوية المعالج المتعددة. أيضًا التخزين المؤقت لتخزين البيانات في الذاكرة بعد قراءتها لأول مرة لتسريع الوصول إليها في الدورات التدريبية Epochs التالية. والكائن الناتج منها يكون جاهز للاستخدام مباشرة مع model.fit() في Keras أو في حلقة التدريب المخصصة في PyTorch، دون الحاجة لتحويلات إضافية، أيضًا تقوم تلقائيًا باستنتاج أسماء الفئات Classes من أسماء المجلدات، وتوفر خيارات سهلة للتقسيم إلى دفعات Batching والخلط Shuffling. بينما الطريقة اليدوية أنسب عند الحاجة إلى مرونة وتحكم كامل، وفي حالات لا تغطيها الدوال الجاهزة، بمعنى هيكل مجلدات معقدة أو معالجة مسبقة متقدمة أو مخصصة أو تحكم دقيق في الذاكرة. صحيح من ناحيتين وقت المطور و وقت التنفيذ، فالأول كتابة بنية شبكة CNN باستخدام Keras أو PyTorch هي الجزء الأسرع والمباشر في المشروع، فهي عبارة عن تكديس طبقات فوق بعضها البعض (Conv2D, MaxPooling2D, Dense ). والثاني أثناء تدريب النموذج، خط أنابيب البيانات هو عنق الزجاجة في الأداء، وليس حسابات الشبكة العصبونية نفسها.
  9. ما الذي تقصده بمدينة ذكية؟ فلو تقصد محاكاة لمدينة ذكية، فالمشروع ليس مجرد نموذج ذكاء اصطناعي واحد، بل نظام من ضمن أنظمة مختلفة يتطلبها المشروع، في الدورة أنت تعلمت كيف تبني العقل الذكي وهو الذكاء الاصطناعي، وستحتاج لتعلم كيفية بناء الجسد الذي يربط العقل بالعالم الحقيقي ويجعله يتفاعل معه. بمعنى المدينة الذكية ترى وتشعر من خلال أجهزة الاستشعار، وذلك يتم من خلال مجال إنترنت الأشياء IoT، وتلك هي الطبقة الأولى لاستشعار وجمع البيانات (الحواس): ثم الطبقة الثانية أو النظام الثاني، وهي هندسة البيانات، حيث كمية البيانات التي تنتجها مدينة ضخمة (فيديو، قراءات مستشعرات، إلخ) هائلة وتحتاج إلى بنية تحتية قوية للتعامل معها. والطبقة الثالثة، هي تطبيق مهاراتك الحالية في الذكاء الاصطناعي، والرابعة تطوير الواجهات الخلفية وواجهات برمجة التطبيقات API's، والخامسة خيالبنية التحتية السحابية و DevOps، والسادسة: عرض البيانات والتفاعل (الواجهة) أي كيف سيرى المسؤولون في المدينة ما يحدث؟ من خلال لوحات المعلومات. لذا لن تستطيع القيام بذلك بمفردك، ما تستطيع تنفيذه هو بناء نموذج أولي Proof of Concept أي اختر مشكلة واحدة صغيرة جداً ولا تبدأ بالمدينة الذكية، بل بنظام ذكي لمراقبة امتلاء حاويات القمامة في حي واحد: اجمع صوراً لحاويات قمامة (ممتلئة، فارغة، نصف ممتلئة). ابنِ نموذج Computer Vision يصنف حالة الحاوية من الصورة. من خلال الـ IoT استخدم Raspberry Pi مع كاميرا لالتقاط صورة وإرسالها كل ساعة. ابنِ API بسيط باستخدام Flask يستقبل الصورة من الـ Raspberry Pi، يمررها للنموذج، ويخزن النتيجة مثلاً حاوية رقم 123 ممتلئة في قاعدة بيانات بسيطة. ابنِ لوحة تحكم بسيطة جداً باستخدام Streamlit أو Dash تعرض خريطة عليها نقاط تمثل الحاويات، ولون النقطة يتغير حسب حالتها. بعد نجاح المشروع، ستكون قد تعلمت أساسيات IoT، Backend، و Dashboards، وتستطيع الآن العمل على مشكلة أخرى أكبر قليلاً، مثل تحليل حركة المرور عند تقاطع واحد، وتطبيق نفس الخطوات. بالطبع ستحتاج إلى إنهاء الدورة بالكامل قبل العمل على المشروع فباقي المسارات أنت بحاجة إلى دراستها.
  10. المشكلات تنشأ بسبب طبيعة السحابة نفسها، حيث يتم تخزين البيانات وتشغيل التطبيقات على بنية تحتية يملكها ويديرها طرف ثالث مثل Amazon AWS, Microsoft Azure, Google Cloud. والخطر الأكبر، هو تمكن المهاجمون من الوصول إلى البنية التحتية السحابية، أي الإختراق وسرقة بيانات حساسة لآلاف أو ملايين العملاء، وذلك يحدث لأسباب عديدة منها ثغرات أمنية، أو إعدادات خاطئة، أو هجمات تصيد Phishing ناجحة، والخسائر هنا خسائر مالية فادحة، الإضرار بسمعة الشركة، وعقوبات قانونية. أو الإعدادات الخاطئة والتهيئة غير الآمنة، فهي أحد أكثر الأسباب شيوعًا للحوادث الأمنية في السحابة، وغالبًا ما يكون الخطأ من جانب العميل وليس من مزود الخدمة السحابية، بمعنى ترك قواعد بيانات أو وحدات تخزين مثل Amazon S3 buckets مفتوحة للجميع دون حماية، استخدام كلمات مرور ضعيفة أو افتراضية، أو عدم تفعيل جدران الحماية بشكل صحيح. أيضًأ واجهات برمجة التطبيقات غير الآمنة، بمعنى الـ APIs وهي الطريقة التي تتفاعل بها الخدمات والتطبيقات مع البيئة السحابية، فلو كانت الواجهات ضعيفة أمنيًا، سيتم استغلالها للتحكم في الخدمات السحابية وسرقة البيانات، سواء بسبب ضعف في آليات المصادقة Authentication أو السماح بصلاحيات أوسع من اللازم. ولو تمكن المهاجم من سرقة بيانات الإعتماد أي اسم مستخدم وكلمة مرور لمسؤول النظام، فيمكنه التحكم في جميع الموارد السحابية للشركة، وذلك بسبب هجمات التصيد، البرامج الضارة، أو استخدام كلمات مرور ضعيفة. وهناك مخاطر أخرى منها موظف يقوم بحذف البيانات أو سرقتها عمدًا، أو يرتكب خطأ بدون قصد، مثل حذف بيانات مهمة أو الوقوع ضحية للتصيد، أو هجمات حجب الخدمة DoS لكن تلك مشكلة مؤقتة ولا تُعرض البيانات للسرقة.
  11. أنتظر إن شاء الله التحديث أكون خلصت دورة تطوير واجهات المستخدم يكون الدورة تحدثت ياريت يكون في شرح كافي في الاول وبعد كدا التطبيق العملي ويكون في الشرح أمثله حتى نفهم الفكره اكثر
  12. بالضبط الإصدار هو 11 وهو قديم بالفعل، ومحتوى الدورات يتم تحديثه كل فترة، ويتم العمل على تحديث مختلف الدورات بالأكاديمية، وفي مسارات أخرى وهي: أساسيات TypeScript تطبيق تعلم اللغات باستخدام Next.js وتقنيات الذكاء الاصطناعي يتم استخدم الإصدار 13 والميزات الجديدة التي توفيرها في الإصدار 12 و13، حيث قدم Next.js 13 مفهوم App Router أي مجلد app كنظام جديد كليًا يعمل بالتوازي مع النظام القديم Pages Router، وعلى الرغم من أن النظام القديم لا يزال مدعوم، إلا أن App Router هو الأفضل لجميع المشاريع الجديدة.
  13. الفكرة الأساسية هي تجنب التطبيق بدون استيعاب، وحتى لو استوعبت الشرح وطبقت مع المدرب، فهناك أمور لن تتضح لك إلا عند التنفيذ بمفردك، بمعنى تقسيم الدرس إلى حصص في حال كان الدرس طويل، ثم التوقف والتطبيق على كل جزء بمفردك، أو مشاهدة الدرس بالكامل في حال كان بسيط ثم التطبيق. وفي حال واجهت صعوبة، حاول التذكر والتجربة بنفسك أولاً ثم العودة للدرس للمراجعة، أي لا تخف من التجربة والخطأ فهي أساس عملية التعلم. وبعد فترة من التعلم، حاول توظيف ما تعلمته في المشاريع التي تعمل عليها، أي لا تكتفي بما تم بالدرس فقط، مثال بسيط، عند تعلم أساسيات لغة برمجية فهناك تمارين بالدروس حول مفهوم الدرس فقط، قم بتطبيق ما تعلمته في الدروس السابقة في التمرين الخاص بالدرس أيضًا وهكذا. أيضًا لو أردت تنفيذ أمر ما ولم يتم شرحه بعد أو لم يتم ذكره في الدورة، قم بالبحث عن أو السؤال، ولا تكتفي بما يتم تقديمه لك، مثلاً أثناء تنفيذك للتمرين أردت تطبيق منطق معين ولكنك لا تعرف كيف؟ تفقد دروس الدورة في حال لم تجد شرح للمفهوم ابحث عنه على يوتيوب أو جوجل، أو قم بالسؤال وسيتم مساعدتك. ستجد هنا تفصيل أكثر:
  14. المشكله أن الاصدار قديم هناك إصدارات احدث وهي المطلوبة
  15. الانتقال من Create React App (CRA) إلى Vite ليس مسألة إلزامية عند تعلم React لأن جوهر المكتبة سيبقى كما هو فأنت ستتعامل مع المكونات، props، state وhooks بنفس الطريقة تماما لكن الفارق يكمن في أداة التطوير نفسها. ف CRA كان الأداة الرسمية سابقا لكنه أصبح بطيئا في تشغيل الخادم والبناء، ولم يعد يتلقى تحديثات مهمة، بينما Vite صُمم ببنية حديثة تعتمد على ES Modules وواجهة تطوير فائقة السرعة، ما يمنحك بدء تشغيل فوري تقريبا، تحديثات لحظية دون بطء مع حجم ملف build أصغر، وإمكانية تخصيص سهلة عبر ملف إعداد واحد.
  16. الأمر غير مؤكد في الوقت الحالي، سيتم الرجوع للفريق المختص بإعداد محتوى الدورات والعودة إليك للتوضيح، فالمسار تم نقله بالفعل للأرشيف، لو أردت دراسته لتعلم أساسيات Next.js فلا مشكلة.
  17. لا حاجة لتحديث المسار من أجل تلك النقطة، فمفاهيم React الأساسية لا تتغير، ستكتب نفس أكواد React (مكونات، Hooks، State، Props) سواء كان المشروع مبنيًا بـ CRA أو Vite. ما يختلف هو طريقة إنشاء المشروع ليس أكثر، أي بدلاً من: npx create-react-app my-app ستستخدم: npm create vite@latest my-react-app -- --template react وحاليًا الطريقة المُعتمدة هي من خلال vite بالفعل، فخادم التطوير يبدأ فورًا بفارق كبير في السرعة، والتعديلات تظهر في المتصفح بشكل لحظي، ويسهل تخصيص الإعدادات عبر ملف vite.config.js دون الحاجة لتعقيدات، والنسخة النهائية من المشروع عند عمل build أصغر حجمًا وأكثر كفاءة.
  18. السلام عليكم. اريد تطوير نظام مدينة ذكية لكن لم اجد خطة للتعلم اساسياتها قبل بداية المشروع. حاليا انا : داخل دورة الذكاء الاصطناعي واكملت التعلم العميق. اريد تطبيق كل ما تعلمته في مشروع كبير ,اريد معرفة الاشياء الاخرى التي يجب تعلمها. وشكرا.
  19. متى سيتم تحدسث مسار رياكت من create react app الى React Vite
  20. متى سيتم تحديث مسار Next.js أرى أنكم نقلتم المسار الى الأرشيف هل قريب سيتم تحديثه ؟
  21. المسار صحيح، ستقوم بتنفيذ المشاريع في دورة جافاسكريبت، لكن جزء الواجهة الأمامية فقط وتجاهل الدروس المتعلقة بالواجهة الخلفية.
  22. وعليكم السلام ورحمة الله وبركاته، المطلوب أن تتابع الشرح أولا مع المدرس حتى تفهم الفكرة والخطوات، لكن التطبيق الفعلي يُفضل أن تقوم به بنفسك بعد انتهاء الدرس بشكل مستقل. الهدف أن تنجز المشروع بيدك بالكامل حتى تترسخ المهارة لأن الاكتفاء بالتطبيق مع المدرس خطوة بخطوة قد يجعلك معتمدا على الفيديو فقط. وأثناء تطبيقك بنفسك قد تواجه بعض الأخطاء أو التحديات، وهذا أمر طبيعي ومهم جدا في عملية التعلم. في هذه الحالة يمكنك الرجوع إلى الدرس لمراجعة الجزء الذي لم يتضح لك، أو طرح سؤالك في قسم التعليقات ليتم الرد عليك ومساعدتك. بهذه الطريقة تضمن الاستفادة الكاملة من الجانب العملي.
  23. السلام عليكم، لدي استفسار بخصوص جزء التطبيق العملي في الدورة. هل المطلوب أن أقوم بتنفيذه مع المدرّس أثناء الشرح، أم أن عليّ إنجازه بشكل مستقل بعد انتهاء الدرس؟ شاكرين تعاونكم.
  24. البارحة
  25. طب هل ينفع اني امشي في مسار frontend هكذا HTML CSS JavaScript Bootstrap React.js Next.js ولو ينفع اتفرج على اي من دورة تطوير التطبيقات جافاسكريبت غير react
  26. from docx import Document from docx.shared import Pt, RGBColor, Inches from docx.enum.text import WD_PARAGRAPH_ALIGNMENT # إنشاء ملف Word جديد doc = Document() # إنشاء جدول من عمودين table = doc.add_table(rows=1, cols=2) table.autofit = False table.columns[0].width = Inches(2) # العمود الأيسر (sidebar) table.columns[1].width = Inches(4.5) # العمود الأيمن (main content) # العمود الأيسر (Sidebar) left = table.rows[0].cells[0] p = left.add_paragraph("Abdelrahman Ibrahim Abdelfattah Elabd\n") run = p.runs[0] run.font.size = Pt(14) run.font.bold = True run.font.color.rgb = RGBColor(10, 37, 64) p.alignment = WD_PARAGRAPH_ALIGNMENT.CENTER p = left.add_paragraph("Civil Supervisor – Construction\n") p.alignment = WD_PARAGRAPH_ALIGNMENT.CENTER left.add_paragraph("📍 Saudi Arabia") left.add_paragraph("📞 +966580396809") left.add_paragraph("✉️ ea20513@gmail.com") left.add_paragraph("🎂 13 June 1994") left.add_paragraph("Nationality: Egyptian") # لغات left.add_paragraph("\nLanguages", style="Heading 2") left.add_paragraph("Arabic: Native") left.add_paragraph("English: Very Good (British University certified course)") # مهارات left.add_paragraph("\nSkills", style="Heading 2") left.add_paragraph("• Proficient in MS Office") left.add_paragraph("• Site supervision & leadership") left.add_paragraph("• Problem-solving & decision-making") left.add_paragraph("• Communication & teamwork") left.add_paragraph("• Ability to work under pressure") # العمود الأيمن (Main Content) right = table.rows[0].cells[1] # ملخص right.add_paragraph("Professional Summary", style="Heading 2") right.add_paragraph( "Civil Supervisor with over 4 years of experience in construction supervision and site management, " "including NEOM mega project under Bechtel supervision. Strong background in accounting, " "problem-solving, and team leadership. Proven ability to work under pressure and deliver projects on time." ) # الخبرة right.add_paragraph("\nWork Experience", style="Heading 2") right.add_paragraph( "Civil Supervisor – Construction\n" "BATCO – Al Tamimi | NEOM Project (under Bechtel supervision)\n" "Jan 2024 – Present" ) right.add_paragraph( "Civil Supervisor – Construction\n" "Al Tamimi – Red Sea | Saudi Arabia\n" "2021 – Dec 2023" ) right.add_paragraph( "Site Accountant\n" "Al Horia for Trading & Contracting – Egypt\n" "Jan 2018 – Aug 2020" ) # التعليم right.add_paragraph("\nEducation", style="Heading 2") right.add_paragraph( "Bachelor of Computers and Information – Management & Accounting\n" "El Shorouk Academy – Egypt\n" "Grade: Good" ) # الشهادات right.add_paragraph("\nCertifications & Training", style="Heading 2") right.add_paragraph( "• Human Development Course – El Shorouk Academy\n" "• Certificate in Frame, Tube & Coupler & System Scaffolding\n" "• IOSH Certification" ) # حفظ الملف doc.save("Abdelrahman_CV_Modern.docx") print("✅ CV Word file generated successfully as Abdelrahman_CV_Modern.docx") from docx import Document from docx.shared import Pt, RGBColor, Inches from docx.enum.text import WD_PARAGRAPH_ALIGNMENT # إنشاء ملف Word جديد doc = Document() # إنشاء جدول من عمودين table = doc.add_table(rows=1, cols=2) table.autofit = False table.columns[0].width = Inches(2) # العمود الأيسر (sidebar) table.columns[1].width = Inches(4.5) # العمود الأيمن (main content) # العمود الأيسر (Sidebar) left = table.rows[0].cells[0] p = left.add_paragraph("Abdelrahman Ibrahim Abdelfattah Elabd\n") run = p.runs[0] run.font.size = Pt(14) run.font.bold = True run.font.color.rgb = RGBColor(10, 37, 64) p.alignment = WD_PARAGRAPH_ALIGNMENT.CENTER p = left.add_paragraph("Civil Supervisor – Construction\n") p.alignment = WD_PARAGRAPH_ALIGNMENT.CENTER left.add_paragraph("📍 Saudi Arabia") left.add_paragraph("📞 +966580396809") left.add_paragraph("✉️ ea20513@gmail.com") left.add_paragraph("🎂 13 June 1994") left.add_paragraph("Nationality: Egyptian") # لغات left.add_paragraph("\nLanguages", style="Heading 2") left.add_paragraph("Arabic: Native") left.add_paragraph("English: Very Good (British University certified course)") # مهارات left.add_paragraph("\nSkills", style="Heading 2") left.add_paragraph("• Proficient in MS Office") left.add_paragraph("• Site supervision & leadership") left.add_paragraph("• Problem-solving & decision-making") left.add_paragraph("• Communication & teamwork") left.add_paragraph("• Ability to work under pressure") # العمود الأيمن (Main Content) right = table.rows[0].cells[1] # ملخص right.add_paragraph("Professional Summary", style="Heading 2") right.add_paragraph( "Civil Supervisor with over 4 years of experience in construction supervision and site management, " "including NEOM mega project under Bechtel supervision. Strong background in accounting, " "problem-solving, and team leadership. Proven ability to work under pressure and deliver projects on time." ) # الخبرة right.add_paragraph("\nWork Experience", style="Heading 2") right.add_paragraph( "Civil Supervisor – Construction\n" "BATCO – Al Tamimi | NEOM Project (under Bechtel supervision)\n" "Jan 2024 – Present" ) right.add_paragraph( "Civil Supervisor – Construction\n" "Al Tamimi – Red Sea | Saudi Arabia\n" "2021 – Dec 2023" ) right.add_paragraph( "Site Accountant\n" "Al Horia for Trading & Contracting – Egypt\n" "Jan 2018 – Aug 2020" ) # التعليم right.add_paragraph("\nEducation", style="Heading 2") right.add_paragraph( "Bachelor of Computers and Information – Management & Accounting\n" "El Shorouk Academy – Egypt\n" "Grade: Good" ) # الشهادات right.add_paragraph("\nCertifications & Training", style="Heading 2") right.add_paragraph( "• Human Development Course – El Shorouk Academy\n" "• Certificate in Frame, Tube & Coupler & System Scaffolding\n" "• IOSH Certification" ) # حفظ الملف doc.save("Abdelrahman_CV_Modern.docx") print("✅ CV Word file generated successfully as Abdelrahman_CV_Modern.docx")
  1. عرض المزيد
×
×
  • أضف...