<?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: Rajamanickam</title>
    <description>The latest articles on DEV Community by Rajamanickam (@rajamanickam).</description>
    <link>https://dev.to/rajamanickam</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%2F897210%2F26a31aa2-8399-4961-be8f-b3e0e2136529.jpg</url>
      <title>DEV Community: Rajamanickam</title>
      <link>https://dev.to/rajamanickam</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/rajamanickam"/>
    <language>en</language>
    <item>
      <title>Countdown Timer using JavaScript</title>
      <dc:creator>Rajamanickam</dc:creator>
      <pubDate>Sat, 26 Aug 2023 10:06:09 +0000</pubDate>
      <link>https://dev.to/rajamanickam/countdown-timer-using-javascript-11dc</link>
      <guid>https://dev.to/rajamanickam/countdown-timer-using-javascript-11dc</guid>
      <description>&lt;p&gt;&lt;strong&gt;Introduction&lt;/strong&gt;&lt;br&gt;
In this step-by-step tutorial, we will learn how to create a basic countdown timer using JavaScript. Countdown timers are commonly used in websites to create anticipation and inform users about upcoming events, promotions, or product launches. We will build a countdown timer that displays days, hours, minutes, and seconds until a specified date and time.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 1:&lt;/strong&gt; Set Up the HTML Structure&lt;br&gt;
The first step is to create the HTML structure for our countdown timer. We'll use a simple HTML layout with placeholders for days, hours, minutes, and seconds.&lt;/p&gt;

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

&lt;p&gt;&lt;strong&gt;Step 2:&lt;/strong&gt; Style the Countdown Timer&lt;br&gt;
We'll add some basic CSS to style our countdown timer. Create a file named "style.css" and link it in the HTML file.&lt;/p&gt;

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

&lt;p&gt;&lt;strong&gt;Step 3:&lt;/strong&gt; Create the Countdown Logic&lt;br&gt;
Now, let's create the JavaScript code to calculate and display the countdown. Create a file named "script.js" and link it in the HTML file.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--1XgASMUL--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/6hursujrp21cvp74b05q.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--1XgASMUL--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/6hursujrp21cvp74b05q.png" alt="Image description" width="800" height="562"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 4:&lt;/strong&gt; Test Your Countdown Timer&lt;br&gt;
Open the HTML file in a web browser, and you should see the countdown timer displaying the time remaining until the specified target date and time.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Conclusion&lt;/strong&gt;&lt;br&gt;
In this tutorial, we've created a simple countdown timer using HTML, CSS, and JavaScript. You can further customize the timer's appearance and behavior to suit your project's needs. &lt;/p&gt;

&lt;p&gt;Watch on tutorial : &lt;a href="https://www.youtube.com/watch?v=Ei3SIwjAAMU"&gt;https://www.youtube.com/watch?v=Ei3SIwjAAMU&lt;/a&gt;&lt;/p&gt;

</description>
      <category>countdown</category>
      <category>es6</category>
      <category>ethereum</category>
      <category>time</category>
    </item>
    <item>
      <title>Building a Simple PHP CRUD Operation</title>
      <dc:creator>Rajamanickam</dc:creator>
      <pubDate>Fri, 18 Aug 2023 17:32:48 +0000</pubDate>
      <link>https://dev.to/rajamanickam/building-a-simple-php-crud-operation-2e7j</link>
      <guid>https://dev.to/rajamanickam/building-a-simple-php-crud-operation-2e7j</guid>
      <description>&lt;p&gt;In this tutorial, we'll walk you through the process of creating a basic PHP CRUD (Create, Read, Update, Delete) operation. By the end of this guide, you'll have a grasp of how to implement fundamental CRUD operations using PHP and MySQL.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Prerequisites&lt;/strong&gt;&lt;br&gt;
Before we begin, ensure you have the following set up:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A web server (e.g., Apache)&lt;/li&gt;
&lt;li&gt;PHP installed on your server&lt;/li&gt;
&lt;li&gt;MySQL database&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Database Connection&lt;/strong&gt;&lt;br&gt;
Create a file named database.php to establish a connection to the database:&lt;/p&gt;

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

&lt;p&gt;&lt;strong&gt;Create Operation&lt;/strong&gt; will provide a form to add new data:&lt;/p&gt;

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

&lt;p&gt;&lt;strong&gt;Read Operation&lt;/strong&gt; to display the list of data:&lt;/p&gt;

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

&lt;p&gt;&lt;strong&gt;Update Operation&lt;/strong&gt; to edit the selected data:&lt;/p&gt;

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

