<?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>Forem: Soumyajit Pan</title>
    <description>The latest articles on Forem by Soumyajit Pan (@soumyajit7).</description>
    <link>https://forem.com/soumyajit7</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%2F1071900%2F3d7797b1-cc3f-4b16-8b97-119cdc4a98df.jpg</url>
      <title>Forem: Soumyajit Pan</title>
      <link>https://forem.com/soumyajit7</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/soumyajit7"/>
    <language>en</language>
    <item>
      <title>Milligram-Connect Social Media Application</title>
      <dc:creator>Soumyajit Pan</dc:creator>
      <pubDate>Sun, 01 Dec 2024 12:40:43 +0000</pubDate>
      <link>https://forem.com/soumyajit7/milligram-connect-social-media-application-57gn</link>
      <guid>https://forem.com/soumyajit7/milligram-connect-social-media-application-57gn</guid>
      <description>&lt;h2&gt;
  
  
  Splash Screen
&lt;/h2&gt;

&lt;p&gt;A splash screen is the initial screen featuring the app's logo or branding that appears when the app is launched, providing a visually engaging introduction as it loads.&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%2Fiqnh84otlaigs1vvmxhd.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%2Fiqnh84otlaigs1vvmxhd.png" alt="splash screen" width="720" height="1600"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Login Screen
&lt;/h2&gt;

&lt;p&gt;The login screen allows existing users to access their accounts, while the signup screen enables new users to create an account by providing their details.&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%2F319nxh6hjgbex3k7ldpx.jpg" 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%2F319nxh6hjgbex3k7ldpx.jpg" alt="Login Screen" width="800" height="886"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Home Screen
&lt;/h2&gt;

&lt;p&gt;Once logged in, the home screen displays a scrollable feed where users can view all posts, like, comment, share, and save them. Additionally, users can open each post to see detailed information about likes and comments.&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%2F2incao2d889unuwvqiay.jpg" 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%2F2incao2d889unuwvqiay.jpg" alt="home screen" width="800" height="886"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Users can comment and share on the posts shown in the images below.&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%2Fxqb8k8unyp4whtko542i.jpg" 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%2Fxqb8k8unyp4whtko542i.jpg" alt="posts comments share" width="800" height="886"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Search Screen
&lt;/h2&gt;

&lt;p&gt;On the Search Screen, users can navigate to the search option in the bottom navbar to find and search for usernames available in the application.&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%2F1zi7ah9z15z2jlps63cq.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%2F1zi7ah9z15z2jlps63cq.png" alt="Image description" width="720" height="1600"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Create Post Screen
&lt;/h2&gt;

&lt;p&gt;Users can access the Create Post screen via the bottom navigation bar, add images from the mobile gallery, write a caption, and post the content.&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%2Ffyml2bu4myir7jn5iniu.jpg" 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%2Ffyml2bu4myir7jn5iniu.jpg" alt="create post screen" width="800" height="886"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Notification Screen
&lt;/h2&gt;

&lt;p&gt;Users can navigate to the Notifications screen via the bottom navigation bar to view and open all notifications.&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%2F2kkonjt2ftuvwj6pojmx.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%2F2kkonjt2ftuvwj6pojmx.png" alt="notification screen" width="720" height="1600"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Messaging Screen
&lt;/h2&gt;

&lt;p&gt;Users can navigate to the Messaging screen via the bottom navigation bar, view the list of users, select a user to chat with, and see all messages for that conversation.&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%2Fh6keqn8m3dy2edjprkzm.jpg" 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%2Fh6keqn8m3dy2edjprkzm.jpg" alt="messaging screen" width="800" height="886"&gt;&lt;/a&gt;&lt;br&gt;
To delete user chats, click on the three dots in the top right corner of the screen. This will display the following popup with the delete option.&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%2Fmfp8jqe2x3bdkos8zpj7.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%2Fmfp8jqe2x3bdkos8zpj7.png" alt="delete chats" width="720" height="1600"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Settings Screen
&lt;/h2&gt;

&lt;p&gt;After clicking the settings icon in the top right corner, the following settings screen will open. Users can access:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Account Center&lt;/li&gt;
&lt;li&gt;Saved Posts&lt;/li&gt;
&lt;li&gt;Account Privacy&lt;/li&gt;
&lt;li&gt;Blocked (Not implemented yet)&lt;/li&gt;
&lt;li&gt;Milligram Verification&lt;/li&gt;
&lt;li&gt;Logout&lt;/li&gt;
&lt;li&gt;Delete Account Options&lt;/li&gt;
&lt;/ul&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%2F96ozxips8cgfan8nbd2h.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%2F96ozxips8cgfan8nbd2h.png" alt="settings page" width="720" height="1600"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. Account Center&lt;/strong&gt;&lt;br&gt;
Upon clicking on the Account Center, the following page will open. Here, users can choose from two additional options:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Personal Details&lt;/li&gt;
&lt;li&gt;Password and Security&lt;/li&gt;
&lt;/ul&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%2F0f93ukrnrcw1ealiwa3t.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%2F0f93ukrnrcw1ealiwa3t.png" alt="account center" width="720" height="1600"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Personal Details&lt;/strong&gt;&lt;br&gt;
After clicking on the Personal Details option, users will be directed to the Personal Details screen where they can view the email address they used to register and log in to the Milligram Connect application.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Password and security&lt;/strong&gt;&lt;br&gt;
After clicking on the Password and Security option in the Account Center, users will be directed to the Change Password screen, where they can update their password.&lt;/p&gt;

&lt;p&gt;Below&lt;br&gt;
Left Image: Personal Details screen&lt;br&gt;
Right Image: Password and Security screen&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%2Fr0tfntyy49e2wl37fc1s.jpg" 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%2Fr0tfntyy49e2wl37fc1s.jpg" alt="Personal Details" width="800" height="886"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. Saved Posts&lt;/strong&gt;&lt;br&gt;
Upon clicking the Saved Posts option in Settings, users will be redirected to the Saved Posts screen where they can view posts they have saved from the feed.&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%2Fnhdqipmcepfe3aro84k9.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%2Fnhdqipmcepfe3aro84k9.png" alt="save posts" width="720" height="1600"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. Account Privacy&lt;/strong&gt;&lt;br&gt;
Upon clicking the Account Privacy option in Settings, users can choose between two privacy settings:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Public: All users in the Milligram application can see their profile.&lt;/li&gt;
&lt;li&gt;Private: Only connected people can see their profile.
&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%2F179ow4uxlvmtf11bb5q2.png" alt="account privacy" width="720" height="1600"&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;4. Milligram Verification&lt;/strong&gt;&lt;br&gt;
Upon clicking the Milligram Verification option in Settings, users will be redirected to the Milligram Verification screen. Here, they will see an option to send a verification email. After selecting this option, a verification email will be sent to their registered email address. The email will contain a URL that users must click to complete the verification process. Once successfully verified, the Milligram Verification screen will display a message saying "Your email ID is verified."&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%2Fzuaat6n44qn85zs8v0gt.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%2Fzuaat6n44qn85zs8v0gt.png" alt="verification" width="720" height="1600"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;5. Log out&lt;/strong&gt;&lt;br&gt;
Upon selecting the Log Out option, users will be logged out of the application and redirected to the login screen.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;6. Delete your account&lt;/strong&gt;&lt;br&gt;
Upon selecting the Delete Your Account option, users can permanently delete their account and all associated data from the application.&lt;/p&gt;

&lt;h2&gt;
  
  
  Profile Screen
&lt;/h2&gt;

