<?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: Sanket Bodake 🇮🇳</title>
    <description>The latest articles on DEV Community by Sanket Bodake 🇮🇳 (@sanketbodake).</description>
    <link>https://dev.to/sanketbodake</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%2F672022%2F2fc852f0-a953-40ad-97cc-32abbdf13af7.jpg</url>
      <title>DEV Community: Sanket Bodake 🇮🇳</title>
      <link>https://dev.to/sanketbodake</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/sanketbodake"/>
    <language>en</language>
    <item>
      <title>Digital Marketing Agency</title>
      <dc:creator>Sanket Bodake 🇮🇳</dc:creator>
      <pubDate>Wed, 02 Apr 2025 07:54:54 +0000</pubDate>
      <link>https://dev.to/sanketbodake/digital-marketing-agency-414n</link>
      <guid>https://dev.to/sanketbodake/digital-marketing-agency-414n</guid>
      <description>&lt;p&gt;Digital marketing agency website build using HTML, CSS and JS&lt;/p&gt;

&lt;p&gt;&lt;iframe height="600" src="https://codepen.io/sanketbodke/embed/KwKbeJK?height=600&amp;amp;default-tab=result&amp;amp;embed-version=2"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

</description>
      <category>codepen</category>
      <category>website</category>
      <category>webdev</category>
      <category>uidesign</category>
    </item>
    <item>
      <title>Let's Cook (Recipe Web App)</title>
      <dc:creator>Sanket Bodake 🇮🇳</dc:creator>
      <pubDate>Mon, 15 Jan 2024 10:23:32 +0000</pubDate>
      <link>https://dev.to/sanketbodake/lets-cook-recipe-web-app-1h0e</link>
      <guid>https://dev.to/sanketbodake/lets-cook-recipe-web-app-1h0e</guid>
      <description>&lt;p&gt;&lt;a href="https://mern-recipe-app-sigma.vercel.app/" rel="noopener noreferrer"&gt;Project Link&lt;/a&gt;&lt;br&gt;
&lt;a href="https://github.com/sanketbodke/MERN-Recipe-App" rel="noopener noreferrer"&gt;Github Link&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Features
&lt;/h2&gt;

&lt;p&gt;🔐 User Authentication with JWT Token:&lt;/p&gt;

&lt;p&gt;Implemented user authentication using JSON Web Tokens (JWT) to ensure secure and seamless user experiences. Users can now enjoy personalised features and data security.&lt;/p&gt;

&lt;p&gt;🔒 MongoDB Password Hashing:&lt;/p&gt;

&lt;p&gt;I integrated bcryptjs to hash passwords before storing them in MongoDB. This added layer of protection ensures that user passwords remain confidential, even in the event of a potential data breach.&lt;/p&gt;

&lt;p&gt;🍽️ Create and Save Recipes:&lt;/p&gt;

&lt;p&gt;Empowered users to unleash their culinary creativity by providing a platform to create and share their favorite recipes. The app allows users to save and organize recipes shared by others, fostering a community of food enthusiasts.&lt;/p&gt;

&lt;p&gt;🌐 MERN Stack Development:&lt;/p&gt;

&lt;p&gt;Built on the MERN (MongoDB, Express.js, React, Node.js) stack, the Recipe Web App delivers a robust and scalable architecture. This full-stack approach ensures a seamless flow of data and interactions between the front and back end.&lt;/p&gt;

&lt;p&gt;🔄 Redux Toolkit for State Management:&lt;/p&gt;

&lt;p&gt;Optimized the application's state management with Redux Toolkit, ensuring efficient and predictable state changes. This approach not only enhances performance but also streamlines the development process.&lt;/p&gt;

&lt;p&gt;🎨 Ant Design for Stylish UI:&lt;/p&gt;

&lt;p&gt;Focused on delivering an aesthetically pleasing user interface, I utilized Ant Design to create a modern and responsive design. The result is an intuitive and visually appealing cooking platform that enhances the overall user experience.&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>webdev</category>
      <category>node</category>
      <category>mongodb</category>
    </item>
    <item>
      <title>Social Media Dashboard UI</title>
      <dc:creator>Sanket Bodake 🇮🇳</dc:creator>
      <pubDate>Fri, 22 Dec 2023 16:56:03 +0000</pubDate>
      <link>https://dev.to/sanketbodake/social-media-dashboard-ui-gp0</link>
      <guid>https://dev.to/sanketbodake/social-media-dashboard-ui-gp0</guid>
      <description>&lt;p&gt;Social Media Dashboard Using HTML and CSS&lt;/p&gt;

&lt;p&gt;&lt;iframe height="600" src="https://codepen.io/sanketbodke/embed/WNmNMvG?height=600&amp;amp;default-tab=result&amp;amp;embed-version=2"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

