<?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: Adaobi Ezelioha </title>
    <description>The latest articles on DEV Community by Adaobi Ezelioha  (@adaobiezelioha).</description>
    <link>https://dev.to/adaobiezelioha</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%2F941302%2Fcfa03901-607c-4d7b-ad66-b092453292cf.jpeg</url>
      <title>DEV Community: Adaobi Ezelioha </title>
      <link>https://dev.to/adaobiezelioha</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/adaobiezelioha"/>
    <language>en</language>
    <item>
      <title>Implementing Tailwind CSS</title>
      <dc:creator>Adaobi Ezelioha </dc:creator>
      <pubDate>Sun, 30 Oct 2022 19:21:05 +0000</pubDate>
      <link>https://dev.to/adaobiezelioha/implementing-tailwind-css-10ml</link>
      <guid>https://dev.to/adaobiezelioha/implementing-tailwind-css-10ml</guid>
      <description>&lt;p&gt;Tailwind CSS is a utility-first CSS framework which means we can use utility classes to build custom designs without writing CSS as in traditional approach. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 1 -- Install Tailwind CSS&lt;/strong&gt;&lt;br&gt;
Install &lt;code&gt;tailwindcss&lt;/code&gt; and its peer dependencies via npm, and then run the init command to generate both &lt;code&gt;tailwind.config.js&lt;/code&gt; and &lt;code&gt;postcss.config.js&lt;/code&gt;.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;npm install -D tailwindcss postcss autoprefixer
npx tailwindcss init -p
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Sm2fAfr1--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/cdm4uskzl2bne58cmz8j.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Sm2fAfr1--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/cdm4uskzl2bne58cmz8j.png" alt="Image description" width="880" height="667"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 2 -- Configure your tempelate paths&lt;/strong&gt;&lt;br&gt;
Add the paths to all of your template files in your &lt;code&gt;tailwind.config.js&lt;/code&gt; file.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;content: [
    "./src/**/*.{js,jsx,ts,tsx}",
  ],
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--S5mWHdzn--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/dzbg4fgi17qk84qja33h.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--S5mWHdzn--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/dzbg4fgi17qk84qja33h.png" alt="Image description" width="866" height="657"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 3 -- Add the Tailwind directives to your CSS&lt;/strong&gt;&lt;br&gt;
Add the &lt;code&gt;@tailwind&lt;/code&gt; directives for each of Tailwind’s layers to your &lt;code&gt;./src/index.css&lt;/code&gt; file.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;@tailwind base;
@tailwind components;
@tailwind utilities;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--phMdSfy2--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/lcxq43ay6bkoq75d79l7.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--phMdSfy2--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/lcxq43ay6bkoq75d79l7.png" alt="Image description" width="880" height="484"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 4 -- Start your build process&lt;/strong&gt;&lt;br&gt;
Run your build process with &lt;code&gt;npm run start&lt;/code&gt; in your terminal and start using Tailwind’s utility classes to style your content.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;npm run start
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://tailwindcss.com/docs/guides/create-react-app"&gt;tailwindcss documentation&lt;/a&gt;&lt;/p&gt;

</description>
      <category>css</category>
      <category>opensource</category>
      <category>react</category>
      <category>hacktoberfest</category>
    </item>
    <item>
      <title>Implementing JsConfig in react app</title>
      <dc:creator>Adaobi Ezelioha </dc:creator>
      <pubDate>Sun, 30 Oct 2022 19:02:48 +0000</pubDate>
      <link>https://dev.to/adaobiezelioha/implementing-jsconfig-n5o</link>
      <guid>https://dev.to/adaobiezelioha/implementing-jsconfig-n5o</guid>
      <description>&lt;p&gt;Creating &lt;code&gt;jsconfig.json&lt;/code&gt; file in your project will make it easier to develop complex javascript applications that have a lot of different folders by using absolute paths. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 1&lt;/strong&gt; -- &lt;strong&gt;Creating jsconfig.json file&lt;/strong&gt;&lt;br&gt;
