<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Adeyemi Adeshina </title>
    <description>The latest articles on DEV Community by Adeyemi Adeshina  (@iamadeyemiadex).</description>
    <link>https://dev.to/iamadeyemiadex</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F705114%2F9dc71e7e-9d3c-46cf-ae1c-683cd8aebc89.png</url>
      <title>DEV Community: Adeyemi Adeshina </title>
      <link>https://dev.to/iamadeyemiadex</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/iamadeyemiadex"/>
    <language>en</language>
    <item>
      <title>Laravel API Error Exception Handling Methodologies.</title>
      <dc:creator>Adeyemi Adeshina </dc:creator>
      <pubDate>Sun, 23 Jul 2023 16:23:59 +0000</pubDate>
      <link>https://dev.to/iamadeyemiadex/laravel-api-error-exception-handling-methodologies-26bb</link>
      <guid>https://dev.to/iamadeyemiadex/laravel-api-error-exception-handling-methodologies-26bb</guid>
      <description>&lt;p&gt;Laravel is one of the most used backend frameworks in building modern APIs for applications. When building APIs or writing codes (either simple or complex algorithms), no developer can escape from encountering errors. In this short article, I'll be sharing a simple tips on how to handle these errors. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;These are some of the reasons why you need to learn error handling:&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;To avoid unnecessary termination of your program.&lt;/li&gt;
&lt;li&gt;To avoid security threat on your application.&lt;/li&gt;
&lt;li&gt;Proper communication to the end user or the API tester of your application. etc&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Here are common errors you will likely encounter when building your APIs:&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;MethodNotAllowedHttpException&lt;/li&gt;
&lt;li&gt;NotFoundHttpException&lt;/li&gt;
&lt;li&gt;BadMethodCallException&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;em&gt;&lt;strong&gt;In Laravel, all exceptions are properly handled in the:&lt;br&gt;
\app\Exceptions\Handler.php.&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;After Locating the path, you will find the render method, inside the method, all exceptions should be written there.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1.MethodNotAllowedHttpException&lt;/strong&gt; usually occurs when you're trying to POST to a GET route or you're trying to GET from a POST route or similar&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Popular error:&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F1m3249oiz03xwadn33wv.PNG" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F1m3249oiz03xwadn33wv.PNG" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Solution:&lt;/strong&gt;&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight php"&gt;&lt;code&gt;

&lt;span class="kn"&gt;use&lt;/span&gt; &lt;span class="nc"&gt;Symfony\Component\HttpKernel\Exception\MethodNotAllowedHttpException&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="k"&gt;public&lt;/span&gt; &lt;span class="k"&gt;function&lt;/span&gt; &lt;span class="n"&gt;render&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;$request&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="kt"&gt;Throwable&lt;/span&gt; &lt;span class="nv"&gt;$exception&lt;/span&gt;&lt;span class="p"&gt;){&lt;/span&gt;
        &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;$exception&lt;/span&gt; &lt;span class="k"&gt;instanceof&lt;/span&gt; &lt;span class="nc"&gt;MethodNotAllowedHttpException&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="p"&gt;{&lt;/span&gt;
            &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nf"&gt;response&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;json&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;
                &lt;span class="s1"&gt;'success'&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
                &lt;span class="s1"&gt;'message'&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="s1"&gt;'This Method is not allowed for the 
                   requested route'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
                &lt;span class="s1"&gt;'status'&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="s1"&gt;'405'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
            &lt;span class="p"&gt;],&lt;/span&gt; &lt;span class="mi"&gt;405&lt;/span&gt; &lt;span class="p"&gt;);&lt;/span&gt;
        &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;2.NotFoundHttpException&lt;/strong&gt;  in Laravel always means that it was not able to find a router for a particular URL&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Popular error:&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3bzytdjkl5d6o50rk1x5.PNG" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3bzytdjkl5d6o50rk1x5.PNG" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Solution:&lt;/strong&gt;&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight php"&gt;&lt;code&gt;

&lt;span class="kn"&gt;use&lt;/span&gt; &lt;span class="nc"&gt;Symfony\Component\HttpKernel\Exception\NotFoundHttpException&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="k"&gt;public&lt;/span&gt; &lt;span class="k"&gt;function&lt;/span&gt; &lt;span class="n"&gt;render&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;$request&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="kt"&gt;Throwable&lt;/span&gt; &lt;span class="nv"&gt;$exception&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
     &lt;span class="kt"&gt;if&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;$exception&lt;/span&gt; &lt;span class="k"&gt;instanceof&lt;/span&gt; &lt;span class="nc"&gt;NotFoundHttpException&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
            &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nf"&gt;response&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;json&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;
                &lt;span class="s1"&gt;'success'&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
                &lt;span class="s1"&gt;'message'&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="s1"&gt;'This Route is not found'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
                &lt;span class="s1"&gt;'status'&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="s1"&gt;'404'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
            &lt;span class="p"&gt;],&lt;/span&gt; &lt;span class="mi"&gt;404&lt;/span&gt; &lt;span class="p"&gt;);&lt;/span&gt;
        &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;3.BadMethodCallException&lt;/strong&gt; is thrown if a callback refers to an undefined method or if some arguments are missing.&lt;br&gt;
