احنا بنعرف نعمل import لملف #جافاسكريبت جوة ملف js تاني باستخدام import keyword
بس تعرف انك تقدر تعمل import لملف #html جوة ملف html تاني وبرضو باستخدام import؟
لو عندك صفحة html وعاوز تجيب صفحة تانية تعرضها فيها فغالبا هتفكر في شوية طرق تقليدية زي مثلا iframes و ajax
طريقة iframe بطيئة جدا لانها بتعمل request كامل جديد, دة غير ان الصفحة المتضمنة مش جزء من الصفحة الرئيسية
اما طريقة ajax رغم انها افضل واخف من iframe بس بتتعامل مع المحتوي ك sting عادي
بس انت غالبا ماتعرفش ان في طريقة ابسط من كدة بكتير .. وهي انك ببساطة تستخدم import بنفس الطريقة اللي بت import بيها ملف #javascript module
<link rel="import" href="other-page.html">
وعادي برضو تimport صفحة من دومين تاني
<link rel="import" href="http://example.com/elements.html">
الحلو بأة في الموضوع انك لو بتعمل import لنفس الفايل كذا مرة, البراوزر هيعمل request واحد بس
والاحلي انه بي bundle كل ال resources في فايل واحد
فمثلا لو حابب تستخدم مكتبة زي bootstap فانت غالبا بتحمل ملفات js وملفات css وملفات fonts .. بس بالطريقة الجديدة ممكن تحمل فايل html وهو بيحمل كل الملفات المطلوبة مرة واحدة
<link rel="import" href="bootstrap.html">
bootstrap.html:
<link rel="stylesheet" href="bootstrap.css">
<link rel="stylesheet" href="fonts.css">
<script src="jquery.js"></script>
<script src="bootstrap.js"></script>
<script src="bootstrap-tooltip.js"></script>
<script src="bootstrap-dropdown.js"></script>
ممكن تتابع ال status بسهولة, سواء في حالة نجاح التحميل او في حالة ايرور
<link rel="import" href="file.html" onload="handleLoad(event)" onerror="handleError(event)">
لو عاوز تتأكد ان الخاصية دي مدعومة في المتصفح الحالي ممكن تعمل حاجة زي كدة
if('import' in document.createElement('link')){
// supported
} else{
// use legacy methods
}
لو الخاصية مش مدعومة ممكن تستخدم polyfills بتاعة web components لان الخاصية دي اساسا جزء من #web_components
https://webcomponents.org/polyfills
نسيت اقولك انك لما بت import فايل مش معناها ان محتويات الفايل دة هتظهر في الصفحة مباشرة زي ما بيحصل مع iframe
انما معناها فقط ان الفايل اتحمل والمحتوي موجود قدامك تعمل فيه اللي انت عاوزه, وبالتالي ممكن مثلا تظهر جزء معين من الصفحة المتحملة بدل الصفحة كلها, او مثلا تكون عاوز تاخد معلومات ومش عاوز الصفحة نفسها تظهر, او مثلا عاوز تظهر الصفحة بناء علي شروط معينة او تتأكد مثلا من وجود معلومة معينة بناء عليها هتقرر تظهر الصفحة ولا لأ او تظهرها في مكان معين حسب المحتوي
let link = document.querySelector('link[rel="import"]');
let content = link.import;
المحتوي هنا عبارة عن DOM مش string وبالتالي تقدر تستخدم ادوات DOM عشان تاخد اللي انت عاوزه من الصفحة بسهولة
let el = content.querySelector('.main')
// do stuff with 'el', such as injecting it into an existing element
document.body.appendChild(el.cloneNode(true));
بس خد بالك ان الصفحة المتحملة تقدر تدخل علي ال DOM بتاع الصفحة الرئيسية, فملا لو في style معين, دة هيتطبق علي الصفحة المتحملة والصفحة الرئيسية برضو
وخد بالك برضو ال scripts اللي في الصفحة المتحملة هتبدأ تتنفذ فورا وقت التحميل, حتي لو ماحقنتهاش في الصفحة الرئيسية
ممكن نستخدم template tag ودي خاصية تانية جديدة, فايدتها باختصار ان الكود اللي جواها بيفضل خامل لغاية ما يتحقن في ال DOM
external.html
<template>
<script> ... </script>
<img src="img.jpg" />
</template>
main.html
<link rel="import" href="external.html">
<script>
let link = document.querySelector('link[rel="import"]');
let template = template = link.import.querySelector('template')
document.body.appendChild(template)
// now the resources of external.html will be loaded
</script>
طب بالمرة بأة نتعمق في الموضوع اكتر ونستغل ال html import مع ال custom elements
لو ماتعرفش اية هي ال custom elements فهي طريقة بتخليك تعمل component زي كدة ال components بتاعة #Angular و #Reactjs بس مدعومة natively في البراوزر مباشرة .. وهنتكلم عنها بالتفصيل بعدين
الفكرة بأة انك بدل ماتسيب المستخدم يـ register ال custom element بتاعك في الصفحة بتاعته, اعمل انت الشغل التقيل عندك ومل اللي عليه انه يـ import الفايل ويستخدم ال components بتاعتك بسهولة من غير مايشغ باله بالتفاصيل اللي ورا الكواليس
<link rel="import" href="elements.html">
<say-hi name="Dibo"></say-hi>
استخدم async لتحسين ال performance
<link async ... >
بس تعرف انك تقدر تعمل import لملف #html جوة ملف html تاني وبرضو باستخدام import؟
لو عندك صفحة html وعاوز تجيب صفحة تانية تعرضها فيها فغالبا هتفكر في شوية طرق تقليدية زي مثلا iframes و ajax
طريقة iframe بطيئة جدا لانها بتعمل request كامل جديد, دة غير ان الصفحة المتضمنة مش جزء من الصفحة الرئيسية
اما طريقة ajax رغم انها افضل واخف من iframe بس بتتعامل مع المحتوي ك sting عادي
بس انت غالبا ماتعرفش ان في طريقة ابسط من كدة بكتير .. وهي انك ببساطة تستخدم import بنفس الطريقة اللي بت import بيها ملف #javascript module
<link rel="import" href="other-page.html">
وعادي برضو تimport صفحة من دومين تاني
<link rel="import" href="http://example.com/elements.html">
الحلو بأة في الموضوع انك لو بتعمل import لنفس الفايل كذا مرة, البراوزر هيعمل request واحد بس
والاحلي انه بي bundle كل ال resources في فايل واحد
فمثلا لو حابب تستخدم مكتبة زي bootstap فانت غالبا بتحمل ملفات js وملفات css وملفات fonts .. بس بالطريقة الجديدة ممكن تحمل فايل html وهو بيحمل كل الملفات المطلوبة مرة واحدة
<link rel="import" href="bootstrap.html">
bootstrap.html:
<link rel="stylesheet" href="bootstrap.css">
<link rel="stylesheet" href="fonts.css">
<script src="jquery.js"></script>
<script src="bootstrap.js"></script>
<script src="bootstrap-tooltip.js"></script>
<script src="bootstrap-dropdown.js"></script>
ممكن تتابع ال status بسهولة, سواء في حالة نجاح التحميل او في حالة ايرور
<link rel="import" href="file.html" onload="handleLoad(event)" onerror="handleError(event)">
لو عاوز تتأكد ان الخاصية دي مدعومة في المتصفح الحالي ممكن تعمل حاجة زي كدة
if('import' in document.createElement('link')){
// supported
} else{
// use legacy methods
}
لو الخاصية مش مدعومة ممكن تستخدم polyfills بتاعة web components لان الخاصية دي اساسا جزء من #web_components
https://webcomponents.org/polyfills
نسيت اقولك انك لما بت import فايل مش معناها ان محتويات الفايل دة هتظهر في الصفحة مباشرة زي ما بيحصل مع iframe
انما معناها فقط ان الفايل اتحمل والمحتوي موجود قدامك تعمل فيه اللي انت عاوزه, وبالتالي ممكن مثلا تظهر جزء معين من الصفحة المتحملة بدل الصفحة كلها, او مثلا تكون عاوز تاخد معلومات ومش عاوز الصفحة نفسها تظهر, او مثلا عاوز تظهر الصفحة بناء علي شروط معينة او تتأكد مثلا من وجود معلومة معينة بناء عليها هتقرر تظهر الصفحة ولا لأ او تظهرها في مكان معين حسب المحتوي
let link = document.querySelector('link[rel="import"]');
let content = link.import;
المحتوي هنا عبارة عن DOM مش string وبالتالي تقدر تستخدم ادوات DOM عشان تاخد اللي انت عاوزه من الصفحة بسهولة
let el = content.querySelector('.main')
// do stuff with 'el', such as injecting it into an existing element
document.body.appendChild(el.cloneNode(true));
بس خد بالك ان الصفحة المتحملة تقدر تدخل علي ال DOM بتاع الصفحة الرئيسية, فملا لو في style معين, دة هيتطبق علي الصفحة المتحملة والصفحة الرئيسية برضو
وخد بالك برضو ال scripts اللي في الصفحة المتحملة هتبدأ تتنفذ فورا وقت التحميل, حتي لو ماحقنتهاش في الصفحة الرئيسية
ممكن نستخدم template tag ودي خاصية تانية جديدة, فايدتها باختصار ان الكود اللي جواها بيفضل خامل لغاية ما يتحقن في ال DOM
external.html
<template>
<script> ... </script>
<img src="img.jpg" />
</template>
main.html
<link rel="import" href="external.html">
<script>
let link = document.querySelector('link[rel="import"]');
let template = template = link.import.querySelector('template')
document.body.appendChild(template)
// now the resources of external.html will be loaded
</script>
طب بالمرة بأة نتعمق في الموضوع اكتر ونستغل ال html import مع ال custom elements
لو ماتعرفش اية هي ال custom elements فهي طريقة بتخليك تعمل component زي كدة ال components بتاعة #Angular و #Reactjs بس مدعومة natively في البراوزر مباشرة .. وهنتكلم عنها بالتفصيل بعدين
الفكرة بأة انك بدل ماتسيب المستخدم يـ register ال custom element بتاعك في الصفحة بتاعته, اعمل انت الشغل التقيل عندك ومل اللي عليه انه يـ import الفايل ويستخدم ال components بتاعتك بسهولة من غير مايشغ باله بالتفاصيل اللي ورا الكواليس
<link rel="import" href="elements.html">
<say-hi name="Dibo"></say-hi>
استخدم async لتحسين ال performance
<link async ... >
www.webcomponents.org
webcomponents.org - Discuss & share web components
👏7👍3❤2
#vscode #tips
side by side editing
👇👇
https://facebook.com/mobarmegeen/posts/pfbid02QU7UQHPd9Mr3raiR12B7j7cg4bj3ry1h2cSUMWVkJXfPjTHR6rJ2mvUDyRjFvL1Hl/
#developer #developers #frontend #backend #nodejs #html #css #java #programming
side by side editing
👇👇
https://facebook.com/mobarmegeen/posts/pfbid02QU7UQHPd9Mr3raiR12B7j7cg4bj3ry1h2cSUMWVkJXfPjTHR6rJ2mvUDyRjFvL1Hl/
#developer #developers #frontend #backend #nodejs #html #css #java #programming
Facebook
[vscode tips] side by side editing.mp4 | #vscode #tips
side by side...
side by side...
#vscode #tips
side by side editing
#developer #developers #frontend #backend #nodejs #html #css #java #programming
side by side editing
#developer #developers #frontend #backend #nodejs #html #css #java #programming
👍1
This media is not supported in your browser
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
advanced button styling with #CSS
SHARE ♥
#developers #developer #programming #frontend #backend #nodejs #java #python #html
SHARE ♥
#developers #developer #programming #frontend #backend #nodejs #java #python #html
❤6
Forwarded from قعدة مبرمجين
👍5
#hiring [hybrid] mid senior back-end developer for Minds Outsourcing
Magento Developer is needed for a hybrid opportunity atMinds Outsourcing ( https://www.linkedin.com/company/minds-outsourcing/ )
- Position: back-end developer
- Experience Level: mid senior
- Location: Cairo, Egypt
- Company: Minds Outsourcing
- Job type: hybrid
- contract type: full time
- Skills: PHP, javascript, css, html, Magento
# Required qualifications:
Magento 2 / Javascript / PHP / CSS / HTML
للترشيح سيب تخصصك ورقمك في كومنت وابعتلي CV انبوكس
apply 👇👇
https://mobarmegeen.com/jobs/b51f0008-7fb6-4fac-8493-4317cb2d3517
https://t.me/its_dibo/1078
#PHP #javascript #css #html #Magento #jobs #vacancies #developers #developer #frontend #backend #software #angular #nodejs #ReactJs #python #java #dotnet #internship #شغل #وظيفة #برمجة #مبرمجين
Magento Developer is needed for a hybrid opportunity atMinds Outsourcing ( https://www.linkedin.com/company/minds-outsourcing/ )
- Position: back-end developer
- Experience Level: mid senior
- Location: Cairo, Egypt
- Company: Minds Outsourcing
- Job type: hybrid
- contract type: full time
- Skills: PHP, javascript, css, html, Magento
# Required qualifications:
Magento 2 / Javascript / PHP / CSS / HTML
للترشيح سيب تخصصك ورقمك في كومنت وابعتلي CV انبوكس
apply 👇👇
https://mobarmegeen.com/jobs/b51f0008-7fb6-4fac-8493-4317cb2d3517
https://t.me/its_dibo/1078
#PHP #javascript #css #html #Magento #jobs #vacancies #developers #developer #frontend #backend #software #angular #nodejs #ReactJs #python #java #dotnet #internship #شغل #وظيفة #برمجة #مبرمجين
Linkedin
Minds Outsourcing | LinkedIn
Minds Outsourcing | 23,931 followers on LinkedIn. Founded in 2015 as a spin-off from Razy Technologies; one of leading companies in the ICT field in Egypt.
Minds is a custom software development company operations offices in UK, Egypt, and KSA.
Minds provides…
Minds is a custom software development company operations offices in UK, Egypt, and KSA.
Minds provides…
👍1
#hiring junior #front_end_developer
#frontend
https://mobarmegeen.com/jobs/b346ba12-07f5-4fca-b2eb-fa2c59bd833d
junior #front_end_developer for Kayfa #internship
#frontend #backend #graphic_design
https://mobarmegeen.com/jobs/e83a6ca3-0ad5-4f89-81e7-c616312de5f9
#hiring mid senior #mobile_developer for EgyBell #freelance
#flutter #kotlin
https://mobarmegeen.com/jobs/677a32c4-f73b-4e50-a543-a6a73b9e7ca2
#hiring senior #full_stack_developer
#dot_net #Angular
- Attractive salaries paid in USD
- Family Medical insurance
- Housing and transportation allowances
- Social insurance
- GYM Allowance
https://mobarmegeen.com/jobs/2f550f1b-f755-4f59-bbac-b57e4b23d06d
#hiring senior #back_end_developer
#dot_net
https://mobarmegeen.com/jobs/6a73d20e-1804-4430-bc13-6c7a56a4e9eb
#hiring senior #back_end_developer for Abu Diyab Information Technology
#Laravel
https://mobarmegeen.com/jobs/e5a25e1a-1638-494e-b6ff-9410c0a1c8b3
#hiring junior #front_end_developer
#html #css
https://mobarmegeen.com/jobs/412196c4-52a9-47b6-9816-4e7cc81d42a3
#hiring senior #full_stack_developer
#dot_net #ReactJs
https://mobarmegeen.com/jobs/38003da1-8f43-49f2-ae67-f347d002d798
junior #full_stack_developer for Siemens #internship
#backend
https://mobarmegeen.com/jobs/27ff5e28-28d2-4304-8802-ecef4152b133
more jobs: @mobarmegeen
follow linkedin.com/in/dibo
#jobs #vacancies #developers #developer #frontend #backend #software #شغل #وظيفة #برمجة #مبرمجين
#frontend
https://mobarmegeen.com/jobs/b346ba12-07f5-4fca-b2eb-fa2c59bd833d
junior #front_end_developer for Kayfa #internship
#frontend #backend #graphic_design
https://mobarmegeen.com/jobs/e83a6ca3-0ad5-4f89-81e7-c616312de5f9
#hiring mid senior #mobile_developer for EgyBell #freelance
#flutter #kotlin
https://mobarmegeen.com/jobs/677a32c4-f73b-4e50-a543-a6a73b9e7ca2
#hiring senior #full_stack_developer
#dot_net #Angular
- Attractive salaries paid in USD
- Family Medical insurance
- Housing and transportation allowances
- Social insurance
- GYM Allowance
https://mobarmegeen.com/jobs/2f550f1b-f755-4f59-bbac-b57e4b23d06d
#hiring senior #back_end_developer
#dot_net
https://mobarmegeen.com/jobs/6a73d20e-1804-4430-bc13-6c7a56a4e9eb
#hiring senior #back_end_developer for Abu Diyab Information Technology
#Laravel
https://mobarmegeen.com/jobs/e5a25e1a-1638-494e-b6ff-9410c0a1c8b3
#hiring junior #front_end_developer
#html #css
https://mobarmegeen.com/jobs/412196c4-52a9-47b6-9816-4e7cc81d42a3
#hiring senior #full_stack_developer
#dot_net #ReactJs
https://mobarmegeen.com/jobs/38003da1-8f43-49f2-ae67-f347d002d798
junior #full_stack_developer for Siemens #internship
#backend
https://mobarmegeen.com/jobs/27ff5e28-28d2-4304-8802-ecef4152b133
more jobs: @mobarmegeen
follow linkedin.com/in/dibo
#jobs #vacancies #developers #developer #frontend #backend #software #شغل #وظيفة #برمجة #مبرمجين
مبرمجين
junior front-end developer | مبرمجين
👍1
#hiring junior #front_end_developer
#html #css
apply 👇👇
https://mobarmegeen.com/jobs/412196c4-52a9-47b6-9816-4e7cc81d42a3
more jobs: @mobarmegeen
follow linkedin.com/in/dibo
للترشيح سيب تخصصك ورقمك في كومنت وابعتلي CV انبوكس
#jobs #vacancies #developers #developer #frontend #backend #software #شغل #وظيفة #برمجة #مبرمجين
#html #css
apply 👇👇
https://mobarmegeen.com/jobs/412196c4-52a9-47b6-9816-4e7cc81d42a3
more jobs: @mobarmegeen
follow linkedin.com/in/dibo
للترشيح سيب تخصصك ورقمك في كومنت وابعتلي CV انبوكس
#jobs #vacancies #developers #developer #frontend #backend #software #شغل #وظيفة #برمجة #مبرمجين
مبرمجين
junior front-end developer | مبرمجين
junior front-end developer
- problem-solving and debugging skills
- Proficient understanding of web markup, including HTML5, CSS3
- Good knowledge in JavaScript (fundamentals are ok)
- problem-solving and debugging skills
- Proficient understanding of web markup, including HTML5, CSS3
- Good knowledge in JavaScript (fundamentals are ok)
#internship front-end #developer
#HTML #Css #jQuery #bootstrap
apply 👇👇
https://mobarmegeen.com/jobs/6c76e682-f55b-4ace-a354-857b8bb786d9
more jobs: @mobarmegeen
follow linkedin.com/in/dibo
للترشيح سيب تخصصك ورقمك في كومنت وابعتلي CV انبوكس
#jobs #vacancies #developers #frontend #backend #software #angular #nodejs #ReactJs #javascript #python #java #dotnet #hiring #شغل #وظيفة #برمجة #مبرمجين
#HTML #Css #jQuery #bootstrap
apply 👇👇
https://mobarmegeen.com/jobs/6c76e682-f55b-4ace-a354-857b8bb786d9
more jobs: @mobarmegeen
follow linkedin.com/in/dibo
للترشيح سيب تخصصك ورقمك في كومنت وابعتلي CV انبوكس
#jobs #vacancies #developers #frontend #backend #software #angular #nodejs #ReactJs #javascript #python #java #dotnet #hiring #شغل #وظيفة #برمجة #مبرمجين
مبرمجين
internship front-end developer | مبرمجين
#internship #software #developer for ejada
#Java #machine_learning
https://mobarmegeen.com/jobs/fd971185-f158-4986-9856-ad20ba7e7bc1
#hiring senior Software instructor for Phlera
#wordpress #php
https://mobarmegeen.com/jobs/ea23d9ef-1595-46df-b4b5-40d9479197ec
#hiring #junior mobile #developer for Golden Soft
#flutter
https://mobarmegeen.com/jobs/610ff893-eff2-4843-bf86-033fc7e79149
#internship front-end #developer
#HTML #Css #jQuery #bootstrap
https://mobarmegeen.com/jobs/6c76e682-f55b-4ace-a354-857b8bb786d9
#hiring mid senior #software tester for Lab digital system
#testing
https://mobarmegeen.com/jobs/6770e8b8-9458-4b37-97fe-036728f60bc4
#hiring #junior #software tester for Mobco
#testing
https://mobarmegeen.com/jobs/7139a7a4-e46d-491d-a0e2-bc46d25ae1cf
more jobs: @mobarmegeen
follow linkedin.com/in/dibo
#jobs #vacancies #developers #frontend #backend #angular #nodejs #ReactJs #javascript #python #java #dotnet #hiring #شغل #وظيفة #برمجة #مبرمجين
#Java #machine_learning
https://mobarmegeen.com/jobs/fd971185-f158-4986-9856-ad20ba7e7bc1
#hiring senior Software instructor for Phlera
#wordpress #php
https://mobarmegeen.com/jobs/ea23d9ef-1595-46df-b4b5-40d9479197ec
#hiring #junior mobile #developer for Golden Soft
#flutter
https://mobarmegeen.com/jobs/610ff893-eff2-4843-bf86-033fc7e79149
#internship front-end #developer
#HTML #Css #jQuery #bootstrap
https://mobarmegeen.com/jobs/6c76e682-f55b-4ace-a354-857b8bb786d9
#hiring mid senior #software tester for Lab digital system
#testing
https://mobarmegeen.com/jobs/6770e8b8-9458-4b37-97fe-036728f60bc4
#hiring #junior #software tester for Mobco
#testing
https://mobarmegeen.com/jobs/7139a7a4-e46d-491d-a0e2-bc46d25ae1cf
more jobs: @mobarmegeen
follow linkedin.com/in/dibo
#jobs #vacancies #developers #frontend #backend #angular #nodejs #ReactJs #javascript #python #java #dotnet #hiring #شغل #وظيفة #برمجة #مبرمجين
مبرمجين
internship software developer for ejada | مبرمجين
internship software developer for ejada
تدريب في شركة اجادة السعودية
متاح التدريب في العديد من المجالات البرمجية و machine learning
تدريب في شركة اجادة السعودية
متاح التدريب في العديد من المجالات البرمجية و machine learning
❤1👍1
مطلوب junior backend developers لـ Valeo
https://mobarmegeen.com/jobs/deb3f979-70c2-4b0f-9b58-45217fedc477
مطلوب Junior ReactJS developer لـ Valeo
https://mobarmegeen.com/jobs/75dcd549-8741-4a7b-925c-850e30fd8585
more jobs: https://t.me/addlist/-O694-Mmrkw1ZjVk
#ReactJs #React_native #javascript #bootstrap #HTML #CSS #software #jobs #vacancies #developers #frontend #backend #angular #nodejs #python #java #dotnet #hiring #internship
https://mobarmegeen.com/jobs/deb3f979-70c2-4b0f-9b58-45217fedc477
مطلوب Junior ReactJS developer لـ Valeo
https://mobarmegeen.com/jobs/75dcd549-8741-4a7b-925c-850e30fd8585
more jobs: https://t.me/addlist/-O694-Mmrkw1ZjVk
#ReactJs #React_native #javascript #bootstrap #HTML #CSS #software #jobs #vacancies #developers #frontend #backend #angular #nodejs #python #java #dotnet #hiring #internship
❤1
#junior full-stack #developer for mazeed
apply 👇👇
https://mobarmegeen.com/jobs/041a8def-882c-4d66-95a8-3b11fe7527ce
more jobs: https://t.me/addlist/-O694-Mmrkw1ZjVk
#javascript #NodeJs #python #HTML #CSS #software #jobs #vacancies #developers #frontend #backend #angular #nodejs #ReactJs #java #dotnet #hiring #internship
apply 👇👇
https://mobarmegeen.com/jobs/041a8def-882c-4d66-95a8-3b11fe7527ce
more jobs: https://t.me/addlist/-O694-Mmrkw1ZjVk
#javascript #NodeJs #python #HTML #CSS #software #jobs #vacancies #developers #frontend #backend #angular #nodejs #ReactJs #java #dotnet #hiring #internship
❤1