</description>
      <category>codepen</category>
      <category>webdev</category>
      <category>css</category>
      <category>html</category>
    </item>
    <item>
      <title>Sending Emails with Node.js using Nodemailer</title>
      <dc:creator>Sanket Bodake 🇮🇳</dc:creator>
      <pubDate>Wed, 20 Dec 2023 13:22:01 +0000</pubDate>
      <link>https://dev.to/sanketbodake/sending-emails-with-nodejs-using-nodemailer-5a64</link>
      <guid>https://dev.to/sanketbodake/sending-emails-with-nodejs-using-nodemailer-5a64</guid>
      <description>&lt;h2&gt;
  
  
  What is Nodemailer ?
&lt;/h2&gt;

&lt;p&gt;Nodemailer is a module for Node.js that simplifies the process of sending emails from a Node.js application. It provides an easy-to-use API for composing and sending emails using various email services and transport methods. With Nodemailer, you can send plain text emails, HTML emails, and even attachments.&lt;/p&gt;

&lt;h2&gt;
  
  
  Install Nodemailer
&lt;/h2&gt;

&lt;p&gt;Use the following command to install nodemailer :&lt;br&gt;
&lt;/p&gt;

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

&lt;/div&gt;



&lt;h2&gt;
  
  
  Configure Nodemailer 
&lt;/h2&gt;

&lt;p&gt;Below is an example of configuring Nodemailer with Gmail using the SMTP (Simple Mail Transfer Protocol).&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;const nodemailer = require('nodemailer');

// Create a transporter object using Gmail SMTP
const transporter = nodemailer.createTransport({
    service: 'gmail',
    auth: {
        user: 'your-email@gmail.com',
        pass: 'your-email-password'
    }
});

// Additional configuration options
const mailOptions = {
    //...
};

// Send email
transporter.sendMail(mailOptions, (error, info) =&amp;gt; {
    if (error) {
        console.error('Error:', error);
    } else {
        console.log('Email sent:', info.response);
    }
});
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Additional Configuration Options
&lt;/h2&gt;

&lt;p&gt;You can customise the email further by adding options to the mailOptions object.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;const mailOptions = {
    from: 'your-email@gmail.com',
    to: 'recipient-email@example.com',
    subject: 'Test Email',
    text: 'This is a test email sent from Node.js using nodemailer.',
    html: '&amp;lt;p&amp;gt;This is a &amp;lt;b&amp;gt;test&amp;lt;/b&amp;gt; email sent from Node.js using nodemailer.&amp;lt;/p&amp;gt;',
    attachments: [
        {
            filename: 'attachment.txt',
            content: 'Attachment content'
        }
    ]
};
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;These options allow you to specify the sender, recipient, subject, email body (both plain text and HTML), and even attachments.&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion 
&lt;/h2&gt;

&lt;p&gt;To wrap it up, Nodemailer is a handy tool in Node.js for sending emails easily. Whether you're just sending simple messages or dealing with more complex email tasks, Nodemailer is flexible enough to handle it. As you use Nodemailer, keep an eye on any updates and best practices to keep your email communication smooth and trouble-free. Enjoy coding!&lt;/p&gt;

&lt;p&gt;So, If you find this helpful please like and share it with everyone.&lt;/p&gt;

&lt;p&gt;Sharing is Caring!&lt;/p&gt;

&lt;p&gt;Thank you :)&lt;/p&gt;

</description>
      <category>nodej</category>
      <category>javascript</category>
      <category>webdev</category>
      <category>programming</category>
    </item>
    <item>
      <title>Show and Hide Password React</title>
      <dc:creator>Sanket Bodake 🇮🇳</dc:creator>
      <pubDate>Tue, 07 Nov 2023 05:52:44 +0000</pubDate>
      <link>https://dev.to/sanketbodake/show-and-hide-password-react-3ejl</link>
      <guid>https://dev.to/sanketbodake/show-and-hide-password-react-3ejl</guid>
      <description>&lt;p&gt;Check out this Pen I made!&lt;/p&gt;

&lt;p&gt;&lt;iframe height="600" src="https://codepen.io/sanketbodke/embed/LYqxrGL?height=600&amp;amp;default-tab=result&amp;amp;embed-version=2"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

</description>
      <category>codepen</category>
      <category>react</category>
      <category>webdev</category>
      <category>javascript</category>
    </item>
    <item>
      <title>Creating a RESTful API with Node.js</title>
      <dc:creator>Sanket Bodake 🇮🇳</dc:creator>
      <pubDate>Sun, 05 Nov 2023 09:22:56 +0000</pubDate>
      <link>https://dev.to/sanketbodake/creating-a-restful-api-with-nodejs-30km</link>
      <guid>https://dev.to/sanketbodake/creating-a-restful-api-with-nodejs-30km</guid>
      <description>&lt;h2&gt;
  
  
  What is a RESTful API?