&lt;p&gt;Upon clicking the user profile logo image in the top left corner, the profile screen will open.&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%2Fmtkrfkh0y144beuvf0f4.jpg" 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%2Fmtkrfkh0y144beuvf0f4.jpg" alt="profile" width="800" height="886"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Edit Profile Screen&lt;/strong&gt;&lt;br&gt;
Upon clicking the Edit Profile button in the profile screen, users will be redirected to the Edit Profile screen. The screen shown in the left image below will become visible.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Share Profile&lt;/strong&gt;&lt;br&gt;
Upon clicking on the share icon to the right of the username, users can share their profile URL with any user on other platforms, the screen shown in the right image below will become visible.&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%2F6i1ay2s6810ho3eusgcu.jpg" 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%2F6i1ay2s6810ho3eusgcu.jpg" alt="edit profile" width="800" height="886"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Followers &amp;amp; Followings Screen&lt;/strong&gt;&lt;br&gt;
On the user profile screen, if a user clicks on the "Followers" or "Followings" text, the respective screen will open. Here, users can view the list of followers who follow them and the list of users they are following.&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%2Flgkfzgao4grchysyn6ok.jpg" 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%2Flgkfzgao4grchysyn6ok.jpg" alt="followers and follwoings" width="800" height="886"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Open Another User's Profile&lt;/strong&gt;&lt;br&gt;
Upon clicking on any user from the followers or followings lists, the profile screen of that user will open. Users will be able to view the selected user's profile data, as shown in the image below.&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%2Fbcm32ypsmhc1hejg3twg.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%2Fbcm32ypsmhc1hejg3twg.png" alt="another users profile" width="720" height="1600"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Download and Install
&lt;/h2&gt;

&lt;p&gt;The Android version has been released! Click the link below to download and install&lt;br&gt;
&lt;a href="https://drive.google.com/drive/folders/1pk66rxazQqvdj0GTJ2Mdsm78N9W1JKBb?usp=sharing" rel="noopener noreferrer"&gt;Milligram Connect&lt;/a&gt;&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%2Ful85mhh5c16ug50g70fa.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%2Ful85mhh5c16ug50g70fa.png" alt="drive link" width="800" height="335"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Tech Stack Used
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;React Native CLI&lt;/li&gt;
&lt;li&gt;Firestore and Firebase Database&lt;/li&gt;
&lt;li&gt;Firebase Email Authentication&lt;/li&gt;
&lt;li&gt;Styled-Components for styling&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>webdev</category>
      <category>javascript</category>
      <category>reactnative</category>
      <category>react</category>
    </item>
    <item>
      <title>ExcelSheetIO</title>
      <dc:creator>Soumyajit Pan</dc:creator>
      <pubDate>Wed, 31 Jan 2024 16:21:46 +0000</pubDate>
      <link>https://forem.com/soumyajit7/excelsheetio-56hk</link>
      <guid>https://forem.com/soumyajit7/excelsheetio-56hk</guid>
      <description>&lt;p&gt;&lt;a href="https://pypi.org/project/ExcelSheetIO/" rel="noopener noreferrer"&gt;Click here to open ExcelSheetIO in PYPI&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;A Python package for efficient Excel sheet operations. Enables easy read/write functionality, data manipulation, and workflow automation. Ideal for handling both small and large datasets. Get started with ExcelSheetIO for a simplified data processing experience.&lt;/p&gt;

&lt;h2&gt;
  
  
  Installation Guide
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="n"&gt;pip&lt;/span&gt; &lt;span class="n"&gt;install&lt;/span&gt; &lt;span class="n"&gt;ExcelSheetIO&lt;/span&gt;

&lt;span class="c1"&gt;# For upgrade to the latest version
&lt;/span&gt;&lt;span class="n"&gt;pip&lt;/span&gt; &lt;span class="n"&gt;install&lt;/span&gt; &lt;span class="o"&gt;--&lt;/span&gt;&lt;span class="n"&gt;upgrade&lt;/span&gt; &lt;span class="n"&gt;ExcelSheetIO&lt;/span&gt; 
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Method : &lt;code&gt;Read Data From Excel Sheet&lt;/code&gt;
&lt;/h2&gt;

&lt;p&gt;The &lt;code&gt;ExcelReaderWriter&lt;/code&gt; class in Python provides an efficient way to read and retrieve data from Excel sheets. This guide will help you understand how to use the &lt;code&gt;readCellData&lt;/code&gt; method in this class.&lt;/p&gt;

&lt;p&gt;Sure, here's a more refined explanation:&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%2Fraw.githubusercontent.com%2FSoumyajit7%2FExcelSheetIO%2Fmain%2Fassets%2Fimg%2Fexcel_clip.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%2Fraw.githubusercontent.com%2FSoumyajit7%2FExcelSheetIO%2Fmain%2Fassets%2Fimg%2Fexcel_clip.png" title="excel logo" alt="ExcelSheet"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;To use the &lt;code&gt;readCellData&lt;/code&gt; method in Python, you need to identify the specific cell data you want to read. Let's say, for example, you want to read the cell value &lt;code&gt;Sr. Analyst&lt;/code&gt; from an Excel sheet.&lt;/p&gt;

&lt;p&gt;First, identify the sheet that contains the data you're looking for. In this case, the sheet name is &lt;code&gt;Sheet1&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;Next, determine the row where your data resides. In this example, &lt;code&gt;Sr. Analyst&lt;/code&gt; is in row number &lt;code&gt;6&lt;/code&gt;. To better identify the row, we use the data from the first column as a unique identifier(make sure the data of the 1st column of the sheet should be uniquely identifier data).&lt;/p&gt;

&lt;p&gt;Then, identify the column header that contains your data. In this scenario, the column header name is &lt;code&gt;Job Title&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;With these parameters - the sheet name, the unique identifier from the first column, and the column header name - you can use the &lt;code&gt;readCellData&lt;/code&gt; method to read the data. The syntax would be:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="n"&gt;data&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;excel_reader_writer&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;readCellData&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;SheetName&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;UniqueIdentifierInRow&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;ColumnHeaderName&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;In this code, replace &lt;code&gt;'SheetName'&lt;/code&gt;, &lt;code&gt;'UniqueIdentifierInRow'&lt;/code&gt;, and &lt;code&gt;'ColumnHeaderName'&lt;/code&gt; with your actual values (&lt;code&gt;Sheet1&lt;/code&gt;, &lt;code&gt;E5&lt;/code&gt;, and &lt;code&gt;Job Title&lt;/code&gt;, respectively) when you use this method. This will return the data from the specified cell.&lt;/p&gt;

&lt;h3&gt;
  
  
  Python Usage
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="c1"&gt;# import the ExcelSheetIO library package
&lt;/span&gt;&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="n"&gt;ExcelSheetIO&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;ExcelReaderWriter&lt;/span&gt;

&lt;span class="c1"&gt;# Create an instance of the ExcelReaderWriter class
&lt;/span&gt;&lt;span class="n"&gt;excel_reader_writer&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nc"&gt;ExcelReaderWriter&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;path_to_your_excel_file&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="c1"&gt;# Use the readCellData method
&lt;/span&gt;&lt;span class="n"&gt;data&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;excel_reader_writer&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;readCellData&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;SheetName&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;UniqueIdentifierInRow&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;ColumnHeaderName&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="c1"&gt;# Print the retrieved data
&lt;/span&gt;&lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;data&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;In the above code, replace &lt;code&gt;'path_to_your_excel_file'&lt;/code&gt;, &lt;code&gt;'SheetName'&lt;/code&gt;, &lt;code&gt;'UniqueIdentifierInRow'&lt;/code&gt;, and &lt;code&gt;'ColumnName'&lt;/code&gt; with the path to your Excel file, the name of the sheet in the Excel file, the unique identifier from the first column, and the name of the column header, respectively.&lt;/p&gt;