In the root directory of my project (ie the app folder), I created a new file named &lt;code&gt;jsconfig.json&lt;/code&gt; as shown below.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--2_YPuTgc--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/xm6eu8jfho7krhmxop86.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--2_YPuTgc--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/xm6eu8jfho7krhmxop86.png" alt="Image description" width="695" height="486"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 2&lt;/strong&gt; -- &lt;strong&gt;Configure the path&lt;/strong&gt;&lt;br&gt;
In this jsconfig.json file, I added a &lt;code&gt;compilerOptions&lt;/code&gt; key and set the &lt;code&gt;baseUrl&lt;/code&gt; to &lt;code&gt;src&lt;/code&gt;. You can also include an &lt;code&gt;include&lt;/code&gt; key and set it to &lt;code&gt;src&lt;/code&gt; array. That's all&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;{
    "compilerOptions": {
        "baseUrl": "src"
    },
    "include": ["src"]
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--eyEkSqJw--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/orzc4ow4a1j9ptem8gi0.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--eyEkSqJw--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/orzc4ow4a1j9ptem8gi0.png" alt="Image description" width="704" height="473"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>react</category>
      <category>javascript</category>
      <category>webdev</category>
      <category>beginners</category>
    </item>
    <item>
      <title>Stutern Housemanship - Handout Documentation by Adaobi Ezelioha</title>
      <dc:creator>Adaobi Ezelioha </dc:creator>
      <pubDate>Thu, 20 Oct 2022 15:45:13 +0000</pubDate>
      <link>https://dev.to/adaobiezelioha/stutern-housemanship-handout-documentation-by-adaobi-ezelioha-8fi</link>
      <guid>https://dev.to/adaobiezelioha/stutern-housemanship-handout-documentation-by-adaobi-ezelioha-8fi</guid>
      <description>&lt;h2&gt;
  
  
  Task 1- Implementing JsConfig to Handout Project
&lt;/h2&gt;

&lt;p&gt;Creating &lt;code&gt;jsconfig.json&lt;/code&gt; file in your project will make it easier to develop complex javascript applications that have a lot of different folders by using absolute paths. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 1&lt;/strong&gt; -- &lt;strong&gt;Creating jsconfig.json file&lt;/strong&gt;&lt;br&gt;
In the root directory of my project (ie the app folder), I created a new file named &lt;code&gt;jsconfig.json&lt;/code&gt; as shown below.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--2_YPuTgc--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/xm6eu8jfho7krhmxop86.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--2_YPuTgc--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/xm6eu8jfho7krhmxop86.png" alt="Image description" width="695" height="486"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 2&lt;/strong&gt; -- &lt;strong&gt;Configure the path&lt;/strong&gt;&lt;br&gt;
In this jsconfig.json file, I added a &lt;code&gt;compilerOptions&lt;/code&gt; key and set the &lt;code&gt;baseUrl&lt;/code&gt; to &lt;code&gt;src&lt;/code&gt;. You can also include an &lt;code&gt;include&lt;/code&gt; key and set it to &lt;code&gt;src&lt;/code&gt; array. That's all&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;{
    "compilerOptions": {
        "baseUrl": "src"
    },
    "include": ["src"]
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--eyEkSqJw--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/orzc4ow4a1j9ptem8gi0.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--eyEkSqJw--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/orzc4ow4a1j9ptem8gi0.png" alt="Image description" width="704" height="473"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Task 2 - Implementing Tailwind CSS
&lt;/h2&gt;