&lt;p&gt;&lt;strong&gt;Delete Operation&lt;/strong&gt; to delete the selected data:&lt;/p&gt;

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

&lt;p&gt;You've successfully created a simple PHP CRUD system for managing blog content. This tutorial has covered the basics of creating, reading, and interacting with data in a MySQL database using PHP&lt;/p&gt;

&lt;p&gt;Watch on video : &lt;a href="https://www.youtube.com/watch?v=Us0kty-enMM"&gt;https://www.youtube.com/watch?v=Us0kty-enMM&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Check out the full project here on Github: &lt;a href="https://github.com/erajamanickam/simple-crud-operation-in-php"&gt;https://github.com/erajamanickam/simple-crud-operation-in-php&lt;/a&gt;&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>php</category>
      <category>crud</category>
      <category>bootstrap</category>
    </item>
    <item>
      <title>Age calculator | Frontendmentor challenge</title>
      <dc:creator>Rajamanickam</dc:creator>
      <pubDate>Sat, 05 Aug 2023 16:18:02 +0000</pubDate>
      <link>https://dev.to/rajamanickam/age-calculator-frontendmentor-challenge-4o1a</link>
      <guid>https://dev.to/rajamanickam/age-calculator-frontendmentor-challenge-4o1a</guid>
      <description>&lt;p&gt;&lt;strong&gt;Introduction:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;An age calculator is a useful tool for determining a person's age based on their birthdate. Whether you're building a website with age restrictions or simply want to offer visitors a convenient way to calculate their age, this step-by-step guide will walk you through the process of creating an age calculator using HTML, CSS, and JavaScript/jQuery.&lt;/p&gt;

&lt;p&gt;Table of Contents:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Understanding the Purpose of an Age Calculator&lt;/li&gt;
&lt;li&gt;Setting Up the HTML Structure&lt;/li&gt;
&lt;li&gt;Styling the Age Calculator with CSS&lt;/li&gt;
&lt;li&gt;Implementing Age Calculation Using JavaScript/jQuery&lt;/li&gt;
&lt;li&gt;Adding Error Handling and Validation&lt;/li&gt;
&lt;li&gt;Displaying the Calculated Age&lt;/li&gt;
&lt;li&gt;Conclusion&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;- Understanding the Purpose of an Age Calculator&lt;/strong&gt;&lt;br&gt;
An age calculator is a tool that takes a person's birthdate as input and calculates their current age. It's commonly used on websites that have age restrictions for content or services. For example, an online store selling alcoholic beverages may use an age calculator to verify customers' eligibility.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;- Setting Up the HTML Structure&lt;/strong&gt;&lt;br&gt;
Begin by creating the HTML structure for the age calculator. You'll need input fields for day, month, and year, a button to trigger the calculation, and placeholders to display the calculated age. Use appropriate HTML elements and attributes to ensure semantic structure.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;- Styling the Age Calculator with CSS&lt;/strong&gt;&lt;br&gt;
Apply CSS styles to enhance the appearance of the age calculator. Use CSS classes to target specific elements, such as input fields and the calculation button. Employ CSS properties to adjust dimensions, colors, borders, and spacing, creating an aesthetically pleasing design.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;- Implementing Age Calculation Using JavaScript/jQuery&lt;/strong&gt;&lt;br&gt;
Add interactivity to the age calculator by using JavaScript/jQuery to handle calculations. Attach a click event listener to the calculation button. Retrieve the values from the input fields using jQuery selectors. Calculate the age in years, months, and days based on the entered birthdate and the current date.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;- Adding Error Handling and Validation&lt;/strong&gt;&lt;br&gt;
Implement error handling to ensure accurate results. Validate user input to prevent invalid or empty values. Use jQuery to display error messages dynamically and change label colors and input borders to indicate errors. This enhances the user experience and provides clear feedback.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;- Displaying the Calculated Age&lt;/strong&gt;&lt;br&gt;
Display the calculated age in the appropriate result placeholders. Use jQuery to update the content of the result elements dynamically. Ensure that the calculated age is accurate and presented clearly to the user.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;- Conclusion&lt;/strong&gt;&lt;br&gt;
In this guide, you've learned how to create an age calculator from scratch using HTML, CSS, and JavaScript/jQuery. Building an age calculator is an excellent way to practice your web development skills and enhance your understanding of interactivity. Feel free to customize and expand the calculator's features, such as allowing users to select their birthdate from a calendar or displaying additional information.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--mXGFJ2g2--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/9y1v6xua9qcehl6t61yk.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--mXGFJ2g2--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/9y1v6xua9qcehl6t61yk.jpg" alt="Image description" width="800" height="533"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Watch on video : &lt;a href="https://youtu.be/UPyNp-SVV4M"&gt;https://youtu.be/UPyNp-SVV4M&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Source will be available on : &lt;a href="https://github.com/erajamanickam/age-calculator"&gt;https://github.com/erajamanickam/age-calculator&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Live demo : &lt;a href="https://age-calculator-challenge-demo.vercel.app/"&gt;https://age-calculator-challenge-demo.vercel.app/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Codepen : &lt;a href="https://codepen.io/erajamanickam/pen/wvQOEQL"&gt;https://codepen.io/erajamanickam/pen/wvQOEQL&lt;/a&gt;&lt;/p&gt;