&lt;h3&gt;
  
  
  Robot Framework Usage
&lt;/h3&gt;

&lt;p&gt;If you're using Robot Framework, you can create a custom keyword that uses the &lt;code&gt;readCellData&lt;/code&gt; method. Here's how you can do it:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;*** Settings ***
Library    ExcelSheetIO.ExcelReaderWriter    relative_path_to_your_excel_file

*** Keywords ***
Keyword for read data from excel sheet
    [Arguments]    ${sheetName}    ${UniqueIdentifierInRow}    ${ColumnHeaderName}
    ${data}=    Read Cell Data    ${sheetName}    ${UniqueIdentifierInRow}    ${ColumnHeaderName}
    Log To Console    ${\n}${data}

*** Test Cases ***
Test case for read data from excel sheet
    Keyword for read data from excel sheet    Sheet1    E5    Job Title
    [Tags]    read     test
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;In the above code, replace &lt;code&gt;'relative_path_to_your_excel_file'&lt;/code&gt;, &lt;code&gt;'SheetName'&lt;/code&gt;, &lt;code&gt;'UniqueIdentifierInRow'&lt;/code&gt;, and &lt;code&gt;'ColumnHeaderName'&lt;/code&gt; with the path to your Excel file, the name of the sheet in the Excel file, the unique identifier from the first column, and the name of the column header, respectively.&lt;/p&gt;

&lt;p&gt;Please replace &lt;code&gt;'relative_path_to_your_excel_file'&lt;/code&gt;, &lt;code&gt;'SheetName'&lt;/code&gt;, &lt;code&gt;'UniqueIdentifierInRow'&lt;/code&gt;, and &lt;code&gt;'ColumnHeaderName'&lt;/code&gt; with your actual values (&lt;code&gt;.\\Data\\Employee.xlsx&lt;/code&gt;, &lt;code&gt;Sheet1&lt;/code&gt;, &lt;code&gt;E5&lt;/code&gt;, and &lt;code&gt;Job Title&lt;/code&gt;, respectively) when you use this code.&lt;/p&gt;

&lt;h2&gt;
  
  
  Method : &lt;code&gt;Write Data In Excel Sheet&lt;/code&gt;
&lt;/h2&gt;

&lt;p&gt;The &lt;code&gt;ExcelReaderWriter&lt;/code&gt; class in Python provides an efficient way to read and write data to Excel sheets. This guide will help you understand how to use the &lt;code&gt;writeCellData&lt;/code&gt; method in this class.&lt;/p&gt;

&lt;p&gt;To use the &lt;code&gt;writeCellData&lt;/code&gt; method in Python, you need to identify the specific cell where you want to write data. Let's say, for example, you want to write the value &lt;code&gt;Sr. Analyst&lt;/code&gt; into a cell in an Excel sheet.&lt;/p&gt;

&lt;p&gt;First, identify the sheet where you want to write the data. In this case, the sheet name is &lt;code&gt;Sheet1&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;Next, determine the row where you want to write your data. In this example, &lt;code&gt;Sr. Analyst&lt;/code&gt; is to be written in row number &lt;code&gt;6&lt;/code&gt;. To better identify the row, we use the data from the first column as a unique identifier (make sure the data of the 1st column of the sheet should be uniquely identifier data).&lt;/p&gt;

&lt;p&gt;Then, identify the column header where you want to write your data. In this scenario, the column header name is &lt;code&gt;Job Title&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;Finally, determine the data you want to write. In this case, the data is &lt;code&gt;Sr. Analyst&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;With these parameters - the sheet name, the unique identifier from the first column, the column header name, and the data to be written - you can use the &lt;code&gt;writeCellData&lt;/code&gt; method to write the data. The syntax would be:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="n"&gt;excel_reader_writer&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;writeCellData&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;SheetName&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;UniqueIdentifierInRow&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;ColumnHeaderName&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;WritableData&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;In this code, replace &lt;code&gt;'SheetName'&lt;/code&gt;, &lt;code&gt;'UniqueIdentifierInRow'&lt;/code&gt;, &lt;code&gt;'ColumnHeaderName'&lt;/code&gt;, and &lt;code&gt;'WritableData'&lt;/code&gt; with your actual values (&lt;code&gt;Sheet1&lt;/code&gt;, &lt;code&gt;E5&lt;/code&gt;, &lt;code&gt;Job Title&lt;/code&gt;, and &lt;code&gt;Sr. Analyst&lt;/code&gt;, respectively) when you use this method. This will write the data into the specified cell. Please ensure that you have write permissions for the Excel file.&lt;/p&gt;

&lt;h3&gt;
  
  
  Python Usage
&lt;/h3&gt;

&lt;p&gt;Here's how you can use the &lt;code&gt;writeCellData&lt;/code&gt; method in Python:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="c1"&gt;# import the ExcelSheetIO library package
&lt;/span&gt;&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="n"&gt;ExcelSheetIO&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;ExcelReaderWriter&lt;/span&gt;

&lt;span class="c1"&gt;# Create an instance of the ExcelReaderWriter class
&lt;/span&gt;&lt;span class="n"&gt;excel_reader_writer&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nc"&gt;ExcelReaderWriter&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;path_to_your_excel_file&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="c1"&gt;# Use the writeCellData method
&lt;/span&gt;&lt;span class="n"&gt;excel_reader_writer&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;writeCellData&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;SheetName&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;UniqueIdentifierInRow&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;ColumnHeaderName&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;WritableData&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;In the above code, replace &lt;code&gt;'path_to_your_excel_file'&lt;/code&gt;, &lt;code&gt;'SheetName'&lt;/code&gt;, &lt;code&gt;'UniqueIdentifierInRow'&lt;/code&gt;, &lt;code&gt;'ColumnHeaderName'&lt;/code&gt;, and &lt;code&gt;'WritableData'&lt;/code&gt; with the path to your Excel file, the name of the sheet in the Excel file, the unique identifier from the first column, the name of the column header, and the order number, respectively.&lt;/p&gt;

&lt;h3&gt;
  
  
  Robot Framework Usage
&lt;/h3&gt;

&lt;p&gt;If you're using Robot Framework, you can create a custom keyword that uses the &lt;code&gt;writeCellData&lt;/code&gt; method. Here's how you can do it:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;*** Settings ***
Library    ExcelSheetIO.ExcelReaderWriter    path_to_your_excel_file

*** Keywords ***
Keyword For Write Data in Excel Sheet
    [Arguments]    ${sheetName}    ${UniqueIdentifierInRow}    ${ColumnHeaderName}    ${WritableData}
    Write Cell Data    ${sheetName}    ${UniqueIdentifierInRow}    ${ColumnHeaderName}    ${WritableData}

*** Test Cases ***
Test case for write data in excel sheet
    Keyword For Write Data in Excel Sheet    Sheet1    E6    Job Title    Software Developer
    [Tags]    write     test
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;In the above code, replace &lt;code&gt;'path_to_your_excel_file'&lt;/code&gt;, &lt;code&gt;'SheetName'&lt;/code&gt;, &lt;code&gt;'UniqueIdentifierInRow'&lt;/code&gt;, &lt;code&gt;'ColumnHeaderName'&lt;/code&gt;, and &lt;code&gt;'WritableData'&lt;/code&gt; with the path to your Excel file, the name of the sheet in the Excel file, the unique identifier from the first column, the name of the column header, and the order number, respectively.&lt;/p&gt;