&lt;/h2&gt;

&lt;p&gt;REST, which stands for Representational State Transfer, is an architectural style for designing networked applications. RESTful APIs adhere to this style and use HTTP requests to perform CRUD (Create, Read, Update, Delete) operations on resources. These resources are represented as URLs and are typically exposed in a structured manner for client applications to consume.&lt;/p&gt;

&lt;h2&gt;
  
  
  Prerequisites
&lt;/h2&gt;

&lt;p&gt;Node.js and npm (Node Package Manager) installed on your system.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 1: Initialise a Node.js Project
&lt;/h2&gt;

&lt;p&gt;To get started, create a new directory for your project and open a terminal in that directory. Run the following command to create a new Node.js project:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;npm init&lt;/code&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 2: Install Express
&lt;/h2&gt;

&lt;p&gt;Express is a minimal and flexible Node.js web application framework that simplifies the process of building APIs.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;npm install express&lt;/code&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 3: Create an Express Application
&lt;/h2&gt;

&lt;p&gt;In your project directory, create an server.js or index.js file. This is where your Express application will be defined.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;const express = require('express');
const app = express();
const port = 4000;

app.get('/', (req, res) =&amp;gt; {
  res.send('Hello, NodeJs!');
});

app.listen(port, () =&amp;gt; {
  console.log(`Server is running on port ${port}`);
});
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This simple Express application listens on port 4000 and responds with "Hello, NodeJs!" when you access the root URL.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 4: Define Routes and Implement API Endpoints
&lt;/h2&gt;

&lt;p&gt;Now, let's create some routes and implement API endpoints. In a RESTful API, routes represent resources and HTTP methods (GET, POST, PUT, DELETE) define the actions.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;// GET request to retrieve all items

app.get('/api/items', (req, res) =&amp;gt; {
  // Implement logic to retrieve and return items
});

// GET request to retrieve a single item by ID

app.get('/api/items/:id', (req, res) =&amp;gt; {
  // Implement logic to retrieve and return a specific item
});

// POST request to create a new item

app.post('/api/items', (req, res) =&amp;gt; {
  // Implement logic to create a new item
});

// PUT request to update an existing item by ID

app.put('/api/items/:id', (req, res) =&amp;gt; {
  // Implement logic to update a specific item
});

// DELETE request to delete an item by ID

app.delete('/api/items/:id', (req, res) =&amp;gt; {
  // Implement logic to delete a specific item
});
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Step 5: Start the Server
&lt;/h2&gt;

&lt;p&gt;After defining your routes and implementing the API endpoints, start the server by running:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;node app.js&lt;/code&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 6: Test Your API
&lt;/h2&gt;

&lt;p&gt;Use tools like Postman or cURL to test your API endpoints. You can send GET, POST, PUT, and DELETE requests to interact with your API and verify that it behaves as expected.&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;With the Express framework, you can easily define routes, implement API endpoints, and handle HTTP requests and responses. This blog provides a basic overview of the process, but there's much more to explore and learn. As you become more comfortable with Node.js and Express, you can enhance your API with features like authentication, validation, and error handling to create a production-ready, scalable, and secure API.&lt;/p&gt;

&lt;h2&gt;
  
  
  💡 Bonus : Automate Development with Nodemon
&lt;/h2&gt;

&lt;p&gt;Developing a Node.js application can be made significantly more efficient with the help of a fantastic tool called Nodemon. Nodemon offers the convenience of automatic server restarts whenever you make changes to your code, which is a massive time-saver during development.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 1: Installation
&lt;/h2&gt;

&lt;p&gt;Start by installing Nodemon as a development dependency in your project. Open your terminal and run the following command:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;npm install nodemon&lt;/code&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 2: Update Your npm Scripts
&lt;/h2&gt;

&lt;p&gt;Once Nodemon is installed, you can update your npm scripts in the &lt;code&gt;package.json&lt;/code&gt; file to use Nodemon. Here's an example of how you can modify the start script:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;"scripts": {
  "start": "nodemon app.js"
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Now, when you run npm start, Nodemon will monitor your project files and restart the server automatically when changes are detected.&lt;/p&gt;

&lt;h2&gt;
  
  
  Hot Reloading
&lt;/h2&gt;

&lt;p&gt;One of the most appreciated features of Nodemon is its support for "hot reloading." When you make changes in your code, Nodemon ensures that the new code is applied instantly without any manual intervention. This immediate feedback is invaluable for rapid development and debugging.&lt;/p&gt;

&lt;p&gt;So, If you find this helpful please like ❤️ and share it with everyone.&lt;/p&gt;

&lt;p&gt;Sharing is Caring!&lt;/p&gt;