</description>
      <category>frontendmentor</category>
      <category>challenge</category>
      <category>agecalculator</category>
      <category>css</category>
    </item>
    <item>
      <title>Blog Application Nodejs</title>
      <dc:creator>Rajamanickam</dc:creator>
      <pubDate>Sat, 17 Jun 2023 15:10:21 +0000</pubDate>
      <link>https://dev.to/rajamanickam/blog-application-nodejs-56k7</link>
      <guid>https://dev.to/rajamanickam/blog-application-nodejs-56k7</guid>
      <description>&lt;p&gt;The Blogging Platform is a web application that allows users to create, manage, and publish their own blog posts. It provides a user-friendly interface for writing and organizing blog content, as well as features for user authentication, comment management, and blog customization.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Key Features&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;User Registration and Login Authentication&lt;/li&gt;
&lt;li&gt;Blog Creation and Management&lt;/li&gt;
&lt;li&gt;Blog List and Sorting&lt;/li&gt;
&lt;li&gt;Blog Comment Management&lt;/li&gt;
&lt;li&gt;Dashboard&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;User Registration and Login Authentication&lt;/strong&gt;&lt;br&gt;
Users can sign up for an account and log in to the platform using their credentials.&lt;/p&gt;

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

&lt;p&gt;&lt;strong&gt;Blog Creation and Management&lt;/strong&gt;&lt;br&gt;
Authenticated users can create new blog posts, edit existing posts, and delete unwanted posts. The platform provides a rich text editor for easy content creation, allowing users to format text, add images, and include other media.&lt;/p&gt;

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

&lt;p&gt;&lt;strong&gt;Blog List and Sorting&lt;/strong&gt;&lt;br&gt;
The platform displays a list of blog posts, ordered by the latest date. Users can browse through the blog list to discover and read the most recent posts.&lt;/p&gt;

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

&lt;p&gt;&lt;strong&gt;Blog Comment Management&lt;/strong&gt;&lt;br&gt;
Users can leave comments on blog posts to engage in discussions. They can also edit and delete their own comments. The comments are displayed below each blog post, showing the user's name, comment content, and the timestamp of the comment.&lt;/p&gt;

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

&lt;p&gt;&lt;strong&gt;Dashboard&lt;/strong&gt;&lt;br&gt;
Authenticated users have access to a dashboard that provides an overview of their blog activity. The dashboard includes statistics on blog views, comments, and engagement.&lt;/p&gt;

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

&lt;p&gt;Check out the full project here on Github: &lt;a href="https://github.com/erajamanickam/blog-application-nodejs"&gt;https://github.com/erajamanickam/blog-application-nodejs&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Watch on video : &lt;a href="https://youtu.be/VwKQA4Bs6P0"&gt;https://youtu.be/VwKQA4Bs6P0&lt;/a&gt;&lt;/p&gt;

</description>
      <category>node</category>
      <category>javascript</category>
      <category>mysql</category>
      <category>express</category>
    </item>
    <item>
      <title>Minimalist accordion design</title>
      <dc:creator>Rajamanickam</dc:creator>
      <pubDate>Sun, 30 Apr 2023 19:49:15 +0000</pubDate>
      <link>https://dev.to/rajamanickam/minimalist-accordion-design-41ho</link>
      <guid>https://dev.to/rajamanickam/minimalist-accordion-design-41ho</guid>
      <description>&lt;p&gt;In this article, we'll learn how to implement a bootstrap accordion with responsive.&lt;/p&gt;