&lt;h3&gt;
  
  
  Breakdowns
&lt;/h3&gt;

&lt;p&gt;Let's break down how the &lt;code&gt;writeCellData&lt;/code&gt; method works internally, in a more understandable way :&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;code&gt;Creating a Copy&lt;/code&gt;&lt;/strong&gt; : The method starts by creating a copy of the original Excel file. This is done to ensure that the original file remains unchanged until all write operations are successfully executed. The copy is stored in a folder named &lt;code&gt;CopyFolder&lt;/code&gt; and is given a temporary file name like &lt;code&gt;*_Temp*.xlsx&lt;/code&gt;. Make sure add &lt;code&gt;CopyFolder&lt;/code&gt; in &lt;code&gt;.gitignore&lt;/code&gt; in your project.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;code&gt;Writing Data&lt;/code&gt;&lt;/strong&gt; : The method then performs the write operation on this temporary Excel file. It writes data to a specific cell in an Excel sheet. The cell is identified by the sheet name, the unique identifier from the first column (which should be unique), and the column header name.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;code&gt;Saving Changes&lt;/code&gt;&lt;/strong&gt; : After all write operations are completed, the method saves the changes made to the temporary file.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;code&gt;Updating the Original File&lt;/code&gt;&lt;/strong&gt; : The method then transfers the data from the temporary file back into the original file. This ensures that the original file is updated with all the new data.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;code&gt;Cleaning Up&lt;/code&gt;&lt;/strong&gt; : Finally, the method removes the temporary Excel file after all operations are finished. This is done to free up storage space and maintain cleanliness in your file system.&lt;/p&gt;

&lt;p&gt;By using this method, you can efficiently write data to an Excel file while ensuring the integrity of the original file until all operations are successfully completed. It's a safe and efficient way to manipulate Excel data in Python. Please ensure that you have write permissions for the Excel file.&lt;/p&gt;

&lt;h2&gt;
  
  
  Method : &lt;code&gt;Remove Temporary TestData Files&lt;/code&gt;
&lt;/h2&gt;

&lt;p&gt;The &lt;code&gt;removeTemporaryTestDataFiles&lt;/code&gt; method is a utility function in this Python script that is designed to clean up temporary Excel files that may have been created during the execution of the script. This method is particularly useful in maintaining a clean workspace and ensuring that temporary files do not consume unnecessary storage. Make sure add &lt;code&gt;CopyFolder&lt;/code&gt; in &lt;code&gt;.gitignore&lt;/code&gt; in your project.&lt;/p&gt;

&lt;h3&gt;
  
  
  How it works:
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;&lt;code&gt;Locate the Current Directory&lt;/code&gt;&lt;/strong&gt; : The method first identifies the directory where the Python script is currently located.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;code&gt;Construct the Path&lt;/code&gt;&lt;/strong&gt;  It then constructs the path to a subdirectory named 'CopyFolder' within the current directory.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;code&gt;Iterate Over Files&lt;/code&gt;&lt;/strong&gt; : The method iterates over all files present in the 'CopyFolder' subdirectory.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;code&gt;Identify and Remove Temporary Files&lt;/code&gt;&lt;/strong&gt; : If a file name contains the string 'temp', the method attempts to remove (delete) the file.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;code&gt;Error Handling&lt;/code&gt;&lt;/strong&gt; : If an error occurs during the file removal process, the method captures the error and logs it using the logger.error function.&lt;/p&gt;

&lt;h3&gt;
  
  
  Python Usage
&lt;/h3&gt;

&lt;p&gt;Here's how you can use the &lt;code&gt;removeTemporaryTestDataFiles&lt;/code&gt; method in Python:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="c1"&gt;# import the ExcelSheetIO library package
&lt;/span&gt;&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="n"&gt;ExcelSheetIO&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;ExcelReaderWriter&lt;/span&gt;

&lt;span class="c1"&gt;# Create an instance of the ExcelReaderWriter class
&lt;/span&gt;&lt;span class="n"&gt;excel_reader_writer&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nc"&gt;ExcelReaderWriter&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;path_to_your_excel_file&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="c1"&gt;# Use the removeTemporaryTestDataFiles method
&lt;/span&gt;&lt;span class="n"&gt;excel_reader_writer&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;removeTemporaryTestDataFiles&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Robot Framework Usage
&lt;/h3&gt;

&lt;p&gt;If you're using Robot Framework, you can create a custom keyword that uses the &lt;code&gt;removeTemporaryTestDataFiles&lt;/code&gt; method. Here's how you can do it:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;*** Settings ***
Library    ExcelSheetIO.ExcelReaderWriter    .\\Data\\Employee.xlsx

*** Keywords ***
Keyword For Remove Temporary Test Data Files
    [Arguments]
    Remove Temporary Test Data Files


*** Test Cases ***
Test case for remove temporary data files in excel sheet
    Keyword For Remove Temporary Test Data Files
    [Tags]    remove     test
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This will remove all files in the &lt;code&gt;CopyFolder&lt;/code&gt; subdirectory of the current directory that contain temporary file name like &lt;code&gt;*_Temp*.xlsx&lt;/code&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Method : &lt;code&gt;Read All Data In Given Column&lt;/code&gt;
&lt;/h2&gt;

&lt;p&gt;The &lt;code&gt;readAllDataInGivenColumn&lt;/code&gt; method is a utility function in this Python script that is designed to read all non-null data for a particular column from a given sheet. This method is particularly useful in extracting specific data from a sheet for further processing or analysis.&lt;/p&gt;

&lt;h3&gt;
  
  
  How it works:
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;&lt;code&gt;Check Sheet Existence&lt;/code&gt;&lt;/strong&gt; : The method first checks if the given sheet name exists in the data.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;code&gt;Initialize Column Data List&lt;/code&gt;&lt;/strong&gt; : If the sheet exists, it initializes an empty list to store the column data.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;code&gt;Iterate Over Test Cases&lt;/code&gt;&lt;/strong&gt; : The method then iterates over all test cases in the sheet.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;code&gt;Append Column Data&lt;/code&gt;&lt;/strong&gt; : If the given column name exists in the test case and its value is not None, it appends the value to the column data list.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;code&gt;Return Column Data&lt;/code&gt;&lt;/strong&gt; : If the column data list is not empty after the iteration, it returns the list. If the column data list is empty, it returns a message indicating that no data was found in the given column in the given sheet.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;code&gt;Handle Non-existent Sheet&lt;/code&gt;&lt;/strong&gt; : If the sheet does not exist in the data, it returns a message indicating that the sheet was not found.&lt;/p&gt;

&lt;h3&gt;
  
  
  Python Usage:
&lt;/h3&gt;

&lt;p&gt;Here's how you can use the &lt;code&gt;readAllDataInGivenColumn&lt;/code&gt; method in Python:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="c1"&gt;# import the ExcelSheetIO library package
&lt;/span&gt;&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="n"&gt;ExcelSheetIO&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;ExcelReaderWriter&lt;/span&gt;

&lt;span class="c1"&gt;# Create an instance of the ExcelReaderWriter class
&lt;/span&gt;&lt;span class="n"&gt;excel_reader_writer&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nc"&gt;ExcelReaderWriter&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;path_to_your_excel_file&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="c1"&gt;# Use the readAllDataInGivenColumn method, it'll return data as a list
&lt;/span&gt;&lt;span class="n"&gt;column_data&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;excel_reader_writer&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;readAllDataInGivenColumn&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;SheetName&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;ColumnHeaderName&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Robot Framework Usage:
&lt;/h3&gt;