&lt;p&gt;Tailwind CSS is a utility-first CSS framework which means we can use utility classes to build custom designs without writing CSS as in traditional approach. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 1 -- Install Tailwind CSS&lt;/strong&gt;&lt;br&gt;
Install &lt;code&gt;tailwindcss&lt;/code&gt; and its peer dependencies via npm, and then run the init command to generate both &lt;code&gt;tailwind.config.js&lt;/code&gt; and &lt;code&gt;postcss.config.js&lt;/code&gt;.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;npm install -D tailwindcss postcss autoprefixer
npx tailwindcss init -p
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Sm2fAfr1--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/cdm4uskzl2bne58cmz8j.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Sm2fAfr1--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/cdm4uskzl2bne58cmz8j.png" alt="Image description" width="880" height="667"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 2 -- Configure your tempelate paths&lt;/strong&gt;&lt;br&gt;
Add the paths to all of your template files in your &lt;code&gt;tailwind.config.js&lt;/code&gt; file.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;content: [
    "./src/**/*.{js,jsx,ts,tsx}",
  ],
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--S5mWHdzn--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/dzbg4fgi17qk84qja33h.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--S5mWHdzn--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/dzbg4fgi17qk84qja33h.png" alt="Image description" width="866" height="657"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 3 -- Add the Tailwind directives to your CSS&lt;/strong&gt;&lt;br&gt;
Add the &lt;code&gt;@tailwind&lt;/code&gt; directives for each of Tailwind’s layers to your &lt;code&gt;./src/index.css&lt;/code&gt; file.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;@tailwind base;
@tailwind components;
@tailwind utilities;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--phMdSfy2--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/lcxq43ay6bkoq75d79l7.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--phMdSfy2--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/lcxq43ay6bkoq75d79l7.png" alt="Image description" width="880" height="484"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 4 -- Start your build process&lt;/strong&gt;&lt;br&gt;
Run your build process with &lt;code&gt;npm run start&lt;/code&gt; in your terminal and start using Tailwind’s utility classes to style your content.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;npm run start
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://tailwindcss.com/docs/guides/create-react-app"&gt;tailwindcss documentation&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Task 3 —Implementing layout and functionality for forgot password pages 1 &amp;amp; 2
&lt;/h2&gt;

&lt;p&gt;This was to implement the page where users who forgot their password will be routed, to get a confirmation in their mail to get a new password.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 1--&lt;/strong&gt; I created two components in the pages folder and named them &lt;code&gt;ForgotPassword&lt;/code&gt; and &lt;code&gt;ForgotPassword2&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 2--&lt;/strong&gt; I added the both components to the &lt;code&gt;NonAuthRoutes&lt;/code&gt; object in the &lt;code&gt;url.jsx&lt;/code&gt; component using the below lines of code&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;ForgotPassword: "/forgot-password",
ForgotPassword2: "/forgot-password2",
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Step 3--&lt;/strong&gt; I routed the forgot password link in the login component to the ForgotPassword component using link from react-router-dom after it was imported using the code below.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;import { Link } from "react-router-dom";
&amp;lt;Link
to="/forgot-password"
className=" text-[#424242] underline my-[16px] "
&amp;gt;
Forgot Password
&amp;lt;/Link&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Step 4--&lt;/strong&gt; I designed the layout with tailwind and routed the continue button (with a &lt;code&gt;handleclick&lt;/code&gt; function) to the ForgotPassword2 component that displays that a mail have been sent to confirm the request using the code below.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;const handleClick = () =&amp;gt; {
navigate("/forgot-password2");
};
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;However, to use the &lt;code&gt;navigate&lt;/code&gt; in the function, &lt;code&gt;useNavigate&lt;/code&gt; was imported and stored in a variable so it can always be invoked using the code below&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;import { useNavigate } from "react-router-dom";
const navigate = useNavigate();
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Step 5--&lt;/strong&gt; The okay button in the &lt;code&gt;ForgotPassword2&lt;/code&gt; was now routed to the login page as password must have been sent to the user’s mail already. I used an &lt;code&gt;onClick&lt;/code&gt; attribute on the button and attached a &lt;code&gt;handleClick&lt;/code&gt; function.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;const handleClick = () =&amp;gt; {
navigate("/login");
};
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Step 6--&lt;/strong&gt; Finally, I did the responsive design for mobile screen with tailwind.&lt;/p&gt;

</description>
      <category>stuternhousemanship</category>
      <category>stutern</category>
      <category>jsconfig</category>
      <category>frontend</category>
    </item>
  </channel>
</rss>