&lt;p&gt;First of all, create html structure&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--EsYDuN_G--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/smd3epkoepjrx6qq3ne7.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--EsYDuN_G--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/smd3epkoepjrx6qq3ne7.png" alt="Image description" width="800" height="483"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;While development use the &lt;a href="https://getbootstrap.com/"&gt;boostrap&lt;/a&gt; cdn&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;lt;link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@5.2.3/dist/css/bootstrap.min.css"&amp;gt;

&amp;lt;script src="https://cdn.jsdelivr.net/npm/bootstrap@5.2.3/dist/js/bootstrap.min.js"&amp;gt;&amp;lt;/script&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Adding accordion component with bootstrap&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;lt;div class="accordion" id="accordionExample"&amp;gt;
    &amp;lt;div class="accordion-item"&amp;gt;
      &amp;lt;h2 class="accordion-header" id="headingOne"&amp;gt;
        &amp;lt;button class="accordion-button" type="button" data-bs-toggle="collapse" data-bs-target="#collapseOne" aria-expanded="true" aria-controls="collapseOne"&amp;gt;
          Accordion Item #1
        &amp;lt;/button&amp;gt;
      &amp;lt;/h2&amp;gt;
      &amp;lt;div id="collapseOne" class="accordion-collapse collapse show" aria-labelledby="headingOne" data-bs-parent="#accordionExample"&amp;gt;
        &amp;lt;div class="accordion-body"&amp;gt;
          &amp;lt;strong&amp;gt;This is the first item's accordion body.&amp;lt;/strong&amp;gt; It is shown by default, until the collapse plugin adds the appropriate classes that we use to style each element. These classes control the overall appearance, as well as the showing and hiding via CSS transitions. You can modify any of this with custom CSS or overriding our default variables. It's also worth noting that just about any HTML can go within the &amp;lt;code&amp;gt;.accordion-body&amp;lt;/code&amp;gt;, though the transition does limit overflow.
        &amp;lt;/div&amp;gt;
      &amp;lt;/div&amp;gt;
    &amp;lt;/div&amp;gt;
&amp;lt;/div&amp;gt;

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

&lt;/div&gt;



&lt;p&gt;Now we can get skeleton of accordion&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--d5yJR_zR--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/nya0pgjwhclc46lnlhj3.PNG" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--d5yJR_zR--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/nya0pgjwhclc46lnlhj3.PNG" alt="Image description" width="800" height="378"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;and adding custom style using my source code&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--jthCL6pR--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/1ycjm3dejnv0m1vrmw9u.PNG" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--jthCL6pR--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/1ycjm3dejnv0m1vrmw9u.PNG" alt="Image description" width="800" height="382"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Source will be available on : &lt;a href="https://github.com/erajamanickam/simple-accordion"&gt;https://github.com/erajamanickam/simple-accordion&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Live demo of minimalist accordion : &lt;br&gt;
&lt;a href="https://simple-accordion-css.vercel.app/"&gt;https://simple-accordion-css.vercel.app/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Watch on video : &lt;a href="https://www.youtube.com/watch?v=nBiMV9kCBqA&amp;amp;t=26s"&gt;https://www.youtube.com/watch?v=nBiMV9kCBqA&amp;amp;t=26s&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Codepen : &lt;a href="https://codepen.io/erajamanickam/pen/rNqzReE"&gt;https://codepen.io/erajamanickam/pen/rNqzReE&lt;/a&gt;&lt;/p&gt;

</description>
      <category>uidesign</category>
      <category>accordion</category>
      <category>bootstrap</category>
      <category>css</category>
    </item>
    <item>
      <title>Netflix UI Clone</title>
      <dc:creator>Rajamanickam</dc:creator>
      <pubDate>Sun, 02 Apr 2023 06:39:56 +0000</pubDate>
      <link>https://dev.to/rajamanickam/netflix-ui-clone-40cd</link>
      <guid>https://dev.to/rajamanickam/netflix-ui-clone-40cd</guid>
      <description>&lt;p&gt;Creating a Netflix clone UI using HTML and CSS can be a challenging task, but it can also be a great way to practice your web development skills.&lt;/p&gt;

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