&lt;p&gt;In Robot Framework, you can call this method in a similar way. First, you need to create a keyword that calls this method, and then you can use this keyword in your test case:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;*** Settings ***
Library    ExcelSheetIO.ExcelReaderWriter    .\\Data\\Employee.xlsx

*** Keywords ***
Keyword for read all data in given column in excel sheet
    [Arguments]    ${sheetName}    ${columnHeaderName}
    ${column_data}=    Read All Data In Given Column    ${sheetName}    ${columnHeaderName}
    Log To Console    ${\n}${column_data}

*** Test Cases ***
Test case for read all data in given column in excel sheet
    Keyword for read all data in given column in excel sheet    Sheet1    Job Title
    [Tags]    read2     test    
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Method : &lt;code&gt;Read All Data In Given Row&lt;/code&gt;
&lt;/h2&gt;

&lt;p&gt;The &lt;code&gt;readAllDataInGivenRow&lt;/code&gt; method is a utility function in this Python script that is designed to fetch all data for a particular row from a given sheet. This method is particularly useful in extracting specific data from a row for further processing or analysis.&lt;/p&gt;

&lt;h3&gt;
  
  
  How it works:
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;&lt;code&gt;Check Sheet Existence&lt;/code&gt;&lt;/strong&gt; : The method first checks if the given sheet name exists in the data.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;code&gt;Check Test Case Existence&lt;/code&gt;&lt;/strong&gt; : If the sheet exists, it checks if the given test case name exists in the sheet.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;code&gt;Retrieve Row Data&lt;/code&gt;&lt;/strong&gt; : If the test case exists, it retrieves all data for the test case. This data is a dictionary where the keys are column names and the values are cell values.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;code&gt;Return Row Data&lt;/code&gt;&lt;/strong&gt; : It returns this dictionary, which represents all data in the given row.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;code&gt;Handle Non-existent Test Case&lt;/code&gt;&lt;/strong&gt; : If the test case does not exist in the sheet, it returns a message indicating that the test case was not found in the given sheet.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;code&gt;Handle Non-existent Sheet&lt;/code&gt;&lt;/strong&gt; : If the sheet does not exist in the data, it returns a message indicating that the sheet was not found.&lt;/p&gt;

&lt;h3&gt;
  
  
  Python Usage :
&lt;/h3&gt;

&lt;p&gt;Here's how you can use the &lt;code&gt;readAllDataInGivenRow&lt;/code&gt; method in Python:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="c1"&gt;# import the ExcelSheetIO library package
&lt;/span&gt;&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="n"&gt;ExcelSheetIO&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;ExcelReaderWriter&lt;/span&gt;

&lt;span class="c1"&gt;# Create an instance of the ExcelReaderWriter class
&lt;/span&gt;&lt;span class="n"&gt;excel_reader_writer&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nc"&gt;ExcelReaderWriter&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;path_to_your_excel_file&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="c1"&gt;# Use the readAllDataInGivenRow method, it'll return data as a dictionary
&lt;/span&gt;&lt;span class="n"&gt;row_data&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;excel_reader_writer&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;readAllDataInGivenRow&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;SheetName&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;ColumnHeaderName&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Robot Framework Usage :
&lt;/h3&gt;

&lt;p&gt;In Robot Framework, you can call this method in a similar way. First, you need to create a keyword that calls this method, and then you can use this keyword in your test case:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;*** Settings ***
Library    ExcelSheetIO.ExcelReaderWriter    .\\Data\\Employee.xlsx

*** Keywords ***
Keyword for read all data in given row in excel sheet
    [Arguments]    ${sheetName}    ${UniqueIdentifierInRow}
    ${row_data}=    Read All Data In Given Row    ${sheetName}    ${UniqueIdentifierInRow}
    Log To Console    ${\n}${row_data}

*** Test Cases ***
Test case for read all data in given row in excel sheet
    Keyword for read all data in given row in excel sheet    Sheet1    E6
    [Tags]    read3     test
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Method : &lt;code&gt;Modify Color And Font Of The Cell&lt;/code&gt;
&lt;/h2&gt;

&lt;p&gt;The &lt;code&gt;modifyColorAndFontOfTheCell&lt;/code&gt; method is a utility function in this Python script that is designed to modify the color and font of a specific cell in an Excel sheet. This method is particularly useful for highlighting specific test cases in an Excel sheet, such as failed test cases in a test suite.&lt;/p&gt;

&lt;h3&gt;
  
  
  How it works:
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;&lt;code&gt;Create a Temporary Copy&lt;/code&gt;&lt;/strong&gt; : The method first creates a temporary copy of the original Excel file.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;code&gt;Load the Workbook&lt;/code&gt;&lt;/strong&gt; : It then loads the workbook from this temporary file and selects the specified sheet.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;code&gt;Find the Specific Cell&lt;/code&gt;&lt;/strong&gt; : The method iterates over the rows in the sheet until it finds the row with the specified test case name. Then, it iterates over the columns in this row until it finds the specified column name.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;code&gt;Modify the Cell&lt;/code&gt;&lt;/strong&gt; : Once the specific cell is found, it changes the cell's fill color and font color as per the parameters.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;code&gt;Save and Close the Workbook&lt;/code&gt;&lt;/strong&gt; : Finally, it saves and closes the workbook.&lt;/p&gt;

&lt;p&gt;In the below image for the cell value &lt;code&gt;Software Developer&lt;/code&gt;, modified the cell color as &lt;code&gt;pink&lt;/code&gt;, font color as &lt;code&gt;red&lt;/code&gt; and font type as &lt;strong&gt;&lt;code&gt;BOLD&lt;/code&gt;&lt;/strong&gt; using this method.&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%2Fraw.githubusercontent.com%2FSoumyajit7%2FExcelSheetIO%2Fmain%2Fassets%2Fimg%2Fexcel_clip_color.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%2Fraw.githubusercontent.com%2FSoumyajit7%2FExcelSheetIO%2Fmain%2Fassets%2Fimg%2Fexcel_clip_color.png" title="excel sheet color" alt="ExcelSheetColor"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Python Usage:
&lt;/h3&gt;

&lt;p&gt;Here's how you can use the &lt;code&gt;modifyColorAndFontOfTheCell&lt;/code&gt; method in Python:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="c1"&gt;# import the ExcelSheetIO library package
&lt;/span&gt;&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="n"&gt;ExcelSheetIO&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;ExcelReaderWriter&lt;/span&gt;

&lt;span class="c1"&gt;# Create an instance of the ExcelReaderWriter class
&lt;/span&gt;&lt;span class="n"&gt;excel_reader_writer&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nc"&gt;ExcelReaderWriter&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;path_to_your_excel_file&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="c1"&gt;# Use the modifyCellStyles method to create a CellStyler object for a specific cell in a given sheet.
# Replace 'sheetName', 'uniqueIdentifierInRow', 'columnHeaderName' with your actual data.
# Then, use the set_cell_color, set_font_color, set_font_type, and font_size methods to set the cell's styles.
# The color parameters should be hex color codes.
# The font family should be like 'Arial', 'Bradley Hand ITC' and etc.
# The font type can be 'bold', 'italic', 'underline', or 'double underline'.
# The font size should be an integer.
# The apply_styles method applies the styles to the cell.
# Finally, the save_changes method saves the changes to the Excel file.
&lt;/span&gt;
&lt;span class="n"&gt;excel_reader_writer&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;modifyCellStyles&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;sheetName&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;uniqueIdentifierInRow&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;columnHeaderName&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nf"&gt;set_cell_color&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;salmon&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nf"&gt;set_font_color&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;green&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nf"&gt;set_font_family&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;Arial&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nf"&gt;set_font_styles&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;bold&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;italic&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;underline&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;double underline&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nf"&gt;set_font_size&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;11&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nf"&gt;apply_styles&lt;/span&gt;&lt;span class="p"&gt;().&lt;/span&gt;&lt;span class="nf"&gt;save_changes&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;

