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

عبد الله محمد5

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

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

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

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

    2

كل منشورات العضو عبد الله محمد5

  1. عليك ان تستبدل : import { combineReducers } from '../../store/reducers'; بالاتي: import combineReducers from '../../store/reducers';
  2. ما قمت به صحيح و يقارب من نموذج الMVC حيث يتم الفصل بين الواجهات الامامية والواجهات الخلفية بحيث أنه لا يتم تعديل الواجهات الخلفية في حال تم عمل اي تعديل في الواجهات الخلفية. اما بخصوص سؤالك عن إمكانية وضع الhtml في الdatabase ومن ثم طلب البيانات فهذه الخطوة لن تكون صحيحة لأنك بذلك ستشكل ضغطاً كبيراً على قاعدة البيانات بالاضافة إلى أن البرنامج سيكون بطيئاً جداً.
  3. الfunctional component: تعتبر بسيطة و اقل تعقيداً من الclass components. تركز بواجهات المستخدم و لا تركز على سلوك الواجهات. ليس لديها state ولا تستخدم الlifecycle methods. الclass components: تستخدم الصياغة الخاصة بES6 وكذلك يمكنها استخدام ال lifecycle methods. الclass component ترث من الreact component كما في المثال الاتي: import React, { Component } from 'react'; import './App.css'; import UserOutput from './UserOutput/UserOutput'; import UserInput from './UserInput/UserInput'; class App extends Component { render() { return ( <div className="App"> <h3>Assignment Output :</h3> <ul> <li> <UserOutput username={this.state.Usernames[0].username}> Welcome to React! </UserOutput> <UserInput nameChanged={this.nameChangedHandler}> </UserInput> </li> </ul> </div> ); } } export default App; يتعين عليك استخدام this للوصول الى الدوال والprops التي قمت بتعريفها بداخل الclass component.
  4. قمت بعمل اختبار سرعة على المدونة الخاصة بك ووجدت أن سرعتها على اجهزة الديسكتوب ممتازة ب98 من 100 و لكن سرعتها على الجوال اقل بعض الشيء حيث بلغت 85 من 100 وهنالك بعض النصائح التي يمكنك القيام بها لتحسين سرعتها على الموبايل: ان تقوم بأعطاء الصور width و height. ان تقوم باستخدام عملية الكاشينج و تعطي الكاش عمراً طويلاً. تقليل زمن استجابة الخادم للطلبات من خلال تحسين جودة الكود. بالاضافة إلى أن المكتبة بهذا الرابط تستهلك 1.5 ثانية و هي اكبر مستهلك للوقت لذلك ينصح بحذفها إن أمكن. بعد أن تقوم بهذه الخطوات يمكنك إعادة الاختبار من هنا و معرفة التحسن الذي حدث على مدونتك و النصائح الموجهة اليك من أجل اداء افضل.
  5. بعد أن تقوم بتحميل الخطوط و تضيفها الى ملفات المشروع عليك أن تقوم بإضافة الكود الاتي: @font-face { font-family: myFontFamily1;//هنا تقوم بكتابة اسم عائلة الخط src: url(sansation_light.woff);//هنا تقوم بكتابة مسار تواجد الخط } @font-face { font-family: myFontFamily2;//هنا تقوم بكتابة اسم عائلة الخط src: url(sansation_light.woff);//هنا تقوم بكتابة مسار تواجد الخط } h1:{ font-family:myFontFamily1; } p:{ font-family:myFontFamily2; } حيث يتعين عليك اضافة font-face لكل خط على حده.
  6. وعليكم السلام بالنسبة للاختبار سيكون كالتالي: محادثة صوتيّة لمدة 30 دقيقة يطرح المدرّب عليك أسئلة متعلّقة بالدورة والأمور التي نفّذتها خلالها. يحدد لك المدرّب مشروعًا مرتبطًا بما قمت به أثناء الدورة لتنفيذه خلال فترة محددة تتراوح بين أسبوع الى أسبوعين. محادثة صوتيّة أخرى لمدّة 30 دقيقة يناقش بها مشروعك وما نفذته وتطرح أسئلة خلالها بعد ذلك ان كنت قد قمت بكل ما سبق ذكره بصورة صحيحة سيتم منحك الشهادة او في حالة كان لديك بعض القصور سيتم ارشادك الى مكامن الخلل او القصور ثم يمكنك اعادة المحاولة مرة اخرى. بالنسبة لسؤالك عن كيفية اخذ الشهادة فإن الأكاديمية تلتزم بشحن الشهادة مختومة الى مكان تواجدك إلا في حالة أن الدولة التي تتواجد بها في حالة حرب او لا تتوفر فيها خدمة الشحن.
  7. حسناً لنبدأ بعملية تحويل الساعات الى دقائق والدقائق الى ثواني حيث اننا سنقوم باستقبال الساعات من المستخدم وبعدها نقوم بضرب الساعات في 60 وهو عدد الدقائق في الساعة الواحدة و هكذا نكون قد حولنا الساعات الى دقائق بعدها نقوم بتحويل الدقائق الى ثواني من خلال ضرب الدقائق في 60 وهو عدد الثواني في الدقيقة الواحدة كالتالي: #include<iostream> using namespace std; int main () { float hrs, min, sec = 0; cout << "Enter hours : "; cin >> hrs; min = hrs * 60; sec = min * 60; cout << "\n" << hrs << " hours = " << min << " minutes = " << sec << " seconds"; return 0; } ثانياً سنأخذ عملية تحويل اليوم الى ساعات ودقائق وثواني حيث اننا سنقوم بنفس العملية فقط سنضرب اليوم في 24 لأن اليوم به 24 ساعة ولن نقوم باستقبال عدد الساعات من المستخدم: #include<iostream> using namespace std; int main () { float hrs, min, sec = 0; hrs = 1 * 24; min = hrs * 60; sec = min * 60; cout << "\n" << hrs << " hours = " << min << " minutes = " << sec << " seconds"; return 0; } اخيراً بالنسبة الى تحويل 3 ايام فقط سنقوم بتغير عدد الايام الى 3 ونضربها في 24 كالتالي: #include<iostream> using namespace std; int main () { float hrs, min, sec = 0; hrs = 3 * 24; min = hrs * 60; sec = min * 60; cout << "\n" << hrs << " hours = " << min << " minutes = " << sec << " seconds"; return 0; }
  8. الجافا سكربت بحر واسع ويحتاج منك الى عمل كبير ولكن سأعطيك صورة مبسطة عنها :- اولاً:- المتغيرات وهي التي يتم تخزين البيانات فيها كالاتي: var name = "ahmed"; var isStudent = true; var price1 = 5; var price2 = 6; let total = price1 + price2; فتعريف المتغيرات كما لاحظت ينقسم الى ثلاثة اجزاء الاول وهو اما ان يكون var او let ويقوم بتعريف مدى ظهور المتغير و اسم المتغير و قيمة المتغير. ثانياً :- الجمل الشرطية وهي التي تحدد تفرع البرنامج حسب بعض المتغيرات وتكون كالاتي: var number = 12; if(number > 10){//الجملة الشرطية console.log(number);//الكود الذي سيتم تنفيذه عندما تكون العبارة الشرطية صحيحة } ثالثاً:- عبارات التكرار let x; for(x = 0 ;x < 10 ;x++){//هذه تسمى حلقة فور وتتكون من ثلاثة اجزاء القيمة الابتدائية للمتغير و شرط استمرار الحلقة والفعل الذي يتم تنفيذه بعد كل دورة console.log(x); } رابعاً:- الدوال وهي عبارة عن اكودا بداخل كتل برمجية يتم استدعائه حسب الحاجة اليه let name = "ahmed"; any(name);//طريقة استدعاء الدوال حيث تكتب اسم الدالة وبعدها قوسين وتمرر القيم المطلوبه اذا كانت هنالك قيم مطلوبة function any(name){//واسم الدالة بالاضافة الى المتغيرات التي يتم استقبالها function تعريف الدالة وينقسم الى الكلمة المحجوزة alert('welcome'+name+' to javascript'); //wlcome ahmed to javascript سيكون الناتج هو }
  9. وعليكم السلام اولاً : حتى تنجح في صناعة المحتوى يجب أن تركز على مجال واحد وتبتعد عن النسخ واللصق و أن تكون متميزاً حتى تتمكن من الحصول على متابعين لمنشوراتك. ثانياً : بعد أن تحدد المجال الذي تكتب فيه أو المجالات التي تكتب فيها يجب أن تركز على ثلاثة أشياء منها يمكنك إستخلاص الافكار التي تكتب عنها: جديد المجال أو الاخبار المتعلقة بالمجال فمثلاً إذا اخترت مجال الرياضة فاحرص على أن تقوم بكتابة منشور عن نتائج او ملخص مباريات اليوم وإذا اخترت التكنولوجيا فاكتب عن احدث التقنيات في العالم. الاخبار او المعلومات النادرة او بمعنى اخر ان تكتب المنشورات ذات الطابع التشويقي كأن تكتب عن قصة اغرب ثلاثة اسباب جعلت اللاعبين يعتزلون كرة القدم او ان تكتب هل ستحكم الروبوتات العالم اذا كنت اخترت مجال التكنولوجيا. ان تكتب عن تاريخ المجال و لكن يفضل ان تكتب بصورة منفردة عن الموجودة على الانترنت اي ان تجمع المعلومات بنفسك وتحاول صياغة مقالاتك الخاصة .
  10. السلام عليكم nullPointerException يحدث عندما تقوم باستخدام الvariable التي تكون عبارة عن object ولم يتم اسناد قيمة له وتقوم باستدعاء دالة بداخله. يجب عليك قراءة الtrace حتى تتمكن من تحديد موقع الخطأ بالتحديد وبعدها سيكون حل المشكلة سهلاً او يمكنك أن تضع عبارات طباعة بعد كل عدد من العمليات لتعرف متى يحدث الخطأ بالتحديد بعدها ستكون مهمة حل الexception اسهل.
  11. الخطأ not a statement يعني أن التعبير الذي كتبه غير ذو معنى ولا يسمح به ويحدث لأسباب متعددة منها مثلاً ان تقوم بكتابة 0; او a+b; او حتى ان تستدعي دالة بدون كتابة الأقواس any; اما في حالتك فأظن أن لديك مشكلة في السطر الأول في عملية اسناد القيم للمصفوفة لابد أن تكون كالتالي: list [0] = {"اكتب القيم"};
  12. السلام عليكم اولاً لاداعي للخوف فالأمر بسيط جداً و قد تواجهك بعض الصعوبات في البداية ولكنك ستتغلب عليها الأمر المهم هو أن تحافظ على ثقتك بنفسك. بالنسبة لمراحل العمل على منصات العمل الحر فهي ثلاث مراحل : مرحلة تلقي العروض وفي هذه المرحلة يتقدم من يجد أن الوظيفة المعروضة تناسبه بعرضه ويوضح تفاصيل العرض والقيمة المادية والزمن الذي يحتاجه لإنجاز المهمه. المرحلة الثانية هي مرحلة تنفيذ المشروع و تأتي هذه المرحلة بعد أن يتواصل معك العميل ويتم الإتفاق ويقوم بايداع مبلغ العمل في مستقل و يوافق على عرضك بعدها ينتقل النقاش بينكما إلى مايعرف بنقاش الصفقة ويجب عليك أن توضح للعميل جميع التفاصيل هنا وان لاتتواصل خارج المنصة لتضمن حقك . اخيراً تأتي مرحلة استلام المشروع فإما أن يقوم العميل بالضغط على استلام المشروع من نفسه او ان تطلب انت ان تسلم المشروع وترفع الملفات الخاصة به و بعد ذلك يتم تحويل المبلغ لك ولكن لا يمكنك سحبه قبل مرور فترة الضمان وهي 15 يوم. اخيراً ما تعلمته كافي لدخول الى مجال العمل الحر و القدرة على المنافسة فقط قم بتنفيذ عدد من المشاريع حتى تضعها في معرض اعمالك.
  13. هذا الخطأ يعني أنه ليس هنالك مساحة كافية لإنشاء الكائن الذي تريد إنشائه ويحدث في ثلاثة أحوال: عندما تقوم بانشاء كائن جديد في الوقت الذي لا يكون هنالك مساحة لإنشائه في الHeap الخاص بالجافا والذي يتم تسجيل الكائنات. عندما لاتكون هنالك مساحة كافية لتحميل كلاس من الكلاسات. في حالة نادرة جداً يحدث هذا الخطأ عندما يأخذ الgrbage collector وقت طويل في عملية تحرير الذاكرة و مع ذلك تكون الذاكرة المحررة صغيرة جداً.
  14. اليك 5 أفكار لمشاريع يمكنك تنفيذها باستخدام لارافيل: مشروع بسيط يتم فيه إجراء عمليات الcrud وهي الإنشاء والعرض والتعديل والحذف. مشروع عبارة عن تطبيق دردشة مباشرة . متجر إلكتروني. محاكاة لمواقع مشهورة مثل تويتر وانستجرام وغيرها. موقع للعمل الحر.
  15. يمكنك القيام بذلك كالتالي: $sql = "SELECT imageType,imageData FROM output_images WHERE imageId=" . $_GET['image_id']; $result = mysqli_query($conn, $sql) or die("<b>Error:</b> Problem on Retrieving Image BLOB<br/>" . mysqli_error($conn)); $row = mysqli_fetch_array($result); header("Content-type: " . $row["imageType"]); echo $row["imageData"]; هذا في حالة أنك قمت بتخزين الصورة نفسها في قاعدة البيانات و لكن هذه الطريقة غير محبزة أبداً وعوضاً عن ذلك يمكن تخزين نقل الصورة الى ملف في السيرفر و من ثم تخزين مسار الصورة في قاعدة البيانات.
  16. ليس هنالك فرق واضح بين الطريقتين ولكن الطريقة الاولى تعتبر اسهل نسبياً من الطريقة الثانية.
  17. java.lang.NullPointerException تعني أن الكائن عبارة عن null وتحاول ان تستدعي دالة بداخله ويمكنك معالجة الامر باستخدام try catch ولكن لايوصى بذلك وعوضاً عن ذلك يمكنك استخدام هذه الطريقة: if(someVariable != null){ someVariable.doSomething();//في حالة أن المتغير ليس null }else{ // الكود في حالة أن المتغير null }
  18. اللارافيل تسهل القيام بذلك من خلال امرين: البوابات او الgates : وهي عبارة عن بوابة تعطي المرور للمستخدمين المصرح لهم القيام بالواجبات المعينة. ويتم تعريف البوابات بداخل الدالة boot use App\Models\Post; use App\Models\User; use Illuminate\Support\Facades\Gate; /** * Register any authentication / authorization services. * * @return void */ public function boot() { $this->registerPolicies(); Gate::define('update-post', function (User $user, Post $post) { return $user->id === $post->user_id; }); } في الكود الموجود بالأعلى يتم إنشاء بوابة تقوم بتحديد عملية تحديث الpost للشخص الذي قام بانشائه فقط وذلك من خلال مقارنة الid الخاص بالمستخدم الحالي مع الid الخاص بالمستخدم الذي قام بإنشاء الpost. <?php namespace App\Http\Controllers; use App\Http\Controllers\Controller; use App\Models\Post; use Illuminate\Http\Request; use Illuminate\Support\Facades\Gate; class PostController extends Controller { /** * Update the given post. * * @param \Illuminate\Http\Request $request * @param \App\Models\Post $post * @return \Illuminate\Http\Response */ public function update(Request $request, Post $post) { if (! Gate::allows('update-post', $post)) {//هنا يتم التأكد باستخدام البوابة update-post من أن المستخدم مصرح له تحديث ال post abort(403);//يتم اجهاض العملية مع الخطأ 403 اي أن المستخدم غير مصرح للقيام بالعملية } // متابعة الكود وتحديث المنشور } } بعد عملية إنشاء الgate يأتي الدور على ربط البوابة مع الcontroller حيث تم وضع شرط لمواصلة تنفيذ التحديث على البوست وهو ان تكون قيمة البوابة قيمة ايجابية اي ان المستخدم مصرح له القيام بالامر. : او السياسات policies من خلال ال php artisan make:policy PostPolicy --model=Post خاصة بالموديل بوست حتكون موجودة في المسار policy الامر ده من خلاله سيتم إنشاء app/Policies بعدها ستقوم بتسجيل السياسة التي قمت بعملها في المسار App\Providers\AuthServiceProvider والتسجيل بمثابة اخبار للارافيل بالسياسات التي ستستخدمها في البرنامج. <?php namespace App\Policies; use App\Models\Post; use App\Models\User; class PostPolicy { /** * Determine if the given post can be updated by the user. * * @param \App\Models\User $user * @param \App\Models\Post $post * @return bool */ public function update(User $user, Post $post) { return $user->id === $post->user_id; } } في الكود السابق يتم التحقق من أن المستخدم مصرح له أن يقوم بعملية التحديث. وتقدر تستخدم الpolicy بواحدة من طريقتين: اما عن طريق الblade : @can('update', $post) <!-- ...بتقوم بعرض جزئيات من التصميم للمستخدم في حال انه كان يمكنه عمل تحديث للبوست --> @elsecan('create', App\Models\Post::class) <!-- ...بتقوم بعرض جزئيات من التصميم للمستخدم في حال انه كان يمكنه عمل انشاء لبوست جديد--> @endcan @cannot('update', $post) <!-- ...تقوم بعرض جزئيات من التصميم للمستخدم في حال انه كان لا يمكنه عمل تحديث للبوست --> @elsecannot('create', App\Models\Post::class) <!-- ...بتقوم بعرض جزئيات من التصميم للمستخدم في حال انه كان لا يمكنه عمل انشاء لبوست جديد--> @endcannot عن طريق الربط مع الcontroller: <?php namespace App\Http\Controllers; use App\Http\Controllers\Controller; use App\Models\Post; use Illuminate\Http\Request; class PostController extends Controller { /** * Update the given post. * * @param \Illuminate\Http\Request $request * @param \App\Models\Post $post * @return \Illuminate\Http\Response */ public function update(Request $request, Post $post) { if ($request->user()->cannot('update', $post)) { abort(403); } // Update the post... } }
  19. عدم إدخال إلا الحروف : يمكنك القيام بذلك من خلال الجافا سكربت باختبار الزر الذي يتم الضغط عليه عند الكتابة داخل الinput كالاتي: <input type="text" onkeydown="return checkValue(event)"> وفي الدالة checkValue سيتم اختبار قيمة الادخال والتأكد من أنها تتكون من حروف فقط كما يلي: function checkValue(event) { let key = event.keyCode;//للحصول على الكود الخاص بالزر المضغوظ return ((key >= 65 && key <= 90) || (key >= 95 && key <= 122));//هنا يتم اختبار الكود الخاص بالزر ما إذا كان الحرف كبير ويقع بين القيمتين الA-Z (95-120) او حرف صغير a-z (65-90) } ادخال ارقام فقط: <input type="number"> ادخال البريد الإلكتروني فقط: <input type="email">
  20. السلام عليكم يمكنك ارسال بريد الكتروني باستخدام laravel من خلال اتباع الخطوات التالية: ستقوم بتهيئة البرنامج ليقوم بارسال البريد الالكتروني من خلال ضبط اعدادات البريد الالكتروني في الملف env. كالتالي: MAIL_DRIVER = smtp MAIL_HOST = smtp.gmail.com MAIL_PORT = 587 MAIL_USERNAME = your-gmail-username MAIL_PASSWORD = your-application-specific-password MAIL_ENCRYPTION = tls بالنسبة لكلمة المرور فلن تكون كلمة مرور بريدك الالكتروني وانما يتعين عليك انشاء تطبيق في الgmail ووضع كلمة المرور الخاصة بالتطبيق. 2. قم بكتابة الامر الاتي: php artisan config:cache 3. بعدها قم بكتابة الامر التالي لإنشاء الكنرولر الخاص بارسال البريد : php artisan make:controller MailController --plain 4. بعدها قم بلصق الكود الاتي في الملف MailController <?php namespace App\Http\Controllers; use Illuminate\Http\Request; use Mail; use App\Http\Requests; use App\Http\Controllers\Controller; class MailController extends Controller { public function basic_email() { $data = array('name'=>"Virat Gandhi"); Mail::send(['text'=>'mail'], $data, function($message) { $message->to('abc@gmail.com', 'Tutorials Point')->subject ('Laravel Basic Testing Mail'); $message->from('xyz@gmail.com','Virat Gandhi'); }); echo "Basic Email Sent. Check your inbox."; } public function html_email() { $data = array('name'=>"Virat Gandhi"); Mail::send('mail', $data, function($message) { $message->to('abc@gmail.com', 'Tutorials Point')->subject ('Laravel HTML Testing Mail'); $message->from('xyz@gmail.com','Virat Gandhi'); }); echo "HTML Email Sent. Check your inbox."; } public function attachment_email() { $data = array('name'=>"Virat Gandhi"); Mail::send('mail', $data, function($message) { $message->to('abc@gmail.com', 'Tutorials Point')->subject ('Laravel Testing Mail with Attachment'); $message->attach('C:\laravel-master\laravel\public\uploads\image.png'); $message->attach('C:\laravel-master\laravel\public\uploads\test.txt'); $message->from('xyz@gmail.com','Virat Gandhi'); }); echo "Email Sent with attachment. Check your inbox."; } } الكود عبارة عن ثلاثة دوال كلها تقوم بارسال بريد الكتروني عن طريق الدالة ()Mail::send والتي تستقبل ثلاثة عوامل او parameters الاول هو الtemplate او الview الذي سيتم ارساله. الثاني سيكون هو البيانات التي ستكون موجودة في البريد المرسل والمعامل الثالث سيكون هو الدالة التي يتم استدعائها لارسال البريد الالكتروني. ويتم فيها تحديد موضوع البريد و المرسل والمستقبل والمرفقات. وكما تلاحظ انه هنالك نوعان من البريد الالكتروني المرسل او طريقتان لإرسال البريد الإلكتروني الاولى هي أن يتم إرسال البريد الإلكتروني في شكل text و الثانيه في شكل HTML ويمكنك أن تجرب الطريقتان لترى الفرق الطريقة الاولى كما في الدالة الاولى والطريقة الثانية كما في الدالتين الثانية والثالثة. 5. بعدها يجب عليك إنشاء الview الخاص بالبريد الإلكتروني الذي سيتم إرساله في المسار resources/views/ كالتالي: <h1>Hi, {{ $name }}</h1> l<p>Sending Mail from Laravel.</p> 6. بعدها يمكنك إضافة الroutes الاتية : Route::get('sendbasicemail','MailController@basic_email'); Route::get('sendhtmlemail','MailController@html_email'); Route::get('sendattachmentemail','MailController@attachment_email'); 7. يمكنك إرسال البريد من خلال زيارة المسارات الاتية: http://localhost:8000/sendbasicemail http://localhost:8000/sendhtmlemail http://localhost:8000/sendattachmentemail
  21. وعليكم السلام لا شيء يمنع ذلك إذا تم التوافق بينك وبين العميل كما أن هنالك بعض الأعمال التي لا تتطلب وضع الموسيقى مثل بعض الإ علانات التي يتم فيها وضع حوار عادي بأصوات من غير موسيقى.
  22. ذاكرة الكاش أو كما تُسمى Random Access Memory هي أحد أنواع الذاكرة الموجودة في الحاسوب، وتمتاز بسرعتها الفائقة، كما أنها توجد بين الذاكرة الرئيسية والمعالج، ويتم اللجوء إليها لتخزين التطبيقات والبرامج الموجودة لمعالجتها، وذلك ليكون التعامل معها سريعاً وسلساً، كما يوجد العديد من الأهداف لها، مثل: تخزين الأجزاء النشطة من البرامج والتطبيقات، وتسريع جهاز الحاسوب، كما أنها تقسم إلى قسمين رئيسين وهما RAM والتي تُسمى بذاكرة الوصول العشوائي، و ROM وهي مخصصة بشكلٍ أساسي للقراءة فقط. ومعنى التكييش أنه تم تخزين بيانات الصفحة في الذاكرة و عندما تقوم بتحديث المتصفح سيتم عرض البيانات القديمة التي تم تخزينها اصلاً لذلك يتم مسح سجل التصفح الخاص بالمتصفح حتى يتم عرض التحديثات الجديدة التي قمت بها في الصفحة.
  23. السلام عليكم اخي الكريم الشركات تلجأ الى شيئين للتمييز بين المطورين العاديين والمميزين: المعاينات التقنية وفيها يتم اختبار المبرمج بصورة كاملة في اللغة او المجال الذي يختص فيه باعطائه مجموعة من الاسئلة البرمجية وفي بعض الاحيان يطلب منه برمجة شيء تجريبي. معرض الأعمال و هو ما قام المطور بانجازه في مسيرته البرمجية من مشاريع.
  24. السلام عليكم أخي الكريم اولاً عوضك الله عن هذا المشروع وعن مجهودك خيراً. بالنسبة للتقييم السيء فإنه قطعاً يؤثر على فرص توظيفك مستقبلاً ولكن يمكنك فعل مايلي: أن ترد على العميل في التقييم بأن تكتب أن التقصير ليس من جانبك . أن تحاول أن تقوم بوضع عدد من الأعمال الجيدة في معرض أعمالك. حاول أن تقدم على المشاريع الصغيرة التي تكون قيمتها 50$ او اقل فأصحاب هذه النوعية من المشاريع غالباً لن يجدو عدداً كبيراً من المتقدمين مما يعني زيادة نسبة قبولك وذلك حتى تحصل على عدد من التقييمات الجيدة للتغطية على التقييم السيء. نصيحتي لك أخي الكريم لتنجح في العمل الحر : دائماً حاول أن تصادق العميل وأن تقدم بعض التنازلات خاصة في البداية فكما تعرف أن البدايات دائماً صعبة.
×
×
  • أضف...