&lt;p&gt;Source will be available on : &lt;a href="https://github.com/erajamanickam/netflix-ui-clone"&gt;https://github.com/erajamanickam/netflix-ui-clone&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Live demo : &lt;a href="https://netflix-ui-clone-css.vercel.app/"&gt;https://netflix-ui-clone-css.vercel.app/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Watch on video : &lt;a href="https://youtu.be/Bfsqmwq_1Uw"&gt;https://youtu.be/Bfsqmwq_1Uw&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Codepen : &lt;a href="https://codepen.io/erajamanickam/pen/OJoervB"&gt;https://codepen.io/erajamanickam/pen/OJoervB&lt;/a&gt;&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>webdev</category>
      <category>programming</category>
      <category>netflix</category>
    </item>
    <item>
      <title>Dark light mode toggle</title>
      <dc:creator>Rajamanickam</dc:creator>
      <pubDate>Sun, 19 Mar 2023 06:27:05 +0000</pubDate>
      <link>https://dev.to/rajamanickam/dark-light-mode-toggle-15p0</link>
      <guid>https://dev.to/rajamanickam/dark-light-mode-toggle-15p0</guid>
      <description>&lt;p&gt;In this post, I'm going to show you how you can easily create a Dark/Light mode toggle using CSS, JavaScript.&lt;/p&gt;

&lt;p&gt;Create two CSS classes, one for the light mode and one for the dark mode.&lt;/p&gt;

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

&lt;p&gt;Create a checkbox input in your HTML code to act as the toggle switch:&lt;br&gt;
In this step, we create a checkbox input element that will act as the toggle switch for our dark-light mode. We use the label element to wrap the input element and a span element with the class slider round for the toggle button.&lt;/p&gt;

&lt;p&gt;The id attribute of the input element is used to reference the element in our JavaScript code later.&lt;/p&gt;

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

&lt;p&gt;Add some JavaScript code to toggle the dark mode class&lt;br&gt;
In this step, we use JavaScript to toggle the dark mode class when the toggle switch is clicked. We add an event listener to the input element that listens for the change event and calls the mode function.&lt;/p&gt;

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

&lt;p&gt;We also use the &lt;code&gt;localStorage&lt;/code&gt; object to store the user's preference for light or dark mode, so that the mode persists even when the user leaves and returns to the site. We check the value of &lt;code&gt;localStorage.getItem('mode')&lt;/code&gt; to see if the user has previously selected a mode, and if so, we set the data-theme attribute and the toggle button accordingly.&lt;/p&gt;

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

&lt;p&gt;By following these steps, you can create a dark-light mode toggle that allows your users to switch between different color schemes for your website or web application.&lt;/p&gt;

&lt;p&gt;Source will be available on : &lt;a href="https://github.com/erajamanickam/dark-light-mode"&gt;https://github.com/erajamanickam/dark-light-mode&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Live demo : &lt;a href="https://dark-light-mode-css.vercel.app/"&gt;https://dark-light-mode-css.vercel.app/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Watch on video : &lt;a href="https://youtu.be/hBzKhTkLGWU"&gt;https://youtu.be/hBzKhTkLGWU&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Codepen : &lt;a href="https://codepen.io/erajamanickam/pen/JjaBmpB"&gt;https://codepen.io/erajamanickam/pen/JjaBmpB&lt;/a&gt;&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>css</category>
      <category>webdev</category>
      <category>programming</category>
    </item>
    <item>
      <title>Add to cart using javascript</title>
      <dc:creator>Rajamanickam</dc:creator>
      <pubDate>Sun, 05 Mar 2023 15:07:44 +0000</pubDate>
      <link>https://dev.to/rajamanickam/add-to-cart-using-javascript-3nom</link>
      <guid>https://dev.to/rajamanickam/add-to-cart-using-javascript-3nom</guid>
      <description>&lt;p&gt;In this article, we'll learn how to implement this feature using JavaScript and local storage.&lt;/p&gt;

&lt;p&gt;Adding items to a shopping cart is a common feature in e-commerce websites.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Localstorage&lt;/strong&gt;&lt;br&gt;
Local storage is a feature available in modern web browsers that allows websites to store data locally on the user's device. This data persists even after the user closes the browser or turns off their device, making it an ideal choice for storing shopping cart data.&lt;/p&gt;

&lt;p&gt;Save Data to Local Storage&lt;br&gt;
&lt;code&gt;localStorage.setItem(key, value);&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Read Data from Local Storage&lt;br&gt;
&lt;code&gt;localStorage.getItem(key);&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Remove Data from Local Storage&lt;br&gt;
&lt;code&gt;localStorage.removeItem(key);&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Remove All (Clear Local Storage)&lt;br&gt;
&lt;code&gt;localStorage.clear();&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Shopping Cart&lt;/strong&gt;&lt;br&gt;
To add an item to the shopping cart using JavaScript and local storage, we need to follow the following steps:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Create a function that takes the item to be added as a parameter.&lt;/li&gt;
&lt;li&gt;Retrieve the current cart data from local storage.&lt;/li&gt;
&lt;li&gt;Check if the item to be added already exists in the cart. If so, increase its quantity. If not, add the item to the cart with a quantity of 1.&lt;/li&gt;
&lt;li&gt;Save the updated cart data to local storage.&lt;/li&gt;
&lt;li&gt;Update the UI to reflect the changes in the cart.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Filter&lt;/strong&gt;&lt;br&gt;
A category filter allows users to filter a list of items based on categories&lt;/p&gt;

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