&lt;span class="c1"&gt;# or
&lt;/span&gt;
&lt;span class="n"&gt;excel_obj&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;e&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;modifyCellStyles&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;Sheet1&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;E7&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;Full Name&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nf"&gt;set_cell_color&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;salmon&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nf"&gt;set_font_color&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;green&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nf"&gt;set_font_family&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;Arial&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nf"&gt;set_font_styles&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;bold&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;italic&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;underline&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nf"&gt;set_font_size&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;11&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;excel_obj&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;apply_styles&lt;/span&gt;&lt;span class="p"&gt;().&lt;/span&gt;&lt;span class="nf"&gt;save_changes&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Robot Framework:
&lt;/h3&gt;

&lt;p&gt;In Robot Framework, you can call this method in a similar way. First, you need to create a keyword that calls this method, and then you can use this keyword in your test case:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;*** Settings ***
Library    ExcelSheetIO.ExcelReaderWriter    .\\Data\\Employee.xlsx

*** Keywords ***
Modify Cell Styles
    [Arguments]    ${sheet_name}    ${unique_identifier_in_row}    ${column_header_name}    ${cell_color}    ${font_color}  ${font_family}    ${font_type}    ${font_size}
    ${excel_reader_writer}=    Get Library Instance    ExcelSheetIO.ExcelReaderWriter
    ${excel_reader_writer}.modifyCellStyles(${sheet_name}, ${unique_identifier_in_row}, ${column_header_name}).set_cell_color(${cell_color}).set_font_color(${font_color}).set_font_family(${font_family}).set_font_styles(${font_type}).set_font_size(${font_size}).apply_styles().save_changes()

*** Test Cases ***
Test Modify Cell Styles
    Modify Cell Styles    Sheet1    E6    Job Title    salmon    green  Arial    bold, italic, underline, double underline    12
    [Tags]    color1     test
    # Replace 'Sheet1', 'E6', 'Job Title', 'salmon', 'green', 'bold, italic, underline, double underline', and '12' with your sheet name, unique identifier in row, column header name, cell color, font color, font type, and font size respectively
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Method : &lt;code&gt;Reset Cell Styles&lt;/code&gt;
&lt;/h2&gt;

&lt;p&gt;The &lt;code&gt;resetCellStyles&lt;/code&gt; method is part of the ExcelReaderWriter class. This method resets the styles of a specific cell in an Excel sheet to default values.&lt;/p&gt;

&lt;h3&gt;
  
  
  How it works:
&lt;/h3&gt;

&lt;p&gt;This method creates a &lt;code&gt;CellStyler&lt;/code&gt; object for the specified cell, identified by its sheet name, unique identifier in the row, and column header name. It then sets the cell color to white, the font color to black, the font family to Calibri, the font style to normal, and the font size to 11. After applying these styles, it saves the changes to the Excel file.&lt;/p&gt;

&lt;h3&gt;
  
  
  Python Usage:
&lt;/h3&gt;

&lt;p&gt;Here's how you can use the &lt;code&gt;resetCellStyles&lt;/code&gt; method in Python:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="c1"&gt;# import the ExcelSheetIO library package
&lt;/span&gt;&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="n"&gt;ExcelSheetIO&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;ExcelReaderWriter&lt;/span&gt;

&lt;span class="c1"&gt;# Create an instance of the ExcelReaderWriter class
&lt;/span&gt;&lt;span class="n"&gt;excel_reader_writer&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nc"&gt;ExcelReaderWriter&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;path_to_your_excel_file&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="c1"&gt;# Use the resetCellStyles method to create a CellStyler object for a specific cell in a given sheet.
# Replace 'sheetName', 'uniqueIdentifierInRow', 'columnHeaderName' with your actual data.
&lt;/span&gt;&lt;span class="n"&gt;excel_reader_writere&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;resetCellStyles&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;sheetName&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;uniqueIdentifierInRow&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;columnHeaderName&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Robot Framework:
&lt;/h3&gt;

&lt;p&gt;In Robot Framework, you can call this method in a similar way. First, you need to create a keyword that calls this method, and then you can use this keyword in your test case:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;*** Settings ***
Library    ExcelReaderWriter    .\\Data\\Employee.xlsx

*** Keywords ***
Keyword for reset cell styles in excel sheet
    [Arguments]    ${sheetName}    ${UniqueIdentifierInRow}     ${columnHeaderName}
    Reset Cell Styles    ${sheetName}    ${UniqueIdentifierInRow}     ${columnHeaderName}

*** Test Cases ***
Testcase For Reset Cell Styles
    Keyword for reset cell styles in excel sheet    Sheet1    E7    Full Name
    [Tags]    color2     test
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



</description>
      <category>python</category>
      <category>programming</category>
      <category>excelsheet</category>
      <category>excelsheetio</category>
    </item>
    <item>
      <title>Instagram Clone Live App</title>
      <dc:creator>Soumyajit Pan</dc:creator>
      <pubDate>Fri, 18 Aug 2023 12:40:22 +0000</pubDate>
      <link>https://forem.com/soumyajit7/instagram-clone-live-app-3dbm</link>
      <guid>https://forem.com/soumyajit7/instagram-clone-live-app-3dbm</guid>
      <description>&lt;p&gt;You can see the Live Demo from here 👇&lt;br&gt;