&lt;strong&gt;Solution:&lt;/strong&gt;&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight php"&gt;&lt;code&gt;

&lt;span class="k"&gt;public&lt;/span&gt; &lt;span class="k"&gt;function&lt;/span&gt; &lt;span class="n"&gt;render&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;$request&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="kt"&gt;Throwable&lt;/span&gt; &lt;span class="nv"&gt;$exception&lt;/span&gt;&lt;span class="p"&gt;){&lt;/span&gt;
      &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;$exception&lt;/span&gt; &lt;span class="k"&gt;instanceof&lt;/span&gt; &lt;span class="nc"&gt;\BadMethodCallException&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
            &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nf"&gt;response&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;json&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;
                &lt;span class="s1"&gt;'success'&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
                &lt;span class="s1"&gt;'message'&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="s1"&gt;'Bad Method Called'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
                &lt;span class="s1"&gt;'status'&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="s1"&gt;'404'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
            &lt;span class="p"&gt;],&lt;/span&gt; &lt;span class="mi"&gt;404&lt;/span&gt; &lt;span class="p"&gt;);&lt;/span&gt;
        &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;&lt;em&gt;&lt;strong&gt;NOTE: There should not be multiple render methods. Just one! You put all your exceptions inside one render method&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;I hope this short article has been helpful to you? Kindly add more exceptions if you know of any other ones. &lt;/p&gt;

</description>
      <category>php</category>
      <category>laravel</category>
      <category>exceptions</category>
    </item>
    <item>
      <title>Laravel Custom Login Validation with Ajax</title>
      <dc:creator>Adeyemi Adeshina </dc:creator>
      <pubDate>Sat, 08 Jan 2022 16:17:29 +0000</pubDate>
      <link>https://dev.to/iamadeyemiadex/laravel-custom-login-validation-with-ajax-3155</link>
      <guid>https://dev.to/iamadeyemiadex/laravel-custom-login-validation-with-ajax-3155</guid>
      <description>&lt;p&gt;Laravel is arguably the most used and popular PHP Framework for Web Artisans. &lt;/p&gt;

&lt;p&gt;Laravel has its own in-built functionality for Auth (User Registration and Login). If you think you feel satisfied with the in-built functionality, you can make use of it and your application will work well. But, if you want to go further to have your own custom Auth function, this article is for you. Let's get started!&lt;/p&gt;

&lt;p&gt;In this article, I will be showing you how you can write custom login form validation and authentication without reloading the browser. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;STEP 1: Create Users&lt;/strong&gt;&lt;br&gt;
I want to assume you already have users created in your users database table.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;STEP 2: Create Login Page&lt;/strong&gt;&lt;br&gt;
This our our short code for our login page view&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;

&amp;lt;body&amp;gt;
&amp;lt;div class="col-lg-4 col-md-4"&amp;gt;
   &amp;lt;form action="{{ route('login') }}" method="POST"  id="login_form" 
   class="request-form "&amp;gt;
    @csrf
   &amp;lt;h2&amp;gt;Login&amp;lt;/h2&amp;gt;
   &amp;lt;div id="show_error" style="color: red"&amp;gt; &amp;lt;/div&amp;gt;

   &amp;lt;div class="form-group mr-2"&amp;gt;
      &amp;lt;label for="" class="label"&amp;gt;Email&amp;lt;/label&amp;gt;
      &amp;lt;input type="email" name="email" class="form-control" &amp;gt;
      &amp;lt;span class="text-danger error-text email_error" 
       style="color: red"&amp;gt;&amp;lt;/span&amp;gt;
   &amp;lt;/div&amp;gt;

   &amp;lt;div class="form-group mr-2"&amp;gt;
      &amp;lt;label for="" class="label"&amp;gt;Password&amp;lt;/label&amp;gt;
      &amp;lt;input type="password" name="password" class="form-control" 
      &amp;gt;
      &amp;lt;span class="text-danger error-text password_error" 
      style="color: red"&amp;gt;&amp;lt;/span&amp;gt;
   &amp;lt;/div&amp;gt;

   &amp;lt;div class="form-group"&amp;gt;
   &amp;lt;input type="submit" value="Login" class="btn  py-3 px-4" 
   style="background-color: #5f76e8; color:#ffffff"&amp;gt;
   &amp;lt;/div&amp;gt;
  &amp;lt;/form&amp;gt;