&lt;p&gt;&lt;strong&gt;Search Products&lt;/strong&gt;&lt;br&gt;
The jQuery code waits for the document to be ready and then attaches a &lt;code&gt;keyup&lt;/code&gt; event listener to the search input field. This event will be triggered whenever the user types or deletes a character in the search box.&lt;/p&gt;

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

&lt;p&gt;I hope this tutorial will be useful to you&lt;/p&gt;

&lt;p&gt;Source will be available on : &lt;a href="https://github.com/erajamanickam/add-to-cart-javascript"&gt;https://github.com/erajamanickam/add-to-cart-javascript&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Live demo : &lt;a href="https://add-to-cart-javascript.vercel.app/"&gt;https://add-to-cart-javascript.vercel.app/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Watch on video : &lt;a href="https://youtu.be/UPyNp-SVV4M"&gt;https://youtu.be/UPyNp-SVV4M&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Codepen : &lt;a href="https://codepen.io/erajamanickam/pen/YzOjZLa"&gt;https://codepen.io/erajamanickam/pen/YzOjZLa&lt;/a&gt;&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>beginners</category>
      <category>webdev</category>
      <category>programming</category>
    </item>
    <item>
      <title>Send email using reactjs</title>
      <dc:creator>Rajamanickam</dc:creator>
      <pubDate>Sun, 26 Feb 2023 16:04:15 +0000</pubDate>
      <link>https://dev.to/rajamanickam/send-email-using-reactjs-7ij</link>
      <guid>https://dev.to/rajamanickam/send-email-using-reactjs-7ij</guid>
      <description>&lt;p&gt;Create a React.js application using either Create React App or by setting up a React project manually.&lt;/p&gt;

&lt;p&gt;Install the emailjs-com package by running the following command in the terminal:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;npm install emailjs-com&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Import the emailjs-com package in your React component where you want to send the email:&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%2Fo6i853m4umh9wbuyzty1.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%2Fo6i853m4umh9wbuyzty1.png" alt="Image description" width="800" height="375"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Initialize Email.js by providing your Email.js user ID. This ID can be obtained by creating a free account on the Email.js website.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href="https://www.emailjs.com/" rel="noopener noreferrer"&gt;Emailjs.com&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;A quick and simple way to get a good understanding of EmailJS is to follow our "Contact Form" tutorial that covers all the fundamentals of EmailJS.&lt;/p&gt;

&lt;p&gt;Create a function in your component to send the email. The function should use the send method provided by the emailjs-com package and pass the necessary parameters such as the service ID, template ID, template parameters, and callback function.&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%2Fxdboijcoux52gpys2ecw.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%2Fxdboijcoux52gpys2ecw.png" alt="Image description" width="800" height="430"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Now we can implement Regex Form validation.&lt;/p&gt;

&lt;p&gt;To add regular expression (regex) validation to your email sending form in React, you can use JavaScript's built-in RegExp object to match the input data against a pattern. &lt;/p&gt;

&lt;p&gt;If the input data does not match the pattern, you can display an error message to the user. Here's an example:&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%2Fd9u1kzepgdf3r0kjffhb.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%2Fd9u1kzepgdf3r0kjffhb.png" alt="Image description" width="800" height="359"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;For Validation:&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%2F22k40y8lrmibqap6ne4v.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%2F22k40y8lrmibqap6ne4v.png" alt="Image description" width="800" height="411"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Emailjs Dashboard:&lt;br&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%2Fthyqg37owk1d9eprqjb4.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%2Fthyqg37owk1d9eprqjb4.PNG" alt="Image description" width="800" height="402"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Email message:&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%2Fnzy7xjtaj8b96n2b6v3j.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%2Fnzy7xjtaj8b96n2b6v3j.PNG" alt="Image description" width="800" height="405"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Source will be available on : &lt;a href="https://github.com/erajamanickam/how-to-sent-email-in-reactjs-using-emailjs" rel="noopener noreferrer"&gt;https://github.com/erajamanickam/how-to-sent-email-in-reactjs-using-emailjs&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Live demo : &lt;a href="https://how-to-sent-email-in-reactjs.vercel.app/" rel="noopener noreferrer"&gt;https://how-to-sent-email-in-reactjs.vercel.app/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Watch on video : &lt;a href="https://youtu.be/W4JUdgR8a0E" rel="noopener noreferrer"&gt;https://youtu.be/W4JUdgR8a0E&lt;/a&gt;&lt;/p&gt;