&lt;a href="https://instagram-soumyajitpan.vercel.app/"&gt;https://instagram-soumyajitpan.vercel.app/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;For this project, I have used these libraries,&lt;br&gt;
▶️ React JS&lt;br&gt;
▶️ Firestore and Firebase Database&lt;br&gt;
▶️ Firebase Email Authentication&lt;br&gt;
▶️ Styled-Components for styling&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Signup Page&lt;/strong&gt;&lt;br&gt;
User have to Signup/Create new account&lt;br&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%2Fkwuhcyqcdbhzn4e44k0m.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%2Fkwuhcyqcdbhzn4e44k0m.PNG" alt="Signup Page" width="800" height="403"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Login Page&lt;/strong&gt;&lt;br&gt;
User have to login to their account&lt;br&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%2F91mu5z92n900jjrv5kz2.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%2F91mu5z92n900jjrv5kz2.PNG" alt="Login Page" width="800" height="405"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Home Page&lt;/strong&gt;&lt;br&gt;
After Login User can see the Home Page&lt;br&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%2F212q7n8f7gchqi6gibyr.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%2F212q7n8f7gchqi6gibyr.PNG" alt="Home Page" width="800" height="615"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Notification&lt;/strong&gt;&lt;br&gt;
User can see all notifications when other users do comments, likes, requests for messages, follows&lt;br&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%2F7p23til4djvus4oyhkxw.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%2F7p23til4djvus4oyhkxw.PNG" alt="Notification" width="800" height="557"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Comments of random post&lt;/strong&gt;&lt;br&gt;
User can comment on any user's post&lt;br&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%2Fu23t5jw5qk81hv3ez3gx.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%2Fu23t5jw5qk81hv3ez3gx.PNG" alt="comments" width="800" height="340"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Send post via Messenger&lt;/strong&gt;&lt;br&gt;
Any user can send any posts via messenger&lt;br&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%2Ff83g8q2l9ixn1itp6gpa.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%2Ff83g8q2l9ixn1itp6gpa.PNG" alt="Send post via messenger" width="800" height="406"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Insta Profile Page&lt;/strong&gt;&lt;br&gt;
User can see their own profile like this below image&lt;br&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%2Fgnuyi9ulwoo1v0dpy847.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%2Fgnuyi9ulwoo1v0dpy847.PNG" alt="Insta Profile" width="800" height="529"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Insta Profile Edit Mode&lt;/strong&gt;&lt;br&gt;
After click on Edit Profile button, user can see their profile in edit mode, then user can change their profile data.&lt;br&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%2Feg9a74ehsjmyyfh1cx6o.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%2Feg9a74ehsjmyyfh1cx6o.PNG" alt="Insta Profile Edit Mode" width="800" height="404"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Insta Profile Delete Mode&lt;/strong&gt;&lt;br&gt;
After click on settings icon, user can see delete profile button, then user can delete their profile data.&lt;br&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%2Fha4rcwgyzenofthlccfg.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%2Fha4rcwgyzenofthlccfg.PNG" alt="Insta Profile Delete Mode" width="800" height="495"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Watching Other User's Story&lt;/strong&gt;&lt;br&gt;
When any user can see other user's story by clicking on individual story, it's look like below.&lt;br&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%2Ffxys7efx0zxgnq6dz1ec.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%2Ffxys7efx0zxgnq6dz1ec.PNG" alt="Other User's Story" width="800" height="404"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Watching Self Story&lt;/strong&gt;&lt;br&gt;
When any user can see self story, it's look like below image.&lt;br&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%2F9ehqyef9eqhbi6131evc.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%2F9ehqyef9eqhbi6131evc.PNG" alt="self story" width="800" height="405"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Instagram Messenger&lt;/strong&gt;&lt;br&gt;
Instagram Messenger looks like below image.&lt;br&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%2Fmyv9r3l0rcx5pznmlw3z.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%2Fmyv9r3l0rcx5pznmlw3z.PNG" alt="Messenger" width="800" height="500"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>instagram</category>
      <category>webdev</category>
      <category>react</category>
      <category>programming</category>
    </item>
    <item>
      <title>Tic-tac-toe Multiplayer Game</title>
      <dc:creator>Soumyajit Pan</dc:creator>
      <pubDate>Sun, 04 Jun 2023 07:38:20 +0000</pubDate>
      <link>https://forem.com/soumyajit7/tic-tac-toe-multiplayer-game-2k9i</link>
      <guid>https://forem.com/soumyajit7/tic-tac-toe-multiplayer-game-2k9i</guid>
      <description>&lt;p&gt;You can see the Demo from here 👇&lt;br&gt;
&lt;a href="https://tictactoe-multiplayer29.netlify.app" rel="noopener noreferrer"&gt;https://tictactoe-multiplayer29.netlify.app&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Presentation Video&lt;/strong&gt;&lt;br&gt;
&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/yeqmWWsdgpA"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Login Page&lt;/strong&gt;&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%2Fze2n99rlr9gakxqa7fww.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%2Fze2n99rlr9gakxqa7fww.PNG" alt="Login Page" width="800" height="392"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Google Authentication&lt;/strong&gt;*&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%2Fq2r3h865ya0rx41vzlsq.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%2Fq2r3h865ya0rx41vzlsq.png" alt="Google Authentication" width="800" height="392"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Page after login&lt;/strong&gt;&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%2Fzjiiuvqdksa2fsa04ftr.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%2Fzjiiuvqdksa2fsa04ftr.PNG" alt="Page after login" width="800" height="393"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2 Users Page&lt;/strong&gt;&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%2Fxjplvfddkjt67wbz11re.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%2Fxjplvfddkjt67wbz11re.PNG" alt="2 Users Page" width="800" height="390"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Lobby after Entered same room&lt;/strong&gt;&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%2Fzd62lm8b275mj58d5gwf.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%2Fzd62lm8b275mj58d5gwf.PNG" alt="Lobby after Entered same room" width="800" height="389"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Chat in Lobby&lt;/strong&gt;&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%2F8colslbuoehshlaz5p29.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%2F8colslbuoehshlaz5p29.PNG" alt="Chat in Lobby" width="800" height="387"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Game&lt;/strong&gt;&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%2Fllaz61q0l30a6twqxqbm.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%2Fllaz61q0l30a6twqxqbm.PNG" alt="Game" width="800" height="387"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Chat during Game&lt;/strong&gt;&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%2Flm0dttmyn8jkl4y5ew6r.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%2Flm0dttmyn8jkl4y5ew6r.PNG" alt="Chat during Game" width="800" height="386"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Tech Stack&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;React JS&lt;/li&gt;
&lt;li&gt;Firestore and Firebase Realtime Database&lt;/li&gt;
&lt;li&gt;Firebase Google Authentication&lt;/li&gt;
&lt;li&gt;Styled-Components for styling&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Any suggestions are welcomed!&lt;br&gt;
&lt;strong&gt;Thanks For Reading&lt;/strong&gt;😄&lt;/p&gt;

</description>
      <category>tictactoe</category>
      <category>react</category>
      <category>firebase</category>
      <category>webdev</category>
    </item>
    <item>
      <title>Swag Lab Automation Testing Project [Selenium, Java]</title>
      <dc:creator>Soumyajit Pan</dc:creator>
      <pubDate>Mon, 29 May 2023 19:10:41 +0000</pubDate>
      <link>https://forem.com/soumyajit7/swag-lab-automation-testing-project-selenium-java-o8g</link>
      <guid>https://forem.com/soumyajit7/swag-lab-automation-testing-project-selenium-java-o8g</guid>
      <description>&lt;p&gt;For this project, I developed a model and I have used these libraries,&lt;br&gt;
▶️ Selenium&lt;br&gt;
▶️ Java&lt;/p&gt;

&lt;p&gt;Presentation Video&lt;br&gt;
&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/x2DzI_NE9p0"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;Any suggestions are welcomed!&lt;br&gt;
&lt;strong&gt;Thanks For Reading&lt;/strong&gt;😄&lt;/p&gt;

</description>
      <category>selenium</category>
      <category>java</category>
      <category>automaton</category>
      <category>testing</category>
    </item>
    <item>
      <title>Infy-Verse [A all in one platform for mail+chat+meeting+calender]</title>
      <dc:creator>Soumyajit Pan</dc:creator>
      <pubDate>Mon, 29 May 2023 16:35:11 +0000</pubDate>
      <link>https://forem.com/soumyajit7/infy-verse-a-all-in-one-platform-for-mailchatmeetingcalender-4j54</link>
      <guid>https://forem.com/soumyajit7/infy-verse-a-all-in-one-platform-for-mailchatmeetingcalender-4j54</guid>
      <description>&lt;p&gt;You can see the Demo from here 👇&lt;br&gt;
&lt;a href="https://infy-verse.netlify.app/" rel="noopener noreferrer"&gt;https://infy-verse.netlify.app/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;For this project, I have used these libraries,&lt;br&gt;
▶️ React JS (CRA)&lt;br&gt;
▶️ Firebase Authentication&lt;br&gt;
▶️ Firestore Database&lt;br&gt;
▶️ Firebase Realtime Database&lt;br&gt;
▶️ WebRtc for Video Calling&lt;br&gt;
▶️ Styled-Components for styling&lt;/p&gt;

&lt;p&gt;Presentation Video&lt;br&gt;
&lt;/p&gt;
&lt;div class="crayons-card c-embed text-styles text-styles--secondary"&gt;
    &lt;a href="https://www.youtube.com/" rel="noopener noreferrer"&gt;
      youtube.com
    &lt;/a&gt;