&lt;p&gt;Thank you :)&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>webdev</category>
      <category>node</category>
      <category>api</category>
    </item>
    <item>
      <title>Hover Effects</title>
      <dc:creator>Sanket Bodake 🇮🇳</dc:creator>
      <pubDate>Sun, 05 Nov 2023 09:10:34 +0000</pubDate>
      <link>https://dev.to/sanketbodake/hover-effects-4and</link>
      <guid>https://dev.to/sanketbodake/hover-effects-4and</guid>
      <description>&lt;p&gt;Check out this Pen I made!&lt;/p&gt;

&lt;p&gt;&lt;iframe height="600" src="https://codepen.io/sanketbodke/embed/WNPogEY?height=600&amp;amp;default-tab=result&amp;amp;embed-version=2"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

</description>
      <category>codepen</category>
      <category>css</category>
      <category>webdev</category>
      <category>html</category>
    </item>
    <item>
      <title>School Dashboard UI</title>
      <dc:creator>Sanket Bodake 🇮🇳</dc:creator>
      <pubDate>Thu, 29 Jun 2023 18:40:09 +0000</pubDate>
      <link>https://dev.to/sanketbodake/school-dashboard-ui-2891</link>
      <guid>https://dev.to/sanketbodake/school-dashboard-ui-2891</guid>
      <description>&lt;p&gt;School Dashboard UI Build using HTML , CSS and jQuery 
Features
* Responsive
* Student Profile
* Sidebar
* dark mode &lt;/p&gt;

&lt;p&gt;&lt;iframe height="600" src="https://codepen.io/sanketbodke/embed/WNYjvNq?height=600&amp;amp;default-tab=result&amp;amp;embed-version=2"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

</description>
      <category>codepen</category>
      <category>html</category>
      <category>css</category>
      <category>javascript</category>
    </item>
    <item>
      <title>Form Submit Message</title>
      <dc:creator>Sanket Bodake 🇮🇳</dc:creator>
      <pubDate>Sun, 11 Jun 2023 16:51:29 +0000</pubDate>
      <link>https://dev.to/sanketbodake/form-submit-message-12a3</link>
      <guid>https://dev.to/sanketbodake/form-submit-message-12a3</guid>
      <description>&lt;p&gt;&lt;iframe height="600" src="https://codepen.io/sanketbodke/embed/jOQPZJr?height=600&amp;amp;default-tab=result&amp;amp;embed-version=2"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

</description>
      <category>codepen</category>
      <category>html</category>
      <category>css</category>
      <category>webdev</category>
    </item>
    <item>
      <title>Modal</title>
      <dc:creator>Sanket Bodake 🇮🇳</dc:creator>
      <pubDate>Wed, 31 May 2023 18:38:07 +0000</pubDate>
      <link>https://dev.to/sanketbodake/modal-3o0h</link>
      <guid>https://dev.to/sanketbodake/modal-3o0h</guid>
      <description>&lt;p&gt;&lt;iframe height="600" src="https://codepen.io/sanketbodke/embed/wvYLrbX?height=600&amp;amp;default-tab=result&amp;amp;embed-version=2"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

</description>
      <category>codepen</category>
      <category>css</category>
      <category>jquery</category>
      <category>webdev</category>
    </item>
    <item>
      <title>Scroll Animation | ScrollReveal</title>
      <dc:creator>Sanket Bodake 🇮🇳</dc:creator>
      <pubDate>Fri, 17 Feb 2023 16:59:25 +0000</pubDate>
      <link>https://dev.to/sanketbodake/scroll-animation-scrollreveal-30jj</link>
      <guid>https://dev.to/sanketbodake/scroll-animation-scrollreveal-30jj</guid>
      <description>&lt;p&gt;Scroll animation using ScrollReveal Js library&lt;/p&gt;

&lt;p&gt;&lt;iframe height="600" src="https://codepen.io/sanketbodke/embed/abaORXP?height=600&amp;amp;default-tab=result&amp;amp;embed-version=2"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

</description>
      <category>codepen</category>
      <category>javascript</category>
      <category>webdev</category>
    </item>
    <item>
      <title>Character Counter</title>
      <dc:creator>Sanket Bodake 🇮🇳</dc:creator>
      <pubDate>Fri, 03 Feb 2023 16:07:12 +0000</pubDate>
      <link>https://dev.to/sanketbodake/character-counter-448i</link>
      <guid>https://dev.to/sanketbodake/character-counter-448i</guid>
      <description>&lt;p&gt;&lt;iframe height="600" src="https://codepen.io/sanketbodke/embed/vYabOwL?height=600&amp;amp;default-tab=result&amp;amp;embed-version=2"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

</description>
      <category>codepen</category>
      <category>javascript</category>
      <category>css</category>
      <category>webdev</category>
    </item>
  </channel>
</rss>