</description>
      <category>tailwindcss</category>
      <category>opensource</category>
      <category>webdev</category>
      <category>discuss</category>
    </item>
    <item>
      <title>Real time battery level using javascript</title>
      <dc:creator>Rajamanickam</dc:creator>
      <pubDate>Tue, 24 Jan 2023 18:02:55 +0000</pubDate>
      <link>https://dev.to/rajamanickam/real-time-battery-level-using-javascript-24n3</link>
      <guid>https://dev.to/rajamanickam/real-time-battery-level-using-javascript-24n3</guid>
      <description>&lt;p&gt;In this tutorial we will make a real-time battery level indicator using JavaScript.&lt;/p&gt;

&lt;p&gt;You will need to use the Navigator.getBattery() method to access the battery information of the device. This method returns a Promise that resolves to a BatteryManager object, which contains information about the battery level, charging status, and other properties.&lt;/p&gt;

&lt;p&gt;Here is an example of how you can use the Navigator.getBattery() method to create a real-time battery level indicator:&lt;/p&gt;

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

&lt;p&gt;This code uses the level property of the BatteryManager object to get the current battery level and then sets the width of the progress bar to match. &lt;/p&gt;

&lt;p&gt;The addEventListener() method is used to listen for the levelchange event, which is fired whenever the battery level changes, so the progress bar can be updated in real-time.&lt;/p&gt;

&lt;p&gt;Source will be available on : &lt;a href="https://github.com/erajamanickam/real-time-battery-level"&gt;https://github.com/erajamanickam/real-time-battery-level&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Live demo of Real time battery level indicator : &lt;a href="https://erajamanickam.github.io/real-time-battery-level/"&gt;https://erajamanickam.github.io/real-time-battery-level/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Watch on video : &lt;a href="https://www.youtube.com/watch?v=aGtoHum4ruA"&gt;https://www.youtube.com/watch?v=aGtoHum4ruA&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Codepen : &lt;a href="https://codepen.io/erajamanickam/pen/zYJLZPK"&gt;https://codepen.io/erajamanickam/pen/zYJLZPK&lt;/a&gt;&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>css</category>
      <category>developer</category>
    </item>
    <item>
      <title>Simple Product enquiry in php with mail function</title>
      <dc:creator>Rajamanickam</dc:creator>
      <pubDate>Tue, 10 Jan 2023 17:53:30 +0000</pubDate>
      <link>https://dev.to/rajamanickam/simple-product-enquiry-in-php-with-mail-function-12nf</link>
      <guid>https://dev.to/rajamanickam/simple-product-enquiry-in-php-with-mail-function-12nf</guid>
      <description>&lt;p&gt;Create simple form in the fields of Name, Email, Mobile, Address and Product Count and amount.&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%2Fmldodu2zfmblvh1yp94g.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%2Fmldodu2zfmblvh1yp94g.png" alt="Image description" width="800" height="306"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Now, Fetch submitted &lt;strong&gt;Time and Date&lt;/strong&gt; with country wise using PHP&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%2Fo8859r73alfqqxk5gyri.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%2Fo8859r73alfqqxk5gyri.png" alt="Image description" width="800" height="384"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;submitting the form data to the server.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;isset($_POST['submit'])&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;get values submitted via HTTP POST method.&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%2F3ws8rqixxghlbfqn2unb.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%2F3ws8rqixxghlbfqn2unb.png" alt="Image description" width="800" height="695"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;While submitting form, Inject the current date and time in hidden type&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%2Fw7tc8y9qtotp9vmtgaf5.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%2Fw7tc8y9qtotp9vmtgaf5.png" alt="Image description" width="800" height="235"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Next step, Send values in &lt;strong&gt;Mail&lt;/strong&gt; using php &lt;strong&gt;mailto&lt;/strong&gt; function&lt;br&gt;