&lt;/div&gt;


&lt;p&gt;&lt;strong&gt;Google Authentication Login Page&lt;/strong&gt;&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%2Fn2rptgjr29o2b4kw5erv.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%2Fn2rptgjr29o2b4kw5erv.png" alt="Google Authentication Login Page" width="800" height="377"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;After Login Calendar Page&lt;/strong&gt;&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%2Fbqssffl52tj9pc7brzy6.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%2Fbqssffl52tj9pc7brzy6.PNG" alt="Calendar Page" width="800" height="376"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Mailing Page&lt;/strong&gt;&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%2Fcbkbek98r3mkb9cmlh36.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%2Fcbkbek98r3mkb9cmlh36.PNG" alt="Mailing Page" width="800" height="377"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Chatting Page&lt;/strong&gt;&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%2F5rjop5ips87qtg65tz24.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%2F5rjop5ips87qtg65tz24.PNG" alt="Chatting Page" width="800" height="376"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Meeting Page&lt;/strong&gt;&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%2Fbgyml046oaexwnqqpyno.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%2Fbgyml046oaexwnqqpyno.PNG" alt="Meeting Page" width="800" height="376"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Theme Changer&lt;/strong&gt;&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%2Fzsidsqd7qxrid71wkvwl.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%2Fzsidsqd7qxrid71wkvwl.PNG" alt="Theme Changer" width="800" height="375"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Profile Settings Page&lt;/strong&gt;&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%2Fwqah0tstddom791yo11x.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%2Fwqah0tstddom791yo11x.PNG" alt="Profile Settings Page" width="800" height="376"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Any suggestions are welcomed!&lt;br&gt;
&lt;strong&gt;Thanks For Reading&lt;/strong&gt;😄&lt;/p&gt;

</description>
      <category>infyverse</category>
      <category>mern</category>
      <category>react</category>
      <category>microsoft</category>
    </item>
    <item>
      <title>Netflix UI Clone</title>
      <dc:creator>Soumyajit Pan</dc:creator>
      <pubDate>Mon, 29 May 2023 16:11:35 +0000</pubDate>
      <link>https://forem.com/soumyajit7/netflix-ui-clone-6bf</link>
      <guid>https://forem.com/soumyajit7/netflix-ui-clone-6bf</guid>
      <description>&lt;p&gt;You can see the Demo from here 👇&lt;br&gt;
&lt;a href="https://netflix-clone-soumyajitpan.vercel.app" rel="noopener noreferrer"&gt;https://netflix-clone-soumyajitpan.vercel.app&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Signup Page&lt;/strong&gt;&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%2Fayz3iyozq673h7kxxktg.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%2Fayz3iyozq673h7kxxktg.PNG" alt="Signup Page" width="800" height="377"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Signin Page&lt;/strong&gt;&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%2F69wrmke8220m1e417k6v.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%2F69wrmke8220m1e417k6v.PNG" alt="Signin Page" width="800" height="375"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Home Page&lt;/strong&gt;&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%2F2qgl5etcxbpooi60k6ad.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%2F2qgl5etcxbpooi60k6ad.PNG" alt="Home Page" width="800" height="377"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Movie Page&lt;/strong&gt;&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%2Fa9lg5inv3ksbmuy81djt.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%2Fa9lg5inv3ksbmuy81djt.PNG" alt="Movie Page" width="800" height="377"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;My List Page&lt;/strong&gt;&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%2Fil736xxswrw4q92yjbl9.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%2Fil736xxswrw4q92yjbl9.PNG" alt="My List Page" width="800" height="376"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Video Player&lt;/strong&gt;&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%2Fkmxu6jq93j75l00d0tlm.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%2Fkmxu6jq93j75l00d0tlm.PNG" alt="Video Player" width="800" height="377"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Video Options&lt;/strong&gt;&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%2Ftrrubjnodlkv6p66qq99.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%2Ftrrubjnodlkv6p66qq99.PNG" alt="Video Options" width="351" height="260"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Video Picture In Picture Mode&lt;/strong&gt;&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%2Fulbm6ial2rkdj0vkkhys.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%2Fulbm6ial2rkdj0vkkhys.PNG" alt="Video Picture in picture mode" width="800" height="390"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Tech Stack&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;React JS&lt;/li&gt;
&lt;li&gt; TMDB API&lt;/li&gt;
&lt;li&gt; Firestore Database&lt;/li&gt;
&lt;li&gt; Styled-Components for styling&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Presentation Video&lt;/strong&gt;&lt;br&gt;
&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/f84b5AKHrTs"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;Any suggestions are welcomed!&lt;br&gt;
&lt;strong&gt;Thanks For Reading&lt;/strong&gt;😄&lt;/p&gt;

</description>
      <category>netflix</category>
      <category>react</category>
      <category>javascript</category>
      <category>css</category>
    </item>
    <item>
      <title>Sorting Visualizer [ A web app to visualize sorting algorithm ]</title>
      <dc:creator>Soumyajit Pan</dc:creator>
      <pubDate>Mon, 29 May 2023 07:21:04 +0000</pubDate>
      <link>https://forem.com/soumyajit7/sorting-visualizer-a-web-app-to-visualize-sorting-algorithm--2eni</link>
      <guid>https://forem.com/soumyajit7/sorting-visualizer-a-web-app-to-visualize-sorting-algorithm--2eni</guid>
      <description>&lt;p&gt;You can see the Demo from here 👇&lt;br&gt;
&lt;a href="https://sorting-visualizer-29.netlify.app/"&gt;https://sorting-visualizer-29.netlify.app/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;For this project, I have used these libraries,&lt;br&gt;
▶️ React JS&lt;br&gt;
▶️ Styled-Components for styling&lt;/p&gt;

&lt;p&gt;Presentation Video&lt;br&gt;
&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/zQYmXYLO0so"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;Any suggestions are welcomed!&lt;br&gt;
&lt;strong&gt;Thanks For Reading&lt;/strong&gt;😄&lt;/p&gt;

</description>
      <category>sorting</category>
      <category>alogorithm</category>
      <category>react</category>
      <category>javascript</category>
    </item>
    <item>
      <title>Stock Tracker [ A web app to track the real-time stock market data ]</title>
      <dc:creator>Soumyajit Pan</dc:creator>
      <pubDate>Wed, 26 Apr 2023 07:03:11 +0000</pubDate>
      <link>https://forem.com/soumyajit7/stock-tracker-a-web-app-to-track-the-real-time-stock-market-data--jo3</link>
      <guid>https://forem.com/soumyajit7/stock-tracker-a-web-app-to-track-the-real-time-stock-market-data--jo3</guid>
      <description>&lt;p&gt;You can see the Demo from here 👇&lt;br&gt;
&lt;a href="https://stocktracker0.netlify.app/"&gt;https://stocktracker0.netlify.app/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;For this project, I have used these libraries,&lt;br&gt;
▶️ React JS (CRA)&lt;br&gt;
▶️ High Chart to display Graph&lt;br&gt;
▶️ Styled-Components for styling&lt;br&gt;
▶️ Real-time stock market data API&lt;/p&gt;

&lt;p&gt;Presentation Video&lt;br&gt;
&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/Kb91IrF1rl0"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;Any suggestions are welcomed!&lt;br&gt;
&lt;strong&gt;Thanks For Reading&lt;/strong&gt;😄&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>programming</category>
      <category>react</category>
      <category>stock</category>
    </item>
  </channel>
</rss>
