<?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: ziontutorial</title>
    <description>The latest articles on DEV Community by ziontutorial (@ziontutorial).</description>
    <link>https://dev.to/ziontutorial</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%2F222866%2F552601c5-0fbb-4304-9de3-3e1aaff24d8e.jpg</url>
      <title>DEV Community: ziontutorial</title>
      <link>https://dev.to/ziontutorial</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/ziontutorial"/>
    <language>en</language>
    <item>
      <title>MERN role-based app | Node js backend</title>
      <dc:creator>ziontutorial</dc:creator>
      <pubDate>Tue, 04 Mar 2025 08:22:31 +0000</pubDate>
      <link>https://dev.to/ziontutorial/mern-role-based-app-node-js-4j3p</link>
      <guid>https://dev.to/ziontutorial/mern-role-based-app-node-js-4j3p</guid>
      <description>&lt;p&gt;index.js&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;import express from "express";
import cors from "cors";
import session from "express-session";
import dotenv from "dotenv";
import db from "./config/Database.js";
// import SequelizeStore from "connect-session-sequelize";
import UserRoute from "./routes/UserRoute.js";
import ProductRoute from "./routes/ProductRoute.js";
import AuthRoute from "./routes/AuthRoute.js";
dotenv.config();

const app = express();

// const sessionStore = SequelizeStore(session.Store);

// const store = new sessionStore({
//     db: db
// });

// (async()=&amp;gt;{
//     await db.sync();
// })();


app.use(session({
    secret: process.env.SESS_SECRET,
    resave: false,
    saveUninitialized: true,
    // store: store,
    cookie: {
        secure: 'auto'
    }
}));

app.use(cors({
    credentials: true,
    origin: 'http://localhost:3000'
}));
app.use(express.json());
app.use(UserRoute);
app.use(ProductRoute);
app.use(AuthRoute);
// store.sync();


app.listen(process.env.APP_PORT, ()=&amp;gt; {
    console.log('Server up and running...');
});

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

&lt;/div&gt;



&lt;h1&gt;
  
  
  Routes
&lt;/h1&gt;

&lt;h3&gt;
  
  
  UserRoute.js
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;import express from "express";
import {
    getUsers,
    getUserById,
    createUser,
    updateUser,
    deleteUser
} from "../controllers/Users.js";
import { verifyUser, adminOnly } from "../middleware/AuthUser.js";

const router = express.Router();

router.get('/users', verifyUser, getUsers);
router.get('/users/:id', verifyUser, getUserById);
router.post('/users', createUser);
router.patch('/users/:id', verifyUser, updateUser);
router.delete('/users/:id', verifyUser, deleteUser);

export default router;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h1&gt;
  
  
  Product Route
&lt;/h1&gt;

&lt;h3&gt;
  
  
  Productroute.js
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;import express from "express";
import {
    getProducts,
    getProductById,
    createProduct,
    updateProduct,
    deleteProduct
} from "../controllers/Products.js";
import { verifyUser } from "../middleware/AuthUser.js";

const router = express.Router();

router.get('/products',verifyUser, getProducts);
router.get('/products/:id',verifyUser, getProductById);
router.post('/products',verifyUser, createProduct);
router.patch('/products/:id',verifyUser, updateProduct);
router.delete('/products/:id',verifyUser, deleteProduct);

export default router;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h1&gt;
  
  
  AuthRoute
&lt;/h1&gt;

&lt;h3&gt;
  
  
  authroute.js
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;import express from "express";
import {Login, logOut, Me} from "../controllers/Auth.js";

const router = express.Router();

router.get('/me', Me);
router.post('/login', Login);
router.delete('/logout', logOut);

export default router;

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

&lt;/div&gt;



&lt;h1&gt;
  
  
  Model
&lt;/h1&gt;

&lt;h3&gt;
  
  
  UserModel.js
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;import { Sequelize } from "sequelize";
import db from "../config/Database.js";

const {DataTypes} = Sequelize;

const Users = db.define('users',{
    uuid:{
        type: DataTypes.STRING,
        defaultValue: DataTypes.UUIDV4,
        allowNull: false,
        validate:{
            notEmpty: true
        }
    },
    name:{
        type: DataTypes.STRING,
        allowNull: false,
        validate:{
            notEmpty: true,
            len: [3, 100]
        }
    },
    email:{
        type: DataTypes.STRING,
        allowNull: false,
        validate:{
            notEmpty: true,
            isEmail: true
        }
    },
    password:{
        type: DataTypes.STRING,
        allowNull: false,
        validate:{
            notEmpty: true
        }
    },
    role:{
        type: DataTypes.STRING,
        allowNull: false,
        validate:{
            notEmpty: true
        }
    }
},{
    freezeTableName: true
});

export default Users;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  ProductModel.js
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;import { Sequelize } from "sequelize";
import db from "../config/Database.js";
import Users from "./UserModel.js";

const {DataTypes} = Sequelize;

const Products = db.define('product',{
    uuid:{
        type: DataTypes.STRING,
        defaultValue: DataTypes.UUIDV4,
        allowNull: false,
        validate:{
            notEmpty: true
        }
    },
    name:{
        type: DataTypes.STRING,
        allowNull: false,
        validate:{
            notEmpty: true,
            len: [3, 100]
        }
    },
    price:{
        type: DataTypes.INTEGER,
        allowNull: false,
        validate:{
            notEmpty: true
        }
    },
    userId:{
        type: DataTypes.INTEGER,
        allowNull: false,
        validate:{
            notEmpty: true
        }
    }
},{
    freezeTableName: true
});

Users.hasMany(Products);
Products.belongsTo(Users, {foreignKey: 'userId'});

export default Products;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h1&gt;
  
  
  Middleware
&lt;/h1&gt;

&lt;h3&gt;
  
  
  Authmiddleware.js
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;import User from "../models/UserModel.js";

export const verifyUser = async (req, res, next) =&amp;gt;{
    if(!req.session.userId){
        return res.status(401).json({msg: "Please login to your account!"});
    }
    const user = await User.findOne({
        where: {
            uuid: req.session.userId
        }
    });
    if(!user) return res.status(404).json({msg: "User not found"});
    req.userId = user.id;
    req.role = user.role; 
    next();
}