&amp;lt;/div&amp;gt;
//add javascript with ajax here
&amp;lt;script src="[place you jquery source here...]"&amp;gt;&amp;lt;/script&amp;gt;
&amp;lt;script&amp;gt;
        $("#login_form").submit(function(e){
         e.preventDefault();

        var all = $(this).serialize();

        $.ajax({
            url:  $(this).attr('action'),
            type: "POST",
            data: all,
            beforeSend:function(){
                $(document).find('span.error-text').text('');
            },
            //validate form with ajax. This will be communicating 
              with your LoginController
            success: function(data){
                if (data.status==0) {
                    $.each(data.error, function(prefix, val){
                        $('span.'+prefix+'_error').text(val[0]);
                    });
                }
               // redirect the user to [another page] if the 
                   login cred are correct. Remember this is 
                   communicating with the LoginController which we 
                   are yet to create
                if(data == 1){
                    window.location.replace(
                     '{{route("dashboard.index")}}'
                    );
                }else if(data == 2){
                 // Show the user authentication error if the 
                   login cred are invalid. Remember this is 
                   communicating with the LoginController which we 
                   are yet to create
                    $("#show_error").hide().html("Invalid login 
                       details");
                }

            }
            })

        });


    &amp;lt;/script&amp;gt;
&amp;lt;/body&amp;gt;





&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;Login View Sample : login.blade.php&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Flhchi1ir12j46htftibf.PNG" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Flhchi1ir12j46htftibf.PNG" alt="Laravel Custom Login Page Validation with Ajax "&gt;&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;NOTE:&lt;/strong&gt; You can customize this to your desire&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;STEP 3: Create LoginController&lt;/strong&gt;&lt;br&gt;
     &lt;em&gt;Open your command prompt  interface, cd to your project &lt;br&gt;
     directory and paste the below command there&lt;/em&gt;&lt;br&gt;
     &lt;code&gt;php artisan make:controller LoginController&lt;/code&gt;&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt; namespace App\Http\Controllers;
 use Illuminate\Support\Facades\Auth;
 use Illuminate\Http\Request;
 use Illuminate\Support\Facades\Session;
 use Illuminate\Support\Facades\Validator;
   class LoginController extends Controller{
      public function login(Request $request){
        $validator = Validator::make($request-&amp;gt;all(), [
        'email' =&amp;gt;    'required',
        'password' =&amp;gt; 'required',
      ]);
       // validate all requests and it sends output to your 
          login.blade.php

       if(!$validator-&amp;gt;passes()){
          return response()-&amp;gt;json([
             'status'=&amp;gt;0, 
             'error'=&amp;gt;$validator-&amp;gt;errors()-&amp;gt;toArray()
          ]);
        }

       $user_cred = $request-&amp;gt;only('email', 'password');
        if (Auth::attempt($user_cred)) {

             //if user is logged in and the role is user
            if(Auth()-&amp;gt;user()-&amp;gt;role=='user'){  
               return response()-&amp;gt;json([ [1] ]);
            }  

        }else{
             //if user isn't logged in
                return response()-&amp;gt;json([ [2] ]);
        }
        return redirect("/");
     }
  }
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;STEP 4: Modify your route:web.php&lt;/strong&gt;&lt;br&gt;
&lt;em&gt;add your controller to your web.php; as the case maybe&lt;/em&gt;&lt;br&gt;
&lt;code&gt;Route::post('/login'[App\Http\Controllers\LoginController::class, 'login'])-&amp;gt;name('/login');&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Hello friends, in this article we successfully created a login form with Laravel and AJAX without reloading the browser. I hope you enjoy it. &lt;/p&gt;

</description>
      <category>laravel</category>
      <category>php</category>
      <category>javascript</category>
    </item>
    <item>
      <title>Chatwoot: The Better Way to Talk To Your Customers</title>
      <dc:creator>Adeyemi Adeshina </dc:creator>
      <pubDate>Sat, 02 Oct 2021 11:12:16 +0000</pubDate>
      <link>https://dev.to/iamadeyemiadex/chatwoot-the-better-way-to-talk-to-your-customers-8gd</link>
      <guid>https://dev.to/iamadeyemiadex/chatwoot-the-better-way-to-talk-to-your-customers-8gd</guid>
      <description>&lt;p&gt;All  paying and potential customers always want a swift and better way to communicate or engage with any company or business. Imagine a customer having some issues or concerns about doing your business with you and he wants to have some of his issues answered faster. &lt;/p&gt;

&lt;p&gt;A very poor and slower conversation may lead to loosing that customer and some other ones coming in. That's why customer engagement is one of the pillars of modern businesses to success.&lt;br&gt;
It's not enough to have a great product, every business must find a better way to talk to customers, and build bonds.&lt;/p&gt;

&lt;h1&gt;
  
  
  The Beauty of Chatwoot
&lt;/h1&gt;

&lt;p&gt;&lt;em&gt;By making it easier for customers to engage in ways they find valuable, you’ll strengthen their emotional investment in your brand. They will trust you more, and when they do, your business grows.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Yes, I know you have seen more than enough customer engagement platforms. I have seen them too, and I have used quite a number of them.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Chatwoot&lt;/strong&gt; is an open source customer engagement platform created to improve and properly structure conversations around B2B and P2B.&lt;/p&gt;

&lt;p&gt;Imagine your business having several social media engagement platforms such as Facebook, Instagram, Twitter, Whatsapp, Telegram etc. and all your customers send you messages via all these platforms. You will agree with me that managing conversations around all the platforms look so tedious, cumbersome and boring.  &lt;/p&gt;

&lt;p&gt;Rather than having to manage conversations everywhere, &lt;strong&gt;Chatwoot&lt;/strong&gt;, with its beautiful and easy to use dashborad, allows you to integrate all your social media platforms including your website seamlessly within few seconds. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Chatwoot&lt;/strong&gt; includes a live chat tool;  and out-of-the-box integrations with third-party platforms such as Slack, Shopify, Stripe and chatboot tools such as Rasa and DialogFlow.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How To Begin&lt;/strong&gt;&lt;br&gt;
&lt;strong&gt;1.&lt;/strong&gt; Go to the Registration page and enter your details&lt;br&gt;
&lt;a href="https://app.chatwoot.com/app/auth/signup" rel="noopener noreferrer"&gt;Register Here&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F1uvwy7ehqy5b300z6nid.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F1uvwy7ehqy5b300z6nid.png" alt="Register_image"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2.&lt;/strong&gt; After successful registration, you'll be redirected to your dashboard where you can integrate social media platforms and chat seamlessly. Remember to confirm your account in your registered email.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F342umpcnzx4ufv5pu8nk.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F342umpcnzx4ufv5pu8nk.png" alt="chat_integration"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://www.chatwoot.com/" rel="noopener noreferrer"&gt;Learn more about Chatwoot&lt;/a&gt;&lt;/p&gt;

</description>
      <category>chatwoot</category>
      <category>customers</category>
      <category>chatbot</category>
    </item>
    <item>
      <title>Formatting Dates in React Js with fns</title>
      <dc:creator>Adeyemi Adeshina </dc:creator>
      <pubDate>Wed, 22 Sep 2021 01:19:10 +0000</pubDate>
      <link>https://dev.to/iamadeyemiadex/formatting-dates-in-react-js-with-fns-2mpg</link>
      <guid>https://dev.to/iamadeyemiadex/formatting-dates-in-react-js-with-fns-2mpg</guid>
      <description>&lt;p&gt;If you are new to reactjs, you will agree with me that date format is quite different from that of core javascript where what is needed to do is just writing  a simple date object: &lt;code&gt;new Date()&lt;/code&gt;. &lt;/p&gt;

&lt;p&gt;However in the modern day JavaScript library which is reactjs, getting and formatting date is quite different. Though there are ways to format dates, but I will show you the simplest way you can go about it.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;1 &lt;strong&gt;install npm date-fns&lt;/strong&gt; in your project directory (root directory)
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;C:\MyProjects\react-project&amp;gt;npm install date-fns
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;2 &lt;strong&gt;use import { format } from 'date-fns'&lt;/strong&gt; within your component
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;import { format } from 'date-fns'
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;3 &lt;strong&gt;use the new Date() object&lt;/strong&gt; within your component&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Now, after doing &lt;strong&gt;2&lt;/strong&gt; and &lt;strong&gt;3&lt;/strong&gt; as mentioned above, you can then make use of the Date() and format it as you wish. For example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;{format ( new Date(), 'do MMMM Y')}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This will give us the current date. Example: &lt;em&gt;22 SEPTEMBER 2021&lt;/em&gt;&lt;/p&gt;

</description>
      <category>react</category>
      <category>javascript</category>
      <category>webdev</category>
      <category>tutorial</category>
    </item>
  </channel>
</rss>