PHP mail() function is used to send email in PHP. You can send text message, html message and attachment with message using PHP mail() function.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;mailto(to, subject, header, message);&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;When you send a text message using PHP then all the content will be treated as simple text. Even if you will include HTML tags in a text message, it will be displayed as simple text and HTML tags will not be formatted according to HTML syntax.&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%2Ff4sv2hgbvy5kuoi857wy.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%2Ff4sv2hgbvy5kuoi857wy.png" alt="Image description" width="800" height="876"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Adding simple css for styling..&lt;/p&gt;

&lt;p&gt;Preview:&lt;br&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%2F459u90okrkaqpn2buo1p.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%2F459u90okrkaqpn2buo1p.PNG" alt="Image description" width="800" height="369"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Email Data:&lt;br&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%2Fuh91f54nn0hr1ebhmbq7.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%2Fuh91f54nn0hr1ebhmbq7.png" alt="Image description" width="800" height="628"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Github : &lt;a href="https://github.com/erajamanickam/product-enquire-php-with-mail" rel="noopener noreferrer"&gt;https://github.com/erajamanickam/product-enquire-php-with-mail&lt;/a&gt;&lt;br&gt;
Demo : &lt;a href="https://erajaman.000webhostapp.com/product-enquire/" rel="noopener noreferrer"&gt;https://erajaman.000webhostapp.com/product-enquire/&lt;/a&gt;&lt;br&gt;
Youtube : &lt;a href="https://www.youtube.com/watch?v=M_ByzcrmHjQ" rel="noopener noreferrer"&gt;https://www.youtube.com/watch?v=M_ByzcrmHjQ&lt;/a&gt;&lt;/p&gt;

</description>
      <category>productivity</category>
      <category>motivation</category>
    </item>
    <item>
      <title>Star Rating Feedback using Javascript</title>
      <dc:creator>Rajamanickam</dc:creator>
      <pubDate>Mon, 19 Dec 2022 19:48:08 +0000</pubDate>
      <link>https://dev.to/rajamanickam/star-rating-feedback-using-javascript-4ipa</link>
      <guid>https://dev.to/rajamanickam/star-rating-feedback-using-javascript-4ipa</guid>
      <description>&lt;p&gt;In this tutorial has helped you learn how to create star rating feedback using javascript&lt;/p&gt;

&lt;p&gt;First of all, create simple form&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;lt;form method="GET" name="feedback" action="#" onsubmit="feedBack(); return false"&amp;gt;
      &amp;lt;input type="radio" name="star" id="rate" value=""&amp;gt;
      &amp;lt;textarea cols="30" id="comment" placeholder="Describe your comment"&amp;gt;&amp;lt;/textarea&amp;gt;
&amp;lt;/form&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;while development use the &lt;a href="https://fontawesome.com/icons"&gt;fontawesome icons&lt;/a&gt; and &lt;a href="https://fonts.google.com/"&gt;google fonts&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Now get the input values using &lt;strong&gt;javascript&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;function feedBack() {
 var rating_Count = document.querySelector("input[name=star]:checked").value;
    var comment = document.getElementById('comment').value; 
document.getElementById('comment_text').innerHTML = comment;
    document.getElementById('star_count').innerHTML = rating_Count;
  }
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Adding simple validation&lt;/p&gt;

&lt;p&gt;&lt;code&gt;&lt;br&gt;
document.getElementById('comment').value === ''&lt;br&gt;
&lt;/code&gt;&lt;br&gt;
if value is empty shown error message.&lt;/p&gt;

&lt;p&gt;Youtube Video : &lt;a href="https://youtube.com/shorts/2LLre0ld1pk?feature=share"&gt;https://youtube.com/shorts/2LLre0ld1pk?feature=share&lt;/a&gt;&lt;br&gt;
Demo : &lt;a href="https://star-rating-feedback.vercel.app/"&gt;https://star-rating-feedback.vercel.app/&lt;/a&gt;&lt;br&gt;
Portfolio : &lt;a href="https://rajamanickam.vercel.app/"&gt;https://rajamanickam.vercel.app/&lt;/a&gt;&lt;br&gt;
Github : &lt;a href="https://github.com/erajamanickam/star-rating-feedback"&gt;https://github.com/erajamanickam/star-rating-feedback&lt;/a&gt;&lt;br&gt;
Codepen : &lt;a href="https://codepen.io/erajamanickam/pen/dyjydOj"&gt;https://codepen.io/erajamanickam/pen/dyjydOj&lt;/a&gt;&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>css</category>
      <category>react</category>
      <category>beginners</category>
    </item>
  </channel>
</rss>