export const adminOnly = async (req, res, next) =&amp;gt;{
    const user = await User.findOne({
        where: {
            uuid: req.session.userId
        }
    });
    if(!user) return res.status(404).json({msg: "User not found"});
    if(user.role !== "admin") return res.status(403).json({msg: "Access prohibited"});
    next();
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h1&gt;
  
  
  Controller
&lt;/h1&gt;

&lt;h3&gt;
  
  
  User.js
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;import User from "../models/UserModel.js";

export const verifyUser = async (req, res, next) =&amp;gt;{
    if(!req.session.userId){
        return res.status(401).json({msg: "Please login to your account!"});
    }
    const user = await User.findOne({
        where: {
            uuid: req.session.userId
        }
    });
    if(!user) return res.status(404).json({msg: "User not found"});
    req.userId = user.id;
    req.role = user.role; 
    next();
}



export const adminOnly = async (req, res, next) =&amp;gt;{
    const user = await User.findOne({
        where: {
            uuid: req.session.userId
        }
    });
    if(!user) return res.status(404).json({msg: "User not found"});
    if(user.role !== "admin") return res.status(403).json({msg: "Access prohibited"});
    next();
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Products.js
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;import Product from "../models/ProductModel.js";
import User from "../models/UserModel.js";
import { Op } from "sequelize";

export const getProducts = async (req, res) =&amp;gt; {
    try {
        let response;
        if (req.role === "admin") {
            response = await Product.findAll({
                attributes: ['uuid', 'name', 'price'],
                include: [{
                    model: User,
                    attributes: ['name', 'email']
                }]
            });
        } else {
            response = await Product.findAll({
                attributes: ['uuid', 'name', 'price'],
                where: {
                    userId: req.userId
                },
                include: [{
                    model: User,
                    attributes: ['name', 'email']
                }]
            });
        }
        res.status(200).json(response);
    } catch (error) {
        res.status(500).json({ msg: error.message });
    }
}

export const getProductById = async (req, res) =&amp;gt; {
    try {
        const product = await Product.findOne({
            where: {
                uuid: req.params.id
            }
        });
        if (!product) return res.status(404).json({ msg: "Data tidak ditemukan" });
        let response;
        if (req.role === "admin") {
            response = await Product.findOne({
                attributes: ['uuid', 'name', 'price'],
                where: {
                    id: product.id
                },
                include: [{
                    model: User,
                    attributes: ['name', 'email']
                }]
            });
        } else {
            response = await Product.findOne({
                attributes: ['uuid', 'name', 'price'],
                where: {
                    [Op.and]: [{ id: product.id }, { userId: req.userId }]
                },
                include: [{
                    model: User,
                    attributes: ['name', 'email']
                }]
            });
        }
        res.status(200).json(response);
    } catch (error) {
        res.status(500).json({ msg: error.message });
    }
}

export const createProduct = async (req, res) =&amp;gt; {
    const { name, price } = req.body;
    try {
        await Product.create({
            name: name,
            price: price,
            userId: req.userId
        });
        res.status(201).json({ msg: "Product Created Successfuly" });
    } catch (error) {
        res.status(500).json({ msg: error.message });
    }
}

export const updateProduct = async (req, res) =&amp;gt; {
    try {
        const product = await Product.findOne({
            where: {
                uuid: req.params.id
            }
        });
        if (!product) return res.status(404).json({ msg: "Data tidak ditemukan" });
        const { name, price } = req.body;
        if (req.role === "admin") {
            await Product.update({ name, price }, {
                where: {
                    id: product.id
                }
            });
        } else {
            if (req.userId !== product.userId) return res.status(403).json({ msg: "Akses terlarang" });
            await Product.update({ name, price }, {
                where: {
                    [Op.and]: [{ id: product.id }, { userId: req.userId }]
                }
            });
        }
        res.status(200).json({ msg: "Product updated successfuly" });
    } catch (error) {
        res.status(500).json({ msg: error.message });
    }
}

export const deleteProduct = async (req, res) =&amp;gt; {
    try {
        const product = await Product.findOne({
            where: {
                uuid: req.params.id
            }
        });
        if (!product) return res.status(404).json({ msg: "Data tidak ditemukan" });
        const { name, price } = req.body;
        if (req.role === "admin") {
            await Product.destroy({
                where: {
                    id: product.id
                }
            });
        } else {
            if (req.userId !== product.userId) return res.status(403).json({ msg: "Akses terlarang" });
            await Product.destroy({
                where: {
                    [Op.and]: [{ id: product.id }, { userId: req.userId }]
                }
            });
        }
        res.status(200).json({ msg: "Product deleted successfuly" });
    } catch (error) {
        res.status(500).json({ msg: error.message });
    }
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Auth.js
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;import User from "../models/UserModel.js";
import argon2 from "argon2";

export const Login = async (req, res) =&amp;gt;{
    const user = await User.findOne({
        where: {
            email: req.body.email
        }
    });
    if(!user) return res.status(404).json({msg: "User not found"});
    const match = await argon2.verify(user.password, req.body.password);
    if(!match) return res.status(400).json({msg: "Wrong Password"});
    req.session.userId = user.uuid;
    const uuid  =  user.uuid;
    const name  =  user.name;
    const email =  user.email;
    const role  =  user.role;
    res.status(200).json({uuid, name, email, role});
}

export const Me = async (req, res) =&amp;gt;{
    if(!req.session.userId){
        return res.status(401).json({msg: "Please login to your account!!"});
    }
    const user = await User.findOne({
        attributes:['uuid','name','email','role'],
        where: {
            uuid: req.session.userId
        }
    });
    if(!user) return res.status(404).json({msg: "User not found"});
    res.status(200).json(user);
}
export const logOut = (req, res) =&amp;gt;{
    req.session.destroy((err)=&amp;gt;{
        if(err) return res.status(400).json({msg: "Cannot log out"});
        res.status(200).json({msg: "You have logged out"});
    });
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h1&gt;
  
  
  Config
&lt;/h1&gt;

&lt;h3&gt;
  
  
  Database.js
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;import {Sequelize} from "sequelize";

const db = new Sequelize('auth_db', 'root', '', {
    host: "localhost",
    dialect: "mysql"
});

export default db;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h1&gt;
  
  
  pakage.json
&lt;/h1&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;{
  "name": "backend",
  "version": "1.0.0",
  "description": "",
  "type": "module",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" &amp;amp;&amp;amp; exit 1"
  },
  "keywords": [],
  "author": "",
  "license": "ISC",
  "dependencies": {
    "argon2": "^0.28.7",
    "connect-session-sequelize": "^7.1.4",
    "cors": "^2.8.5",
    "dotenv": "^16.0.1",
    "express": "^4.18.1",
    "express-session": "^1.17.3",
    "mysql2": "^2.3.3",
    "sequelize": "^6.21.3"
  }
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



</description>
    </item>
    <item>
      <title>how-to-make-login-page-like-twitter-using-react-js-sign-in-page-design-with-react-js/</title>
      <dc:creator>ziontutorial</dc:creator>
      <pubDate>Thu, 23 Jan 2025 17:51:08 +0000</pubDate>
      <link>https://dev.to/ziontutorial/how-to-make-login-page-like-twitter-using-react-js-sign-in-page-design-with-react-js-2f8c</link>
      <guid>https://dev.to/ziontutorial/how-to-make-login-page-like-twitter-using-react-js-sign-in-page-design-with-react-js-2f8c</guid>
      <description>&lt;p&gt;&lt;a href="https://media2.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%2F1ln41k7e9rtkwaa9eddg.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.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%2F1ln41k7e9rtkwaa9eddg.png" alt="Image description" width="800" height="450"&gt;&lt;/a&gt;&lt;br&gt;
In this article, we will guide you through the process of designing a stunning Twitter Login Clone using react js. You'll learn the best practices for creating a user-friendly and responsive login page, as well as how to implement essential design elements to make your login page stand out. By the end of this article, you'll have a step-by-step guide to building a customizable and visually appealing Twitter log in page clone using React js.&lt;/p&gt;

&lt;p&gt;The goal of this tutorial is to introduce developers to the React.js library.The reader should be familiar with the fundamental web development technologies, such as:&lt;/p&gt;

&lt;p&gt;Basics for HTML and CSS&lt;/p&gt;

&lt;p&gt;Javascript&lt;/p&gt;

&lt;p&gt;Basics of React.js in ES6&lt;/p&gt;

&lt;p&gt;What we will Learn&lt;/p&gt;

&lt;p&gt;Here we will learn how to design a Twitter login clone using react. we will learn to code a simple Twitter login clone using the React.js library. The workflow of the app is the same as the previous blog.If you have not read that blog kindly follow the link .&lt;/p&gt;

&lt;p&gt;Popular article: Counter app using react js&lt;/p&gt;

&lt;p&gt;Folder structure&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.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%2Fbltdeuui4b41ikwhswxz.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.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%2Fbltdeuui4b41ikwhswxz.png" alt="Image description" width="261" height="738"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Install React&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;After the successful installation of Nodejs, install and set up a React app using the below command.&lt;br&gt;
&lt;/p&gt;

&lt;p&gt;&lt;code&gt;npx create-react-app react-counter-app&lt;/code&gt;&lt;br&gt;
&lt;/p&gt;

&lt;p&gt;Then jump to that folder eg. if your folder name is react-counter-app the type&lt;br&gt;
&lt;/p&gt;

&lt;p&gt;&lt;code&gt;cd react-counter-app&lt;/code&gt;&lt;br&gt;
&lt;/p&gt;

&lt;p&gt;After that Go to the App.js file and start your coding part here we will define our state and functions which are required to increment and decrement our numbers.&lt;/p&gt;

&lt;p&gt;Let’s jump into the app.js part where all the logic of our application&lt;br&gt;
&lt;/p&gt;

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

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

&lt;/div&gt;



&lt;p&gt;let’s jump into our App.js where all the magic happens and we discuss our application markup here.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;import "./App.css";

function App() {
  return (
    &amp;lt;div className="logo-box"&amp;gt;
      &amp;lt;img src="./logo.png" alt="apple" className="logo" /&amp;gt;
      &amp;lt;h2&amp;gt;Sign In to Twitter&amp;lt;/h2&amp;gt;
      &amp;lt;button&amp;gt;
        &amp;lt;img src="./google.png" alt="apple" /&amp;gt;
        Sign in with Google
      &amp;lt;/button&amp;gt;
      &amp;lt;button&amp;gt;
        &amp;lt;img src="./apple.png" alt="apple" /&amp;gt;
        Sign in with Google
      &amp;lt;/button&amp;gt;
      &amp;lt;hr&amp;gt;&amp;lt;/hr&amp;gt;
      &amp;lt;span&amp;gt;Or&amp;lt;/span&amp;gt;
      &amp;lt;form&amp;gt;
        &amp;lt;input type="text" placeholder="Phone email or username" /&amp;gt;
        &amp;lt;button&amp;gt;Next&amp;lt;/button&amp;gt;
      &amp;lt;/form&amp;gt;
      &amp;lt;button&amp;gt;Forget Password&amp;lt;/button&amp;gt;
      &amp;lt;p&amp;gt;
        Don't Have an account&amp;lt;a&amp;gt;Sign up&amp;lt;/a&amp;gt;
      &amp;lt;/p&amp;gt;
    &amp;lt;/div&amp;gt;
  );
}

export default App;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  App.css
&lt;/h2&gt;

&lt;p&gt;Let's begin creating the CSS for our Twitter login clone that will completely transform the appearance of our application. We will be implementing the necessary styles to replicate the design of Twitter's login page, including the use of their distinctive blue color scheme and typography. There is the code just copy and paste it in your app.css file&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;* {
  margin: 0;
  padding: 0;
  font-family: "Poppins", sans-serif;
  box-sizing: border-box;
}

body {
  background: #3e65fe;
}

.logo-box {
  background: #fff;
  padding: 30px 120px;
  width: 550px;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  text-align: center;
  border-radius: 10px;
}

.logo {
  width: 30px;
  margin-bottom: 20px;
}
.logo-box h2 {
  margin-bottom: 20px;
}

.logo-box button img {
  width: 18px;
  margin-right: 10px;
}

.logo-box button {
  width: 100%;
  padding: 10px 0;
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 20px 0px;
  border-radius: 30px;
  background: transparent;
  border: 1px solid #999;
  font-weight: 500;
  cursor: pointer;
}

.logo-box hr {
  border: 0;
  height: 1px;
  background: #c2c2c2;
  margin: 5px;
}

.logo-box span {
  display: block;
  width: 40px;
  margin: auto;
  background: #fff;
  font-size: 14px;
  margin-top: -16px;
}
.logo-box input {
  width: 100%;
  background: transparent;
  border: 1px solid #999;
  outline: 0;
  padding: 15px 10px;
  border-radius: 4px;
}
::placeholder {
  font-weight: 500;
  color: #333;
}

.logo-box form button {
  background: #000;
  color: #fff;
  border: 0;
  margin-bottom: 15px;
}

.logo-box p {
  /* text-align: left; */
  font-size: 14px;
  color: #555;
  margin: 40px 0 50px;
}

.login-box p a {
  text-decoration: none;
  color: #359cf0;
  margin-left: 100px;
}


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

&lt;/div&gt;



&lt;p&gt;GitHub&lt;/p&gt;

&lt;p&gt;You can always refer to the GitHub repository to clone the project we have created.&lt;/p&gt;

&lt;p&gt;1.&lt;a href="https://github.com/tinkugupta5/Counter_app" rel="noopener noreferrer"&gt;https://github.com/tinkugupta5/Counter_app&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Conclusion&lt;/p&gt;

&lt;p&gt;We did it! ? Hope you like How To Make a Twitter Login Clone  Using React Js | Sign In Page Design With React Js. For such projects do visits and comment on which project should I cover next.&lt;/p&gt;

&lt;p&gt;Check out this BMI Calculator using react and hooks. Comment if you have any questions. Regarding this project, please comment in the comment box.&lt;/p&gt;

&lt;p&gt;Happy coding!&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Set Up Tailwind CSS in a React JS Project</title>
      <dc:creator>ziontutorial</dc:creator>
      <pubDate>Sun, 15 Dec 2024 09:31:45 +0000</pubDate>
      <link>https://dev.to/ziontutorial/set-up-tailwind-css-in-a-react-js-project-13gg</link>
      <guid>https://dev.to/ziontutorial/set-up-tailwind-css-in-a-react-js-project-13gg</guid>
      <description>&lt;p&gt;If you don’t have a React app already, create one:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;npx create-react-app my-app
cd my-app
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ol&gt;
&lt;li&gt;Install Tailwind CSS
Run the following command to install Tailwind CSS and its dependencies:
&lt;/li&gt;
&lt;/ol&gt;

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

&lt;/div&gt;



&lt;p&gt;Then initialize Tailwind CSS:&lt;br&gt;
&lt;/p&gt;

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

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

&lt;/div&gt;



&lt;p&gt;This will create a tailwind.config.js file in your project.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Configure Tailwind
Edit the tailwind.config.js file to configure the content paths. Replace the content key with the following:
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;/** @type {import('tailwindcss').Config} */
module.exports = {
  content: [
    "./src/**/*.{js,jsx,ts,tsx}", // Scan these files for Tailwind classes
  ],
  theme: {
    extend: {},
  },
  plugins: [],
};

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

&lt;/div&gt;



&lt;ol&gt;
&lt;li&gt;Add Tailwind Directives to CSS
In the src folder, locate or create a file called index.css. Add the following Tailwind directives:
&lt;/li&gt;
&lt;/ol&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;ol&gt;
&lt;li&gt;Import CSS in React
Ensure index.css is imported into your project. In the src/index.js file, you should have:
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;import './index.css';

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

&lt;/div&gt;



&lt;ol&gt;
&lt;li&gt;Start the Development Server
Run your React app to see Tailwind CSS in action:
&lt;/li&gt;
&lt;/ol&gt;

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

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

&lt;/div&gt;



</description>
      <category>webdev</category>
      <category>programming</category>
      <category>javascript</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>How to Make Responsive Login Form using Only React Js ✨🚀</title>
      <dc:creator>ziontutorial</dc:creator>
      <pubDate>Sat, 22 Jun 2024 06:34:45 +0000</pubDate>
      <link>https://dev.to/ziontutorial/how-to-make-responsive-login-form-using-only-react-js-26g0</link>
      <guid>https://dev.to/ziontutorial/how-to-make-responsive-login-form-using-only-react-js-26g0</guid>
      <description>&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%2Fjycojgntiejvhsgh53k6.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%2Fjycojgntiejvhsgh53k6.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;In this article we will design a &lt;strong&gt;Responsive Login Form using Only React Js&lt;/strong&gt;. I am Daman sure you all are familiar with this type of design. However i think there are many beginner who do not know &lt;a href="https://ziontutorial.com/how-to-create-responsive-login-form-using-only-react-js/" rel="noopener noreferrer"&gt;How to Make Responsive Login Form using Only React Js.&lt;/a&gt;  Hopefully this article will help you out.&lt;/p&gt;

&lt;p&gt;If you want you can watch the live demo with this &lt;a href="https://ziontutorial.com/how-to-make-google-login-form-design-using-html-css/" rel="noopener noreferrer"&gt;link&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Don't miss this article : &lt;a href="https://ziontutorial.com/how-to-make-google-login-form-design-using-html-css/" rel="noopener noreferrer"&gt;link&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;if you are a beginner do follow my steps what I am doing to &lt;strong&gt;&lt;a href="https://ziontutorial.com/how-to-make-google-login-form-design-using-html-css/" rel="noopener noreferrer"&gt;How to Make Responsive Login Form using Only React Js&lt;/a&gt;&lt;/strong&gt; .&lt;/p&gt;

&lt;p&gt;Download the source code : &lt;a href="https://ziontutorial.com/how-to-make-google-login-form-design-using-html-css/" rel="noopener noreferrer"&gt;link&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;App.js&lt;/strong&gt;&lt;/p&gt;

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

import React from 'react'

const App = () =&amp;gt; {
  return (
    &amp;lt;div className="container"&amp;gt;
      &amp;lt;div className="wrapper"&amp;gt;

        &amp;lt;div className="title"&amp;gt;
          &amp;lt;span&amp;gt;Welcome back&amp;lt;/span&amp;gt;
        &amp;lt;/div&amp;gt;
        &amp;lt;p className='title_para'&amp;gt;Please enter your details to sign in.&amp;lt;/p&amp;gt;

        &amp;lt;form action="#"&amp;gt;
          &amp;lt;div className="row"&amp;gt;
            {/* &amp;lt;i className="fas fa-user"&amp;gt;&amp;lt;/i&amp;gt; */}
            &amp;lt;input type="text" placeholder="Enter your email..." required /&amp;gt;
          &amp;lt;/div&amp;gt;
          &amp;lt;div className="row"&amp;gt;
            {/* &amp;lt;i className="fas fa-lock"&amp;gt;&amp;lt;/i&amp;gt; */}
            &amp;lt;input type="password" placeholder="Password" required /&amp;gt;
          &amp;lt;/div&amp;gt;
          &amp;lt;div className="pass"&amp;gt;&amp;lt;a href="#"&amp;gt;Forgot password?&amp;lt;/a&amp;gt;&amp;lt;/div&amp;gt;
          &amp;lt;div className="row button"&amp;gt;
            &amp;lt;input type="submit" value="Login" /&amp;gt;
          &amp;lt;/div&amp;gt;
          &amp;lt;div className="signup-link"&amp;gt;Not a member? &amp;lt;a href="#"&amp;gt;Signup now&amp;lt;/a&amp;gt;&amp;lt;/div&amp;gt;
        &amp;lt;/form&amp;gt;
      &amp;lt;/div&amp;gt;
    &amp;lt;/div&amp;gt;
  )
}

export default App


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

&lt;/div&gt;

&lt;p&gt;Now lets jump into css part where we write react js and css .&lt;br&gt;
&lt;strong&gt;App.css&lt;/strong&gt;&lt;/p&gt;

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

@import url('https://fonts.googleapis.com/css2?family=Inter:wght@100..900&amp;amp;display=swap');

* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
  font-family: "Inter", sans-serif;
}

body {
  background: #F2EFEF;
  overflow: hidden;
}

::selection {
  background: rgba(26, 188, 156, 0.3);
}

.container {
  max-width: 440px;
  padding: 0 20px;
  margin: 170px auto;
}

.wrapper {
  width: 100%;
  background: #fff;
  border-radius: 5px;
  /* box-shadow: 0px 4px 10px 1px rgba(0, 0, 0, 0.1); */
  box-shadow: rgba(149, 157, 165, 0.2) 0px 8px 24px;
}

.wrapper .title {
  height: 90px;
  background: #ffffff;
  border-radius: 5px 5px 0 0;
  color: #151515;
  font-size: 25px;
  font-weight: 600;
  display: flex;
  align-items: center;
  justify-content: center;
}

.title_para {
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
  bottom: 22px;
  color: #7e7e7e;
}

.wrapper form {
  padding: 10px 25px 34px 25px;
}

.wrapper form .row {
  height: 56px;
  margin-bottom: 15px;
  position: relative;
}

.wrapper form .row input {
  height: 100%;
  width: 100%;
  outline: none;
  padding-left: 20px;
  border-radius: 5px;
  border: 1px solid lightgrey;
  font-size: 16px;
  transition: all 0.3s ease;
}

form .row input:focus {
  border-color: #16a085;
  box-shadow: inset 0px 0px 2px 2px rgba(26, 188, 156, 0.25);
}

form .row input::placeholder {
  color: #999;
}

.wrapper form .row i {
  position: absolute;
  width: 47px;
  height: 100%;
  color: #fff;
  font-size: 18px;
  background: #16a085;
  border: 1px solid #16a085;
  border-radius: 5px 0 0 5px;
  display: flex;
  align-items: center;
  justify-content: center;
}

.wrapper form .pass {
  margin: 4px 4px 23px 4px;
}

.wrapper form .pass a {
  color: #16a085;
  font-size: 17px;
  text-decoration: none;
}

.wrapper form .pass a:hover {
  text-decoration: underline;
}

.wrapper form .button input {
  color: #fff;
  font-size: 20px;
  font-weight: 500;
  padding-left: 0px;
  background: #242526;
  border: 1px solid #141414;
  cursor: pointer;
}

form .button input:hover {
  background: #090909;
}

.wrapper form .signup-link {
  text-align: center;
  margin-top: 25px;
  /* font-size: 17px; */
  padding-right: 20px;
}

.wrapper form .signup-link a {
  color: #16a085;
  text-decoration: none;
}

form .signup-link a:hover {
  text-decoration: underline;
}



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

&lt;/div&gt;

&lt;p&gt;Conclusion&lt;br&gt;
I hope you enjoyed this little tutorial. Let me know over on&lt;/p&gt;

&lt;p&gt;Happy Coding! 😇&lt;/p&gt;

</description>
      <category>react</category>
      <category>html</category>
      <category>css</category>
      <category>javascript</category>
    </item>
    <item>
      <title>🧙‍♂️Weather Application using ReactJS | react mini project 🪄✨🚀</title>
      <dc:creator>ziontutorial</dc:creator>
      <pubDate>Wed, 08 May 2024 19:11:00 +0000</pubDate>
      <link>https://dev.to/ziontutorial/weather-application-using-reactjs-react-mini-project-2981</link>
      <guid>https://dev.to/ziontutorial/weather-application-using-reactjs-react-mini-project-2981</guid>
      <description>&lt;p&gt;Using the ReactJS Framework, In this React js weather application tutorial we will create an interactive weather application. The user will be able to access real-time weather information for the city they have searched for through the built application by consuming the api from &lt;a href="https://openweathermap.org/api"&gt;openweathermap&lt;/a&gt; .Also you can find the  &lt;a href="https://ziontutorial.com/weather-application-using-reactjs-react-mini-project/"&gt;React js weather application github code&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://ziontutorial.com/weather-application-using-reactjs-react-mini-project/"&gt;Live Demo&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://ziontutorial.com/weather-application-using-reactjs-react-mini-project/"&gt;Asset Link&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Let's take a peek at our finished product in an interactive manner | React js weather application example:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbmxebkf9ddjzfokfx6tv.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbmxebkf9ddjzfokfx6tv.png" alt="Image description" width="800" height="568"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Technologies Used/Pre-requisites:&lt;/p&gt;

&lt;p&gt;ReactJS&lt;br&gt;
&lt;a href="https://react.dev/"&gt;React js&lt;/a&gt;.&lt;br&gt;
&lt;a href="https://developer.mozilla.org/en-US/docs/Web/CSS"&gt;CSS&lt;/a&gt;.&lt;br&gt;
&lt;a href="https://react.dev/"&gt;JSX&lt;/a&gt;.&lt;br&gt;
&lt;a href="https://react.dev/"&gt;Function Components in React&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Method:&lt;/p&gt;

&lt;p&gt;The ReactJS Framework is used in the produced code to display the interactive Weather Application. Users of the programme can access real-time information about a variety of cities. We are retrieving the weather information for the city that the user has looked for with the aid of API. The application is fully responsive, and it responds quickly in terms of output. The user interface of the app is likewise user-friendly. &lt;/p&gt;

&lt;h1&gt;
  
  
  Project Structure:
&lt;/h1&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxcm2pohegluyz0xnvwvm.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxcm2pohegluyz0xnvwvm.png" alt="Image description" width="235" height="933"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Steps to create React Application And Installing Module&lt;br&gt;
Step 1: Create a React application using the following command:&lt;br&gt;
&lt;code&gt;npx  create-react-app  projectname&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;then jump to the directory&lt;br&gt;
&lt;code&gt;cd projectname&lt;/code&gt;&lt;br&gt;
Step 2: To run the application:&lt;br&gt;
&lt;code&gt;npm start&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Example: Insert the below code in the respective files.&lt;/p&gt;

&lt;p&gt;App.js: All the logic of this application for weather application i have write in the App.js file&lt;br&gt;
Index.css: You guys can also write the styling part in the index.css or app.css but in this application case we will write all the css code in the index.css file&lt;/p&gt;

&lt;h1&gt;
  
  
  App.js
&lt;/h1&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;import React, { useState } from "react";
import { useEffect } from "react";

function App() {
  const [city, setCity] = useState("Delhi");
  const [weatherData, setWeatherData] = useState(null);
  const [error, setError] = useState(null);

  const currentDate = new Date();

  const months = [
    "January", "February", "March", "April", "May", "June",
    "July", "August", "September", "October", "November", "December"
  ];

  const month = months[currentDate.getMonth()];
  const day = currentDate.getDate();
  const year = currentDate.getFullYear();

  const formattedDate = `${month} ${day}, ${year}`;

  const API_KEY = "bcda10ba323e88e96cb486015a104d1d"; // Replace 'YOUR_API_KEY' with your actual API key from OpenWeatherMap

  const fetchWeatherData = async () =&amp;gt; {
    try {
      const response = await fetch(
        `https://api.openweathermap.org/data/2.5/weather?q=${city}&amp;amp;appid=${API_KEY}&amp;amp;units=metric`
      );
      const data = await response.json();
      console.log(data)
      // if (response.ok) {
      setWeatherData(data);
      // setError(null);
      // } else {
      //   setError(data.message);
      //   setWeatherData(null);
      // }
    } catch (error) {
      console.error("Error fetching weather data:", error);
      // setError("Error fetching weather data. Please try again later.");
      // setWeatherData(null);
    }
  };

  useEffect(()=&amp;gt;{

  fetchWeatherData();

  },[])

  const handleInputChange = (event) =&amp;gt; {
    setCity(event.target.value);
  };

  const handleSubmit = (event) =&amp;gt; {
    event.preventDefault();
    fetchWeatherData();
  };

  const getWeatherIconUrl = (main) =&amp;gt; {
    switch (main) {
      case "Clear":
        return "/sun.png"; // Path to your sunny weather icon
      case "Rain":
        return "/icons/rainy.png"; // Path to your rainy weather icon
      case "Snow":
        return "/icons/snowy.png"; // Path to your snowy weather icon
      case "Haze":
        return "/sun.png"; // Path to your haze weather icon
      // Add more cases for other weather conditions as needed
      default:
        return null;
    }
  };


  return (
    &amp;lt;div className="App"&amp;gt;


      &amp;lt;div className="container"&amp;gt;
        {weatherData &amp;amp;&amp;amp; (
          &amp;lt;&amp;gt;
            &amp;lt;h1 className="container_date"&amp;gt;{formattedDate}&amp;lt;/h1&amp;gt;
            &amp;lt;div className="weather_data"&amp;gt;
              &amp;lt;h2 className="container_city"&amp;gt;{weatherData.name}&amp;lt;/h2&amp;gt;
              {/* &amp;lt;img className="container_img" src="/thunder.png" width="180px" alt="sss"/&amp;gt; */}
              &amp;lt;img className="container_img" src={getWeatherIconUrl(weatherData.weather[0].main)} width="180px" alt="Weather Icon" /&amp;gt;
              &amp;lt;h2 className="container_degree"&amp;gt;{weatherData.main.temp}&amp;lt;/h2&amp;gt;
              &amp;lt;h2 className="country_per"&amp;gt;{weatherData.weather[0].main}&amp;lt;span className="degree_icon"&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/h2&amp;gt;
              &amp;lt;form className="form" onSubmit={handleSubmit}&amp;gt;
                &amp;lt;input
                  type="text"
                  class="input"
                  placeholder="Enter city name"
                  value={city}
                  onChange={handleInputChange}
                  required
                /&amp;gt;
                &amp;lt;button type="submit"&amp;gt;Get&amp;lt;/button&amp;gt;
              &amp;lt;/form&amp;gt;
            &amp;lt;/div&amp;gt;
          &amp;lt;/&amp;gt;
        )}


      &amp;lt;/div&amp;gt;
    &amp;lt;/div&amp;gt;
  );
}

export default App; ```





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

&lt;/div&gt;
&lt;h1&gt;
  
  
  CSS ( INDEX.CSS )
&lt;/h1&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;

/* Google Font Link */
@import url('https://fonts.googleapis.com/css2?family=Inter:wght@100..900&amp;amp;display=swap');

*{
  margin: 0;
  padding: 0;
  box-sizing: border-box;
  font-family: "Inter", sans-serif;
  /* background: #0059FF; */
}

.container {
  background: #EDF0F6;
  background: linear-gradient(354deg, #137DF5 0%, #14B1F8 100%);
  /* padding: 30px 120px; */
  width: 320px;
  height: 600px;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  text-align: center;
  border-radius: 10px;
}

.container_date
{
  color: white;
  margin-top:76px;
  opacity: 47%;
  font-size: 22px;
  font-weight: 400;
}

.container_city
{
  margin-top: 1rem;
  font-size: 37px;
  font-weight: 700;
  color: white;

}

.container_degree{
  font-size: 50px;
  font-weight: 800;
  color: white;
  position: relative;
  top: -20px;
}

.container_img
{
  position: relative;
  top: -29px;
}

.degree_icon
{
  font-size: 20px;
}

.country_per
{
  position: relative;
  top: -15px;
  color: white;
  font-size: 18px;
}

.input {
  border: none;
  padding: 1rem;
  border-radius: 0px 0px 0px 15px;
  background: #e8e8e8;
  /* box-shadow: 20px 20px 60px #c5c5c5, -20px -20px 60px #ffffff; */
  transition: 0.3s;
  position: relative;
  top: -2px;
 }

 .input:focus {
  outline-color: #e8e8e8;
  background: #e8e8e8;
  box-shadow: inset 20px 20px 60px #e8e8e8,
     inset -20px -20px 60px #ffffff;
  transition: 0.3s;
 }

 /* button */

 button 
  {
    color: #090909;
    padding: 0.7em 0.7em;
    font-size: 18px;
    /* border-radius: 0.5em; */
    /* background: #e8e8e8; */
    cursor: pointer;
    border: 1px solid #e8e8e8;
    transition: all 0.3s;
}

button:active {
  color: #666;
  box-shadow: inset 4px 4px 12px #c5c5c5, inset -4px -4px 12px #ffffff;
}

.form
{
  margin-top: 3rem;



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

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://ziontutorial.com/weather-application-using-reactjs-react-mini-project/"&gt;Here Is Full Code : Link&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  Conclusion:
&lt;/h1&gt;

&lt;p&gt;We have successfully build this weather application using react js and we have used many technologies in it . To build this react js weather application . i hope you will love this tutorial get so many knowledge from this video. I’m hoping you’ll create this application effectively and get a lot of knowledge from it. We designed this project as a beginner project, but in the future days we will cover more advanced projects as well.&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>beginners</category>
      <category>programming</category>
      <category>webdev</category>
    </item>
    <item>
      <title>🧙‍♂️Master JavaScript with these 5 GitHub repositories🪄✨🚀</title>
      <dc:creator>ziontutorial</dc:creator>
      <pubDate>Sat, 16 Mar 2024 16:42:16 +0000</pubDate>
      <link>https://dev.to/ziontutorial/master-javascript-with-these-5-github-repositories-5g30</link>
      <guid>https://dev.to/ziontutorial/master-javascript-with-these-5-github-repositories-5g30</guid>
      <description>&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2i1765i9ez6c3rdyvy83.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2i1765i9ez6c3rdyvy83.png" alt="5 GitHub repositories" width="800" height="449"&gt;&lt;/a&gt;&lt;br&gt;
This article contains a list of 5 GitHub repositories that are going to be useful for JavaScript developers whether you are an experienced developer or a beginner-level developer.&lt;/p&gt;

&lt;p&gt;People are also reading: : &lt;a href="https://ziontutorial.com/master-javascript-with-these-5-github-repositories/"&gt;Make Modern Website using react js | Free Source Code &lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Hey folks! 👋&lt;/p&gt;

&lt;p&gt;In this article, we'll take a look at the 5 github repos which is Publicly available!&lt;/p&gt;

&lt;h1&gt;
  
  
  1. &lt;a href="https://github.com/lydiahallie/javascript-questions"&gt;Javascript Questions&lt;/a&gt;
&lt;/h1&gt;

&lt;p&gt;This repository lets you know about:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;How well you know JavaScript&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;You can prepare for your coding Interview&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Question with Solution and their detailed explanation &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Multi-Language Support.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;It contains questions from basic to advanced and is updated regularly with new questions.&lt;/p&gt;

&lt;p&gt;If you're the kind of person who follows Solving a question a day keeps unemployment away then this is the perfect repo for you.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9qeo8s213l56bggezvdf.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9qeo8s213l56bggezvdf.png" alt="JavaScript Question" width="800" height="398"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  2. &lt;a href="https://github.com/leonardomso/33-js-concepts"&gt;📜 33 JavaScript concepts every developer should know.&lt;/a&gt;
&lt;/h1&gt;

&lt;p&gt;This repository lets you:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;You can prepare for your coding Interview&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Precise JavaScript Article bundles and videos &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Multi-Language Support.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Again It contains questions from basic to advanced and is updated regularly with new questions in the form of article and video format.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ft8p25tzuinwsi2q5abn6.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ft8p25tzuinwsi2q5abn6.png" alt="33 JavaScript concepts every developer should know." width="800" height="409"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  3. &lt;a href="https://github.com/getify/You-Dont-Know-JS"&gt;You-Dont-Know-JS&lt;/a&gt;
&lt;/h1&gt;

&lt;p&gt;This repository lets you:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;You can prepare for your coding Interview&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Precise JavaScript Book and Md Files&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;It dives deep into the core mechanisms of the Javascript language and is available online completely for free.&lt;/p&gt;

&lt;p&gt;You should not miss this one if you want to have a firm grasp over the language!&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnac805kuy8mqonf80kdi.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnac805kuy8mqonf80kdi.png" alt="You-Dont-Know-JS" width="800" height="369"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  4. &lt;a href="https://github.com/TheAlgorithms/Javascript"&gt;The Algorithm - Javascript&lt;/a&gt;
&lt;/h1&gt;

&lt;p&gt;This repository lets you:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;You can prepare for your coding Interview about DSA and algo&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;implemented in JavaScript for beginners, following best practices.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;It focuses on implementing various data structures and algorithms in Javascript ranging from the basic ones like sorting and searching to complex ones such as dynamic programming.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzj5hgp6in7gdvlkc4tp2.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzj5hgp6in7gdvlkc4tp2.png" alt="TheAlgorithms " width="800" height="394"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If you liked reading this, don't forget to check out our remaining articles from here &lt;a href="https://ziontutorial.com/"&gt;Link&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;I have Mentioned 5 Repo Here click on this &lt;a href="https://ziontutorial.com/master-javascript-with-these-5-github-repositories/"&gt;Links &lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Foymb581licn177mj6bcv.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Foymb581licn177mj6bcv.gif" alt="Image description" width="401" height="313"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Don't forget to comment on what you liked and didn't like about this tutorial and if there's something you know that I should have included in this article, do let me know in the comments down below.&lt;/p&gt;

&lt;p&gt;Have a great one, bye! 👋&lt;/p&gt;

&lt;p&gt;Please check out my website.&lt;br&gt;
&lt;a href="https://ziontutorial.com/"&gt;Link&lt;/a&gt;&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>programming</category>
      <category>beginners</category>
      <category>webdev</category>
    </item>
    <item>
      <title>Create a beginner-level project Make A Modern Website Using React Js | Hero Section</title>
      <dc:creator>ziontutorial</dc:creator>
      <pubDate>Sat, 16 Mar 2024 15:39:59 +0000</pubDate>
      <link>https://dev.to/ziontutorial/how-to-make-a-modern-website-using-react-js-hero-section-1g00</link>
      <guid>https://dev.to/ziontutorial/how-to-make-a-modern-website-using-react-js-hero-section-1g00</guid>
      <description>&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%2F565t6fafw0cph2uhuj3g.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%2F565t6fafw0cph2uhuj3g.png" alt="Image description"&gt;&lt;/a&gt;&lt;br&gt;
Today we we will learn how to make A Modern Website Using React Js. However, i think there are many beginner who do not know &lt;a href="https://ziontutorial.com/how-to-make-a-modern-website-using-react-js-website-hero-section/" rel="noopener noreferrer"&gt;How to Make A Modern Website Using React Js | Hero Section.&lt;/a&gt; Hopefully, this article will help you out.&lt;/p&gt;

&lt;p&gt;If you want you can watch the live demo with this &lt;a href="https://ziontutorial.com/how-to-make-a-modern-website-using-react-js-website-hero-section/" rel="noopener noreferrer"&gt;link&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;App.js&lt;/strong&gt;&lt;/p&gt;

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


import logo from './logo.svg';
import './App.css';
import backgroundImage from './bg.png';

function App() {
  return (
    &amp;lt;div className="container"&amp;gt;
      {/* navbar */}
      &amp;lt;nav&amp;gt;
        &amp;lt;div className="logo_container"&amp;gt;
          // paste the svg Link from below Link 
        &amp;lt;/div&amp;gt;

        &amp;lt;div className="menu_container"&amp;gt;
          &amp;lt;ul&amp;gt;
            &amp;lt;li&amp;gt;
              &amp;lt;a href="www.ziontutorial.com" className="active"&amp;gt;Home&amp;lt;/a&amp;gt;
            &amp;lt;/li&amp;gt;
            &amp;lt;li&amp;gt;
              &amp;lt;a href="www.ziontutorial.com"&amp;gt;Why Us&amp;lt;/a&amp;gt;
            &amp;lt;/li&amp;gt;
            &amp;lt;li&amp;gt;
              &amp;lt;a href="www.ziontutorial.com"&amp;gt; Review&amp;lt;/a&amp;gt;
            &amp;lt;/li&amp;gt;
            &amp;lt;li&amp;gt;
              &amp;lt;a href="www.ziontutorial.com"&amp;gt; Blog&amp;lt;/a&amp;gt;
            &amp;lt;/li&amp;gt;
          &amp;lt;/ul&amp;gt;
        &amp;lt;/div&amp;gt;

        &amp;lt;div className="btn_container"&amp;gt;
          &amp;lt;ul&amp;gt;
            &amp;lt;li&amp;gt;
              &amp;lt;a href="www.ziontutorial.com"&amp;gt; Sign In&amp;lt;/a&amp;gt;
            &amp;lt;/li&amp;gt;
          &amp;lt;/ul&amp;gt;
          &amp;lt;button className="btn_register"&amp;gt;
            Register
          &amp;lt;/button&amp;gt;
        &amp;lt;/div&amp;gt;
      &amp;lt;/nav&amp;gt;

      {/* hero section */}
      &amp;lt;div className="content"&amp;gt;
        &amp;lt;div class="hero-text"&amp;gt;
          {/* &amp;lt;p className="content_para"&amp;gt;Trusted by over 2800+ companies&amp;lt;/p&amp;gt; */}
          &amp;lt;h1&amp;gt;Delievr  &amp;lt;span className="content_span"&amp;gt;Your Food &amp;lt;/span&amp;gt;&amp;lt;/h1&amp;gt;
          &amp;lt;h1&amp;gt;Easy And Fast.&amp;lt;/h1&amp;gt;
          &amp;lt;p className="content_alice"&amp;gt;Vivamus vitae odio quam. Etiam non nibh luctus ligula tristique tristique.&amp;lt;/p&amp;gt;
          &amp;lt;form&amp;gt;
            &amp;lt;input type="text" placeholder="Enter delivery address" /&amp;gt;
            &amp;lt;button type="submit" className="btn_sec"&amp;gt;
            Search
            &amp;lt;/button&amp;gt;
          &amp;lt;/form&amp;gt;
        &amp;lt;/div&amp;gt;
        &amp;lt;div className="hero-image"&amp;gt;
          &amp;lt;img className="image" src={backgroundImage} alt="Background" /&amp;gt;
        &amp;lt;/div&amp;gt;
      &amp;lt;/div&amp;gt;
      &amp;lt;p&amp;gt;&amp;lt;/p&amp;gt;
    &amp;lt;/div&amp;gt;
  );
}

export default App;





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

&lt;/div&gt;

&lt;p&gt;For &lt;strong&gt;App.css&lt;/strong&gt; Part Visit this page.&lt;br&gt;
&lt;a href="https://ziontutorial.com/how-to-make-a-modern-website-using-react-js-website-hero-section/" rel="noopener noreferrer"&gt;Link&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;All the assets are mention here Like SVG and Logo everything you can get it from here.&lt;a href="https://ziontutorial.com/how-to-make-a-modern-website-using-react-js-website-hero-section/" rel="noopener noreferrer"&gt;Link&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  Conclusion
&lt;/h1&gt;

&lt;p&gt;I hope you enjoyed this little tutorial. Let me know over on&lt;/p&gt;

&lt;p&gt;Happy Coding! 😇&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>react</category>
      <category>javascript</category>
      <category>beginners</category>
    </item>
    <item>
      <title>Reactjs Project Structure and Best Practices</title>
      <dc:creator>ziontutorial</dc:creator>
      <pubDate>Sat, 13 Jan 2024 06:04:30 +0000</pubDate>
      <link>https://dev.to/ziontutorial/best-project-structure-reactjs-project-22ef</link>
      <guid>https://dev.to/ziontutorial/best-project-structure-reactjs-project-22ef</guid>
      <description>&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fb7sgzju106pyrdeml2tl.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fb7sgzju106pyrdeml2tl.png" alt="Image description" width="800" height="400"&gt;&lt;/a&gt;&lt;br&gt;
Organizing your project structure is crucial for the scalability and maintainability of a ReactJS project. There are different ways to structure a React project, and the best approach may depend on the specific needs of your project. Here's a suggested folder structure for a large ReactJS project:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;
/src
  /assets
    /images
    /styles
      global.css
  /components
    /Common
      Button.js
      Input.js
    /Feature1
      Feature1Component1.js
      Feature1Component2.js
    /Feature2
      Feature2Component1.js
      Feature2Component2.js
  /containers
    /Feature1Container.js
    /Feature2Container.js
  /contexts
    AuthContext.js
  /hooks
    UseFetch.js
    UseAuth.js
  /services
    ApiService.js
    AuthService.js
  /redux
    /actions
      authActions.js
      feature1Actions.js
      feature2Actions.js
    /reducers
      authReducer.js
      feature1Reducer.js
      feature2Reducer.js
    /store
      configureStore.js
  /routes
    AppRouter.js
  /utils
    helpers.js
  App.js
  index.js

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

&lt;/div&gt;



&lt;p&gt;Explanation:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;assets&lt;/strong&gt;: Contains static assets such as images and global styles.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;components&lt;/strong&gt;: Reusable presentational components. Group them by feature or create a common folder for components used across features.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;containers&lt;/strong&gt;: Container components that connect to the Redux store. They generally wrap presentational components and handle data fetching and state management.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;contexts&lt;/strong&gt;: React Contexts that provide global state management.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;hooks&lt;/strong&gt;: Custom hooks that can be reused across components.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;services&lt;/strong&gt;: External services, such as API services or authentication services.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;redux&lt;/strong&gt;: Redux-related files including actions, reducers, and the Redux store configuration.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;routes&lt;/strong&gt;: Define your application routes here using a router (e.g., React Router).&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;utils&lt;/strong&gt;: Utility functions that are not specific to any component or feature.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;App.js&lt;/strong&gt;: The main component where you set up your application structure.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;index.js&lt;/strong&gt;: The entry point of your application.&lt;/p&gt;

&lt;p&gt;This is just one possible structure, and you may need to adapt it based on your project's specific requirements. Additionally, tools like Create React App or Next.js come with their own conventions for project structure.&lt;/p&gt;

&lt;p&gt;If you want to create a common layout with a header, footer, and navigation that is consistent across multiple pages, you can extend the folder structure to include a layouts folder. Here's an updated structure:&lt;/p&gt;

&lt;p&gt;*&lt;em&gt;For Layout structuring *&lt;/em&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;
/src
  /assets
    /images
    /styles
      global.css
  /components
    /Common
      Button.js
      Input.js
    /Feature1
      Feature1Component1.js
      Feature1Component2.js
    /Feature2
      Feature2Component1.js
      Feature2Component2.js
  /containers
    /Feature1Container.js
    /Feature2Container.js
  /contexts
    AuthContext.js
  /hooks
    UseFetch.js
    UseAuth.js
  /layouts
    /MainLayout
      Header.js
      Footer.js
      Navigation.js
  /services
    ApiService.js
    AuthService.js
  /redux
    /actions
      authActions.js
      feature1Actions.js
      feature2Actions.js
    /reducers
      authReducer.js
      feature1Reducer.js
      feature2Reducer.js
    /store
      configureStore.js
  /routes
    AppRouter.js
  /utils
    helpers.js
  App.js
  index.js
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Explanation:&lt;/p&gt;

&lt;p&gt;layouts: Contains layout components that define the overall structure of your pages. In this example, there's a MainLayout folder with Header, Footer, and Navigation components.&lt;br&gt;
You can then use these layout components within your routes or pages. For example, your AppRouter.js might look like this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;
// AppRouter.js
import React from 'react';
import { BrowserRouter as Router, Route, Switch } from 'react-router-dom';
import App from './App';
import MainLayout from './layouts/MainLayout';
import Feature1Container from './containers/Feature1Container';
import Feature2Container from './containers/Feature2Container';

const AppRouter = () =&amp;gt; {
  return (
    &amp;lt;Router&amp;gt;
      &amp;lt;Switch&amp;gt;
        &amp;lt;Route path="/feature1"&amp;gt;
          &amp;lt;MainLayout&amp;gt;
            &amp;lt;Feature1Container /&amp;gt;
          &amp;lt;/MainLayout&amp;gt;
        &amp;lt;/Route&amp;gt;
        &amp;lt;Route path="/feature2"&amp;gt;
          &amp;lt;MainLayout&amp;gt;
            &amp;lt;Feature2Container /&amp;gt;
          &amp;lt;/MainLayout&amp;gt;
        &amp;lt;/Route&amp;gt;
        {/* Add more routes as needed */}
        &amp;lt;Route path="/"&amp;gt;
          &amp;lt;MainLayout&amp;gt;
            &amp;lt;App /&amp;gt;
          &amp;lt;/MainLayout&amp;gt;
        &amp;lt;/Route&amp;gt;
      &amp;lt;/Switch&amp;gt;
    &amp;lt;/Router&amp;gt;
  );
};

export default AppRouter;

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

&lt;/div&gt;



&lt;p&gt;&lt;em&gt;**App.js *&lt;/em&gt;*&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;// App.js
import React from 'react';
import AppRouter from './routes/AppRouter';

function App() {
  return (
    &amp;lt;div className="App"&amp;gt;
      &amp;lt;AppRouter /&amp;gt;
    &amp;lt;/div&amp;gt;
  );
}

export default App;

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

&lt;/div&gt;



</description>
    </item>
    <item>
      <title>Create a beginner-level project Dynamic Currency Converter Beginner React Project</title>
      <dc:creator>ziontutorial</dc:creator>
      <pubDate>Thu, 11 Jan 2024 15:10:09 +0000</pubDate>
      <link>https://dev.to/ziontutorial/build-a-dynamic-currency-converter-beginner-react-project-5cb8</link>
      <guid>https://dev.to/ziontutorial/build-a-dynamic-currency-converter-beginner-react-project-5cb8</guid>
      <description>&lt;p&gt;In this article we will Build a Dynamic Currency Converter Beginner React Project. I am Daman sure you all are familiar with this type of project. However, i think there are many beginners who do not know &lt;a href="https://ziontutorial.com/how-to-build-a-dynamic-currency-converter-using-react/"&gt;How to Build a Dynamic Currency Converter Beginner React Project using react js&lt;/a&gt;. Hopefully, this article will help you out.&lt;/p&gt;

&lt;p&gt;If you want you can watch the live demo with this &lt;a href="https://ziontutorial.com/how-to-build-a-dynamic-currency-converter-using-react/"&gt;link&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Don't miss this article : &lt;a href="https://bit.ly/3zFCQ8F"&gt;https://bit.ly/3zFCQ8F&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;if you are a beginner do follow my steps what I am doing to create this beautiful Currency Converter application using react js .&lt;/p&gt;

&lt;p&gt;Download the source code : &lt;a href="https://bit.ly/482LApG"&gt;https://bit.ly/482LApG&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;App.js&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;`// CurrencyConverter.js
import React, { useState, useEffect } from 'react';
import axios from 'axios';
import './App.css'

const App = () =&amp;gt; {
  const [exchangeRates, setExchangeRates] = useState({});
  const [amount, setAmount] = useState(1);
  const [fromCurrency, setFromCurrency] = useState('USD');
  const [toCurrency, setToCurrency] = useState('INR');
  const [convertedAmount, setConvertedAmount] = useState(null);

  useEffect(() =&amp;gt; {
    // Fetch exchange rates from a free API (replace with your preferred API)
    const apiUrl = `https://api.exchangerate-api.com/v4/latest/${fromCurrency}`;

    axios.get(apiUrl)
      .then(response =&amp;gt; {
        setExchangeRates(response.data.rates);
      })
      .catch(error =&amp;gt; {
        console.error('Error fetching exchange rates:', error);
      });
  }, [fromCurrency]);

  useEffect(() =&amp;gt; {
    // Convert currency when 'amount', 'fromCurrency', or 'toCurrency' changes
    const conversionRate = exchangeRates[toCurrency];
    if (conversionRate) {
      const converted = amount * conversionRate;
      setConvertedAmount(converted.toFixed(2));
    }
  }, [amount, fromCurrency, toCurrency, exchangeRates]);

  const handleChange = (e) =&amp;gt; {
    const { name, value } = e.target;
    switch (name) {
      case 'amount':
        setAmount(value);
        break;
      case 'fromCurrency':
        setFromCurrency(value);
        break;
      case 'toCurrency':
        setToCurrency(value);
        break;
      default:
        break;
    }
  };

  return (
    &amp;lt;div className='card' &amp;gt;
      &amp;lt;h1 className='text-6xl'&amp;gt;Currency Converter&amp;lt;/h1&amp;gt;

      &amp;lt;div className='currency_exchnage'&amp;gt;

      &amp;lt;div className="input_container" &amp;gt;
        &amp;lt;label className="input_label"&amp;gt;Amount:&amp;lt;/label&amp;gt;
        &amp;lt;input
          type="number"
          name="amount"
          className="input_field"
          value={amount}
          onChange={handleChange}
        /&amp;gt;
      &amp;lt;/div&amp;gt;
      &amp;lt;div className="input_container"&amp;gt;
        &amp;lt;label className="input_label"&amp;gt;From Currency:&amp;lt;/label&amp;gt;
        &amp;lt;select
          name="fromCurrency"
          value={fromCurrency}
          onChange={handleChange}
          className="input_field"
        &amp;gt;
          {Object.keys(exchangeRates).map(currency =&amp;gt; (
            &amp;lt;option key={currency} value={currency}&amp;gt;
              {currency}
            &amp;lt;/option&amp;gt;
          ))}
        &amp;lt;/select&amp;gt;
      &amp;lt;/div&amp;gt;
      &amp;lt;div className="input_container"&amp;gt;
        &amp;lt;label className="input_label"&amp;gt;To Currency:&amp;lt;/label&amp;gt;
        &amp;lt;select
          name="toCurrency"
          value={toCurrency}
          onChange={handleChange}
          className="input_field"
        &amp;gt;
          {Object.keys(exchangeRates).map(currency =&amp;gt; (
            &amp;lt;option key={currency} value={currency}&amp;gt;
              {currency}
            &amp;lt;/option&amp;gt;
          ))}
        &amp;lt;/select&amp;gt;
      &amp;lt;/div&amp;gt;

      &amp;lt;/div&amp;gt;

      &amp;lt;div className='output'&amp;gt;
        &amp;lt;h2&amp;gt;Converted Amount: {convertedAmount}&amp;lt;/h2&amp;gt;
      &amp;lt;/div&amp;gt;
    &amp;lt;/div&amp;gt;
  );
};

export default App;`

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

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;The App.css&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;@import url('https://fonts.googleapis.com/css2?family=Inter:wght@100;200;300;400;500;600;700;800;900');

*
{
  margin: 0;
  padding: 0;
  box-sizing: border-box;
  background-color: #F0F2F5;
  font-family: "Inter", sans-serif;
}

.card
{
    background-color: #ffffff;
    width: 55%;
    min-width: 550px;
    padding: 50px;
    position: absolute;
    transform: translate(-50%,-50%);
    top: 50%;
    left: 50%;
    border-radius: 8px;
}

h1{
  /* padding: 16px; */
  background: #fff;
  font-size: 30px !important;
  margin-bottom: 2rem;
  font-weight: 700;
  color: #333;
}

.currency_exchnage
{
  display: flex;
  justify-content: space-between;
  background: #fff;
  /* align-items: center; */
}

.input_container {
  width: 30%;
  height: fit-content;
  position: relative;
  display: flex;
  flex-direction: column;
  gap: 10px;
  background: #fff;
}

.icon {
  width: 20px;
  position: absolute;
  z-index: 99;
  left: 12px;
  bottom: 9px;
}

.input_label {
  font-size: 0.95rem;
  color: #8B8E98;
  font-weight: 600;
  background: #fff;
}

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

&lt;/div&gt;



&lt;p&gt;If you are facing any Problem Full source code is available here &lt;br&gt;
with the working output &lt;a href="https://ziontutorial.com/how-to-build-a-dynamic-currency-converter-using-react/"&gt;Link&lt;br&gt;
&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Conclusion&lt;br&gt;
I hope you enjoyed this little tutorial. Let me know over on&lt;/p&gt;

&lt;p&gt;Happy Coding! 😇&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>react</category>
      <category>beginners</category>
      <category>reactproject</category>
    </item>
    <item>
      <title>React Redux | React Redux Tutorial | React Redux for beginners</title>
      <dc:creator>ziontutorial</dc:creator>
      <pubDate>Tue, 12 Dec 2023 09:46:04 +0000</pubDate>
      <link>https://dev.to/ziontutorial/core-concepts-of-redux-3ehk</link>
      <guid>https://dev.to/ziontutorial/core-concepts-of-redux-3ehk</guid>
      <description>&lt;h1&gt;
  
  
  REACT REDUX
&lt;/h1&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnidrsfv0crw0ncni7cqs.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnidrsfv0crw0ncni7cqs.png" alt="Image description" width="800" height="457"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;GitHub Link : &lt;a href="https://github.com/tinkugupta5/redux_projectone"&gt;https://github.com/tinkugupta5/redux_projectone&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Redux is a predictable state container for JavaScript apps.&lt;/p&gt;

&lt;p&gt;Redux is a library for JavaScript Applications.&lt;br&gt;
You can use Redux together with React, or with any other view library (Angular, Vue).Redux is just a state container.&lt;/p&gt;

&lt;p&gt;In a easy way to understand redux imagine redux just like a store . On that shop which type of items present in that shop we called it as a state.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fc560oucbtn7kkgt4kt8u.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fc560oucbtn7kkgt4kt8u.png" alt="Image description" width="800" height="400"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Store - Holds state of your application&lt;br&gt;
Action - Describe the changes in the state of the application&lt;br&gt;
Reducer- Actually carries out in the state transition depending on the action &lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fyha6zp306q0jpurqr3v4.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fyha6zp306q0jpurqr3v4.png" alt="Image description" width="800" height="209"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Action : Describe the changes in the state of the application&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fun4ixe4eq8v3eyskdupu.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fun4ixe4eq8v3eyskdupu.png" alt="Image description" width="800" height="402"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Reducer:&lt;/p&gt;
&lt;h2&gt;
  
  
  Rule of Redux
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;The state of your application is stored in a object tree within a single store &lt;br&gt;
&lt;code&gt;{ NumberOfBooks:10 }&lt;/code&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;The only Way to change the state is to emit an action, an object describing what happened&lt;br&gt;
&lt;code&gt;{Type:"buyBook"}&lt;/code&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;To specify how the state tree is transformed by action, we write a pure reducer&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;
  
  
  Let's use in the React application
&lt;/h2&gt;

&lt;p&gt;i have already created my react application through &lt;code&gt;npx create-react-app myapp&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fikt5856ns34b1ztoefdn.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fikt5856ns34b1ztoefdn.png" alt="Image description" width="800" height="541"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  Redux Installation and Practical in Coding
&lt;/h2&gt;

&lt;p&gt;To install Redux in your react project you have to type this command in your react application.&lt;br&gt;
&lt;code&gt;npm install redux react-redux&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5htnp4lpxk4xo1awmp72.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5htnp4lpxk4xo1awmp72.png" alt="Image description" width="800" height="487"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h4&gt;
  
  
  Step 1
&lt;/h4&gt;

&lt;ol&gt;
&lt;li&gt;With respect to the above image first step is to created our React application which we have already done with the command &lt;code&gt;npx create-react-app projectname&lt;/code&gt; &lt;/li&gt;
&lt;/ol&gt;
&lt;h4&gt;
  
  
  Step 2
&lt;/h4&gt;

&lt;ol&gt;
&lt;li&gt;The Second Step is to install Redux or react redux pakage because we are using this redux in our react application that why we wrote this command for installing the redux.
&lt;code&gt;npm install redux react-redux&lt;/code&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h4&gt;
  
  
  Step 3
&lt;/h4&gt;

&lt;ol&gt;
&lt;li&gt;Now Third step To update our store we have to make a &lt;code&gt;action&lt;/code&gt; so that this will instruct the reducer what we have to change in store. Let's understand more about actions 
&lt;strong&gt;Action In Redux&lt;/strong&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;1.Action are javascript objects that contain information.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;2.Action are the only source of information for the store,it &lt;br&gt;
only tells us what has happened.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;3.Action have a type property and it should be define in string &lt;br&gt;
constraint.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;4.It is compulsory to include the type property in the Object.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Syntax&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;const Action = {
type:''
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;I have created a folder &lt;code&gt;reduxContainer&lt;/code&gt; Under this I have created two files for Action first one is BookTypes.js and the Second one is BookAction.js.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fb0oommrq9qi6rabotfbr.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fb0oommrq9qi6rabotfbr.png" alt="Image description" width="241" height="105"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;In &lt;code&gt;BookTypes.js&lt;/code&gt; i have defined a constant for our action so that we can import this file in Our BookAction.js file. &lt;br&gt;
&lt;code&gt;BookTypes.js&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;&lt;em&gt;File Name&lt;/em&gt; : &lt;code&gt;BookTypes.js&lt;/code&gt;&lt;/em&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;export const buy_book = 'buy_book'
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Let's jump into another file which is &lt;code&gt;BookAction.js&lt;/code&gt; where we have to use the above const value because this Type value we have to define as a constant.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;&lt;em&gt;File Name&lt;/em&gt; :  &lt;code&gt;BookAction.js&lt;/code&gt;&lt;/em&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;import { buybook } from "./BookTypes"
const purchase_book = () =&amp;gt; {
    return {
        type : buybook
    }
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  Step 4
&lt;/h4&gt;

&lt;p&gt;Let's Jump into next step 4 which is Reducers. Before jumping to Reducer coding part lets understand some concept about reducer so that you will understand it clearly .&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Reducers decides how the state of application changes depending upon the action sent to the store.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Reducers are the function that accepts state and action as parameter and return the next state of the application.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;code&gt;(previousState,action) =&amp;gt; newState&lt;/code&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  BookReducer.js
&lt;/h1&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fduvxjycjnbfliq54tfhn.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fduvxjycjnbfliq54tfhn.png" alt="Image description" width="800" height="475"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  BookReducer.js
&lt;/h1&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;import { buy_book } from "./BookTypes"
const initialState = {
    NumberOfBooks: 20
}

const BookReducer = (state = initialState, action) =&amp;gt; {
    switch (action.type) {
        case buy_book: return {
            ...state, NumberOfBooks: state.initialState - 1
        }
        default: return state
    }
}

export default BookReducer;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Redux Store
&lt;/h2&gt;

&lt;p&gt;let's jump into store creation. We will understand the concepts of store and how to create a store in redux.&lt;br&gt;
﻿&lt;/p&gt;

&lt;blockquote&gt;
&lt;ul&gt;
&lt;li&gt;The entire Application contains a Single Store.&lt;/li&gt;
&lt;li&gt;Store consists some methods like :
&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;* getState()
* subscribe(listener)
* dispatch(action)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;blockquote&gt;
&lt;ul&gt;
&lt;li&gt;It is responsible for holding the application state. &lt;strong&gt;getState()&lt;/strong&gt; method gives access to state it holds.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;dispatch(action)&lt;/strong&gt; method allow state to be updated.&lt;/li&gt;
&lt;li&gt;It has &lt;strong&gt;subscribe(listener)&lt;/strong&gt; method as well by which we can register listeners.&lt;/li&gt;
&lt;li&gt;This method accept function (listener) as a parameter which execute anytime when the state in redux store changes.&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;

&lt;p&gt;Now let's Jump into coding part so now we have successfully created action reducer and store and Types now next turn is we have to create a &lt;strong&gt;store&lt;/strong&gt; file that holds the entire state of the application.&lt;br&gt;
As we all know for creating a store we have a function called &lt;strong&gt;createStore&lt;/strong&gt; which holds two parameter reducers like i have mentioned in the below code.&lt;/p&gt;
&lt;h1&gt;
  
  
  Store.js
&lt;/h1&gt;


&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;import {createStore} from 'redux'
import BooksReducer from './BookReducer'

const Store = createStore(BooksReducer)


export default Store;

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

&lt;/div&gt;


&lt;p&gt;Next step is to pass the whole data across the application so to do that we have provider for passing which is given by react-redux library and in it we have to pass it as a props like below code.&lt;/p&gt;
&lt;h1&gt;
  
  
  App.js
&lt;/h1&gt;


&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;import logo from './logo.svg';
import './App.css';
import { Provider } from 'react-redux';
import Store from './reduxContainer/Store';

function App() {
  return (
    &amp;lt;Provider Store={Store}&amp;gt;


    &amp;lt;/Provider&amp;gt;
  );
}

export default App;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;Now lets us understand some hooks that help us to change our state value by using these hooks. &lt;br&gt;
﻿&lt;/p&gt;
&lt;h3&gt;
  
  
  React Redux Hooks
&lt;/h3&gt;

&lt;p&gt;React Redux offers set of hooks to - subscribe to redux store and dispatch actions.Some of the hooks are as follows.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;useSelector Hook&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;useSelector is a hook react-redux library provides to get hold of any state that is maintained in the redux store.&lt;br&gt;
&lt;/p&gt;


&lt;/blockquote&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt; Syntax - const xyz =useSelector (selector: Function, equalityFn?: Function)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Selector function accepts the redux state as its argument and returns a value.&lt;/p&gt;

&lt;p&gt;Now lets access state value lets jump into file . we have to create a compoennt which is called &lt;strong&gt;BookContainer.js&lt;/strong&gt;  for rendering the initial state value as you can see in the image how can we access the initial state.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fx77283796t3wqm9uz450.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fx77283796t3wqm9uz450.png" alt="Image description" width="800" height="475"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  BookContainer.js
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;import React from 'react'
import { useDispatch, useSelector } from 'react-redux'
import purchase_book from './BookAction'

const BookContainer = () =&amp;gt; {
    const noofBooks = useSelector(state =&amp;gt; state.NumberOfBooks)
    const dispatch = useDispatch()

    const handleBuy = () =&amp;gt; {
        dispatch(purchase_book())
    }


  return (
    &amp;lt;&amp;gt;
    &amp;lt;div&amp;gt;BookContainer&amp;lt;/div&amp;gt;
    &amp;lt;h2&amp;gt;No of Books - {noofBooks} &amp;lt;/h2&amp;gt;
    &amp;lt;button onClick={handleBuy}&amp;gt;Buy Book&amp;lt;/button&amp;gt;
    &amp;lt;/&amp;gt;
  )
}

export default BookContainer
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Output :
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhhvypgma5vv3wzb8isvf.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhhvypgma5vv3wzb8isvf.png" alt="Image description" width="800" height="277"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;So with the help of useSelector method how we access the state in react redux with the help of hooks. Now lets jump to new hook which is &lt;strong&gt;useDispatch&lt;/strong&gt; previously we have only access the state from store but with the help of useDispatch we will update that state.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fc4fkuoquw7w7g232w2b6.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fc4fkuoquw7w7g232w2b6.png" alt="Image description" width="800" height="141"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>javascript</category>
      <category>beginners</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>Age Calculator - in React Js🔥.</title>
      <dc:creator>ziontutorial</dc:creator>
      <pubDate>Sat, 16 Sep 2023 10:32:27 +0000</pubDate>
      <link>https://dev.to/ziontutorial/create-a-beginner-level-project-in-react-an-age-calculator-app--2kb1</link>
      <guid>https://dev.to/ziontutorial/create-a-beginner-level-project-in-react-an-age-calculator-app--2kb1</guid>
      <description>&lt;p&gt;This tutorial guides absolute beginners through the process of building an Age Calculator App in React. The app will determine your age based on the input of your date of birth. Throughout the project, we will cover various concepts, making it a valuable learning experience. By the end, you'll have gained insights into a wide range of features and concepts related to React development. Let's delve into the step-by-step process of building and understanding this application.&lt;/p&gt;

&lt;p&gt;However, i think there are many beginners who do not know Age Calculator App in React. Hopefully this article will help you out.&lt;/p&gt;

&lt;p&gt;If you want you can watch the live demo with this link.&lt;/p&gt;

&lt;p&gt;Don't miss this article : &lt;a href="https://bit.ly/3tFJJIB"&gt;https://bit.ly/3tFJJIB&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;if you are a beginner do follow my steps what I am doing to Age Calculator App in React.&lt;/p&gt;

&lt;p&gt;Download the source code: &lt;a href="https://bit.ly/3tFJJIB"&gt;https://bit.ly/3tFJJIB&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Demo:&lt;a href="https://ziontutorial.com/how-to-build-age-calculator-app-in-react-beginner-project/"&gt;Link&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Certainly! Here is the list of functionalities we will build in the Age Calculator App:
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Input Field&lt;/strong&gt;: Create a text input field for users to enter their date of birth.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Calculate Age&lt;/strong&gt;: Implement the logic to calculate the user's age based on the provided date of birth.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Display Age&lt;/strong&gt;: Show the calculated age on the screen after the user enters their date of birth.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Error Handling&lt;/strong&gt;: Implement validation and display appropriate error messages for invalid date inputs.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Age in Different Units&lt;/strong&gt;: Provide options to display the age in different units, such as years, months, days, etc.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Clear Button&lt;/strong&gt;: Add a button to clear the input field and reset the displayed age.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Responsive Design&lt;/strong&gt;: Ensure the app is visually appealing and functions well on various screen sizes and devices.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Throughout the tutorial, we will cover each of these functionalities to create a fully functional Age Calculator App using React.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;App.js&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;import React, { useState } from 'react';
import './AgeCalculator.css'

const AgeCalculator = () =&amp;gt; {
    const [birthdate, setBirthdate] = useState('');
    const [age, setAge] = useState(0);

    const calculateAge = () =&amp;gt; {
        const today = new Date();
        const birthdateDate = new Date(birthdate);

        let age = today.getFullYear() - birthdateDate.getFullYear();
        const monthDiff = today.getMonth() - birthdateDate.getMonth();
        if (monthDiff &amp;lt; 0 || (monthDiff === 0 &amp;amp;&amp;amp; today.getDate() &amp;lt; birthdateDate.getDate())) {
            age--;
        }

        setAge(age);
    };

    const resetCalculator = () =&amp;gt; {
        setBirthdate('');
        setAge(0);
      };

    return (
        &amp;lt;&amp;gt;
            &amp;lt;div className='Container'&amp;gt;
             &amp;lt;h2 className='heading container_title'&amp;gt;Age Calculator&amp;lt;/h2&amp;gt;
             &amp;lt;p className=' para container_title'&amp;gt;The Age Calculator can determine the age or interval between two dates. The calculated age will be displayed in years,&amp;lt;/p&amp;gt;
             &amp;lt;div className='Container_middle'&amp;gt;
                    &amp;lt;div className='right'&amp;gt;
                        &amp;lt;h4&amp;gt;Date of Birth&amp;lt;/h4&amp;gt;
                        &amp;lt;input className='date' type="date" value={birthdate} onChange={e =&amp;gt; setBirthdate(e.target.value)} /&amp;gt;
                        &amp;lt;div className='button_div'&amp;gt;
                        &amp;lt;button className='button-65' onClick={calculateAge}&amp;gt;Calculate Age&amp;lt;/button&amp;gt;
                        &amp;lt;button className="button-65" onClick={resetCalculator}&amp;gt;
                Reset
              &amp;lt;/button&amp;gt;

                        &amp;lt;/div&amp;gt;
                    &amp;lt;/div&amp;gt;

                    &amp;lt;div className='left'&amp;gt;
                        &amp;lt;div className='Container_middle_para'&amp;gt;
                            &amp;lt;h1&amp;gt;Your Age is&amp;lt;/h1&amp;gt;
                        &amp;lt;/div&amp;gt;
                        &amp;lt;h1 className='age_heading'&amp;gt;{age &amp;gt; 0 ? ` ${age}` : ''}&amp;lt;/h1&amp;gt;
                    &amp;lt;/div&amp;gt;
             &amp;lt;/div&amp;gt;
            &amp;lt;/div&amp;gt;
        &amp;lt;/&amp;gt;
    );
};

export default AgeCalculator;

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

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;App.css&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;.Container_middle
{
    display: flex;
    justify-content: space-between;
}

.left
{
    width: 500px;
    background-color:#EEF1F6; 

}
.Container_middle_para
{
    display: flex;
    align-items: center;
    justify-content: center;
}


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

&lt;/div&gt;



&lt;p&gt;If you are facing any Problem Full source code is available here&lt;br&gt;
with the working output &lt;a href="https://bit.ly/3tFJJIB"&gt;Link&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Conclusion&lt;br&gt;
I hope you enjoyed this little tutorial. Let me know over on&lt;/p&gt;

&lt;p&gt;Happy Coding! 😇&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Create a beginner-level project in React: an Age Calculator App 🔥.</title>
      <dc:creator>ziontutorial</dc:creator>
      <pubDate>Sat, 05 Aug 2023 10:16:32 +0000</pubDate>
      <link>https://dev.to/ziontutorial/create-a-beginner-level-project-in-react-an-age-calculator-app--1f06</link>
      <guid>https://dev.to/ziontutorial/create-a-beginner-level-project-in-react-an-age-calculator-app--1f06</guid>
      <description>&lt;p&gt;This tutorial guides absolute beginners through the process of building an Age Calculator App in React. The app will determine your age based on the input of your date of birth. Throughout the project, we will cover various concepts, making it a valuable learning experience. By the end, you'll have gained insights into a wide range of features and concepts related to React development. Let's delve into the step-by-step process of building and understanding this application.&lt;/p&gt;

&lt;p&gt;Demo:&lt;a href="https://ziontutorial.com/how-to-build-age-calculator-app-in-react-beginner-project/" rel="noopener noreferrer"&gt;Link&lt;/a&gt;&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%2Fqdtlp7o2si68l4zglyxn.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%2Fqdtlp7o2si68l4zglyxn.png" alt="Image description" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Certainly! Here is the list of functionalities we will build in the Age Calculator App:
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Input Field&lt;/strong&gt;: Create a text input field for users to enter their date of birth.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Calculate Age&lt;/strong&gt;: Implement the logic to calculate the user's age based on the provided date of birth.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Display Age&lt;/strong&gt;: Show the calculated age on the screen after the user enters their date of birth.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Error Handling&lt;/strong&gt;: Implement validation and display appropriate error messages for invalid date inputs.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Age in Different Units&lt;/strong&gt;: Provide options to display the age in different units, such as years, months, days, etc.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Clear Button&lt;/strong&gt;: Add a button to clear the input field and reset the displayed age.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Responsive Design&lt;/strong&gt;: Ensure the app is visually appealing and functions well on various screen sizes and devices.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Throughout the tutorial, we will cover each of these functionalities to create a fully functional Age Calculator App using React.&lt;/p&gt;

&lt;p&gt;Prerequisite:&lt;/p&gt;

&lt;p&gt;An Integrated Development Environment (IDE) of your choice (In this tutorial, we will use Visual Studio Code. You can download it from their official website).&lt;br&gt;
npm (Node Package Manager) installed on your system.&lt;br&gt;
create-react-app package installed globally.&lt;br&gt;
Basic Setup:&lt;/p&gt;

&lt;p&gt;Open PowerShell or the terminal in your IDE.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;To start a new project using create-react-app, enter the following command:
&lt;code&gt;npx create-react-app myapp&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;You can replace "myapp" with any desired name for your project, such as "my-first-react-website."&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Navigate to the newly created project folder using the following command:
&lt;code&gt;cd myapp&lt;/code&gt;
Replace "myapp" with the name you chose for your project.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Here is the folder structure for our application after setting up the basic React project.&lt;/p&gt;
&lt;h2&gt;
  
  
  App.js Code
&lt;/h2&gt;


&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;import './App.css';
import AgeCalculator from './componets/AgeCalculator';

function App() {
  return (
    &amp;lt;div className="App"&amp;gt;
      &amp;lt;AgeCalculator/&amp;gt;
    &amp;lt;/div&amp;gt;
  );
}

export default App;

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

&lt;/div&gt;


&lt;p&gt;here's the CSS code for styling the "App" class in your React application:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;
/* app.css */

.App {
  background-color: #F4F9FF;
  display: flex;
  justify-content: center;
  /* width: 1530px; */
  height: 500px;
  padding: 5rem;
}

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

&lt;/div&gt;



&lt;p&gt;In this code, we have applied the following styles to the ".App" class:&lt;/p&gt;

&lt;p&gt;background-color: Sets the background color of the element to a light blue (#F4F9FF).&lt;br&gt;
display: Makes the element a flex container so that its children can be aligned using flex properties.&lt;br&gt;
justify-content: Centers the child elements horizontally along the main axis (in this case, the center of the screen).&lt;br&gt;
height: Sets the height of the element to 500 pixels.&lt;br&gt;
padding: Adds 5 rem (root em) of padding on all sides of the element.&lt;br&gt;
You can place this CSS code in a separate file named "app.css" within your project's "src" folder. Then, make sure to import this CSS file into your main React component (e.g., "App.js") to apply these styles to the ".App" class.&lt;/p&gt;

&lt;p&gt;let's create the component folder structure with "AgeCalculator.js" and "AgeCalculator.css" files. It should look like the following:&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%2F4yd1kvqhhqtouthomfmj.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%2F4yd1kvqhhqtouthomfmj.png" alt="Image description" width="666" height="275"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Follow these steps to create the files and folders:&lt;/p&gt;

&lt;p&gt;Inside the "src" folder, create a new folder named "components" if it doesn't already exist.&lt;/p&gt;

&lt;p&gt;Inside the "components" folder, create a new folder named "AgeCalculator."&lt;/p&gt;

&lt;p&gt;Inside the "AgeCalculator" folder, create two files: "AgeCalculator.js" and "AgeCalculator.css."&lt;/p&gt;

&lt;p&gt;After creating the folder structure and files, you can start building the Age Calculator component inside "AgeCalculator.js" and apply styles using "AgeCalculator.css." This modular approach helps organize your project and makes it easier to manage components and their associated styles.&lt;/p&gt;
&lt;h2&gt;
  
  
  AgeCalculator.js
&lt;/h2&gt;


&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;
import React, { useState } from 'react';
import './AgeCalculator.css'

const AgeCalculator = () =&amp;gt; {
    const [birthdate, setBirthdate] = useState('');
    const [age, setAge] = useState(0);

    const calculateAge = () =&amp;gt; {
        const today = new Date();
        const birthdateDate = new Date(birthdate);

        let age = today.getFullYear() - birthdateDate.getFullYear();
        const monthDiff = today.getMonth() - birthdateDate.getMonth();
        if (monthDiff &amp;lt; 0 || (monthDiff === 0 &amp;amp;&amp;amp; today.getDate() &amp;lt; birthdateDate.getDate())) {
            age--;
        }

        setAge(age);
    };

    const resetCalculator = () =&amp;gt; {
        setBirthdate('');
        setAge(0);
      };

    return (
        &amp;lt;&amp;gt;
            &amp;lt;div className='Container'&amp;gt;
             &amp;lt;h2 className='heading container_title'&amp;gt;Age Calculator&amp;lt;/h2&amp;gt;
             &amp;lt;p className=' para container_title'&amp;gt;The Age Calculator can determine the age or interval between two dates. The calculated age will be displayed in years,&amp;lt;/p&amp;gt;
             &amp;lt;div className='Container_middle'&amp;gt;
                    &amp;lt;div className='right'&amp;gt;
                        &amp;lt;h4&amp;gt;Date of Birth&amp;lt;/h4&amp;gt;
                        &amp;lt;input className='date' type="date" value={birthdate} onChange={e =&amp;gt; setBirthdate(e.target.value)} /&amp;gt;
                        &amp;lt;div className='button_div'&amp;gt;
                        &amp;lt;button className='button-65' onClick={calculateAge}&amp;gt;Calculate Age&amp;lt;/button&amp;gt;
                        &amp;lt;button className="button-65" onClick={resetCalculator}&amp;gt;
                Reset
              &amp;lt;/button&amp;gt;

                        &amp;lt;/div&amp;gt;
                    &amp;lt;/div&amp;gt;

                    &amp;lt;div className='left'&amp;gt;
                        &amp;lt;div className='Container_middle_para'&amp;gt;
                            &amp;lt;h1&amp;gt;Your Age is&amp;lt;/h1&amp;gt;
                        &amp;lt;/div&amp;gt;
                        &amp;lt;h1 className='age_heading'&amp;gt;{age &amp;gt; 0 ? ` ${age}` : ''}&amp;lt;/h1&amp;gt;
                    &amp;lt;/div&amp;gt;
             &amp;lt;/div&amp;gt;
            &amp;lt;/div&amp;gt;
        &amp;lt;/&amp;gt;
    );
};

export default AgeCalculator;


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

&lt;/div&gt;

&lt;h2&gt;
  
  
  AgeCalculator.css
&lt;/h2&gt;


&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;.Container_middle
{
    display: flex;
    justify-content: space-between;
}

.left
{
    width: 500px;
    background-color:#EEF1F6; 

}
.Container_middle_para
{
    display: flex;
    align-items: center;
    justify-content: center;
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;Now important Css part where all our CSS styling I mean most of the styling part I have to write it here for our application in Index.css for the styling part.&lt;/p&gt;
&lt;h2&gt;
  
  
  Index.css
&lt;/h2&gt;


&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;@import url('https://fonts.googleapis.com/css2?family=Inter:wght@100;200;300;400;500;600;700;800;900');

html,
body {
  width: 100%;
  height: 100%;
  background-color: #e4ecff;
  font-family: 'Inter', sans-serif;
  display: flex;
  align-items: center;
  justify-content: center;
}

.age_heading{
  color: #5E5AF9;
  font-family: Inter;
  font-size: 5rem;
  font-style: normal;
  font-weight: 900;
  line-height: normal;
  display: flex;
  justify-content: center;

}

h2{
  color: #000;
font-family: Inter;
font-size: 35px;
font-style: normal;
font-weight: 900;
line-height: normal;
}
h3{
  color: #000;
font-family: Inter;
font-size: 30px;
font-style: normal;
font-weight: 700;
line-height: normal;
margin-top: 5rem;
}

h4{
  color: #000;
font-family: Inter;
font-size: 30px;
font-style: normal;
font-weight: 700;
line-height: normal;
}
.right
{
  width: 500px;
}
.para
{
  color: #505050;
font-family: Inter;
font-size: 19px;
font-style: normal;
font-weight: 500;
line-height: normal;
}

.button_div
{
  margin-top: 2rem;
}

.container_title
  {  
    display: flex;
    align-items: center;
    justify-content: center;
  }

  input[type="date"]{
    background: #F4F9FF;
    border: 2px solid #DEDEDE;
    padding: 20px;
    font-family: "Roboto Mono",monospace;
    color: #000000;
    font-size: 18px;
    width: 230px;
    /* border: none; */
    outline: none;
    border-radius: 5px;
}
::-webkit-calendar-picker-indicator{
    /* background-color: #ffffff; */
    padding: 5px;
    cursor: pointer;
    border-radius: 3px;
}



/* CSS */
.button-65 {
  appearance: none;
  backface-visibility: hidden;
  background-color: #2f80ed;
  border-radius: 10px;
  border-style: none;
  box-shadow: none;
  box-sizing: border-box;
  color: #fff;
  cursor: pointer;
  display: inline-block;
  font-family: Inter,-apple-system,system-ui,"Segoe UI",Helvetica,Arial,sans-serif;
  font-size: 15px;
  font-weight: 500;
  height: 50px;
  letter-spacing: normal;
  line-height: 1.5;
  outline: none;
  overflow: hidden;
  padding: 14px 30px;
  position: relative;
  text-align: center;
  text-decoration: none;
  transform: translate3d(0, 0, 0);
  transition: all .3s;
  user-select: none;
  -webkit-user-select: none;
  touch-action: manipulation;
  vertical-align: top;
  white-space: nowrap;
}

.button-65:hover {
  background-color: #1366d6;
  box-shadow: rgba(0, 0, 0, .05) 0 5px 30px, rgba(0, 0, 0, .05) 0 1px 4px;
  opacity: 1;
  transform: translateY(0);
  transition-duration: .35s;
}

.button-65:hover:after {
  opacity: .5;
}

.button-65:active {
  box-shadow: rgba(0, 0, 0, .1) 0 3px 6px 0, rgba(0, 0, 0, .1) 0 0 10px 0, rgba(0, 0, 0, .1) 0 1px 4px -1px;
  transform: translateY(2px);
  transition-duration: .35s;
}

.button-65:active:after {
  opacity: 1;
}

@media (min-width: 768px) {
  .button-65 {
    padding: 14px 22px;
    width: 176px;
  }
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;Now the last part which we are going to write which in the main part of our application which is index.js part .&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;import React from 'react';
import ReactDOM from 'react-dom';
import './index.css';
import App from './App';

const rootElement = document.getElementById('root');
const root = ReactDOM.createRoot(rootElement);

root.render(
  &amp;lt;React.StrictMode&amp;gt;
    &amp;lt;App /&amp;gt;
  &amp;lt;/React.StrictMode&amp;gt;
);

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

&lt;/div&gt;



&lt;h2&gt;
  
  
  In conclusion,
&lt;/h2&gt;

&lt;p&gt;I hope you enjoyed this tutorial on building the Age Calculator App in React. If you have any suggestions for other applications or projects, feel free to leave your comments and opinions. I trust that you have successfully created the Age Calculator App and gained valuable insights from this project.&lt;/p&gt;

&lt;p&gt;Stay tuned, as in the future, we will explore more exciting beginner-level projects together. Happy coding and keep learning!&lt;/p&gt;

&lt;p&gt;If there is any difficulty, of course you can comment.&lt;/p&gt;

&lt;p&gt;You can visit my blog for more tutorials like this.&lt;br&gt;
&lt;a href="https://ziontutorial.com/" rel="noopener noreferrer"&gt;https://ziontutorial.com/&lt;/a&gt;&lt;/p&gt;

</description>
    </item>
  </channel>
</rss>
