<?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: Ganesh Srambikal</title>
    <description>The latest articles on Forem by Ganesh Srambikal (@ganeshsrambikal).</description>
    <link>https://forem.com/ganeshsrambikal</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%2F2634861%2F0eb4f31a-e849-46e7-b7d5-36e9fd1a9073.png</url>
      <title>Forem: Ganesh Srambikal</title>
      <link>https://forem.com/ganeshsrambikal</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/ganeshsrambikal"/>
    <language>en</language>
    <item>
      <title>Building a Real-Time Attendance Management System with WebSockets</title>
      <dc:creator>Ganesh Srambikal</dc:creator>
      <pubDate>Tue, 04 Mar 2025 16:30:12 +0000</pubDate>
      <link>https://forem.com/ganeshsrambikal/building-a-real-time-attendance-management-system-with-websockets-1jeb</link>
      <guid>https://forem.com/ganeshsrambikal/building-a-real-time-attendance-management-system-with-websockets-1jeb</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;Managing attendance efficiently is crucial for any organization. In our recent project, we built an Attendance Management System that enhances user experience with real-time updates, reminders, and notifications—all powered by WebSockets.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Key Features Implemented
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;✅ WebSocket-Powered Real-Time Updates&lt;/strong&gt;&lt;br&gt;
We used WebSockets to provide instant feedback on attendance status. When an employee marks attendance, the system immediately reflects the change across all connected devices without requiring a page refresh.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;🔔 Smart Reminders &amp;amp; Notifications&lt;/strong&gt;&lt;br&gt;
To ensure timely check-ins and check-outs, we implemented an automated reminder system that sends real-time notifications via WebSockets. This helps users stay compliant with attendance policies without needing manual intervention.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;🏢 Role-Based Access Control&lt;/strong&gt;&lt;br&gt;
Admins can monitor live attendance data, view analytics, and send alerts, while employees can track their own attendance logs effortlessly.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;💾 Scalable &amp;amp; Efficient Backend&lt;/strong&gt;&lt;br&gt;
We followed Express.js best practices, ensuring a modular and maintainable backend. WebSockets were integrated with Redis Pub/Sub for scalability, allowing multiple servers to handle real-time communication seamlessly.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;PAGES&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;LANDING PAGE&lt;/li&gt;
&lt;/ol&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%2F7xk77osdcew0cs0vhio1.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%2F7xk77osdcew0cs0vhio1.png" alt="Image description" width="800" height="1167"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;LOGIN PAGE&lt;/li&gt;
&lt;/ol&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%2F8k1qjblse7lenxnkbg59.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%2F8k1qjblse7lenxnkbg59.png" alt="Image description" width="800" height="459"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;ADMIN DASHBOARD&lt;/li&gt;
&lt;/ol&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%2Fov41ws64avm2636iyts2.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%2Fov41ws64avm2636iyts2.png" alt="Image description" width="800" height="459"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;USER MANAGE (ADMIN ONLY)&lt;/li&gt;
&lt;/ol&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%2F56f0q00xawx4b1xi3odv.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%2F56f0q00xawx4b1xi3odv.png" alt="Image description" width="800" height="459"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;REPORTS (ADMIN ONLY)&lt;/li&gt;
&lt;/ol&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%2Fuy5qvv45m3wq0nj1ytkk.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%2Fuy5qvv45m3wq0nj1ytkk.png" alt="Image description" width="800" height="459"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;USER DASHBOARD&lt;/li&gt;
&lt;/ol&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%2Ffbxrt2y2jazq75whabwl.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%2Ffbxrt2y2jazq75whabwl.png" alt="Image description" width="800" height="459"&gt;&lt;/a&gt;&lt;/p&gt;

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

&lt;ul&gt;
&lt;li&gt;Frontend: React (with hooks for real-time state updates)&lt;/li&gt;
&lt;li&gt;Backend: Express.js with WebSocket integration&lt;/li&gt;
&lt;li&gt;Database: MongoDB for storing attendance logs&lt;/li&gt;
&lt;li&gt;Notifications: WebSockets for instant updates&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;GITHUB REPO&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://github.com/GaneshSrambikal/AMS" rel="noopener noreferrer"&gt;Github/GaneshSrambikal/ams&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;LIVE DEMO&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://github.com/GaneshSrambikal/AMS" rel="noopener noreferrer"&gt;LIVE&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Final Thoughts&lt;/strong&gt;&lt;br&gt;
This system eliminates the need for frequent manual refreshes, providing a seamless user experience with real-time insights. By leveraging WebSockets, we’ve made attendance tracking efficient, automated, and interactive.&lt;/p&gt;

&lt;p&gt;Would love to hear your thoughts! 🚀&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>mern</category>
      <category>react</category>
      <category>websockets</category>
    </item>
    <item>
      <title>Measuring Developer Experience (DX) with HEART: A Technology Focus</title>
      <dc:creator>Ganesh Srambikal</dc:creator>
      <pubDate>Mon, 06 Jan 2025 11:56:46 +0000</pubDate>
      <link>https://forem.com/ganeshsrambikal/measuring-developer-experience-dx-with-heart-a-technology-focus-1972</link>
      <guid>https://forem.com/ganeshsrambikal/measuring-developer-experience-dx-with-heart-a-technology-focus-1972</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;Developer Experience (DX) is crucial for productivity, retention, and overall software quality. But how do you actually &lt;em&gt;measure&lt;/em&gt; it?&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The HEART framework provides a robust approach, focusing on five key metrics: Happiness, Engagement, Adoption, Retention, and Task Success. Let's explore how we can apply HEART specifically within the technology category of DX.&lt;/p&gt;

&lt;h2&gt;
  
  
  Happiness:
&lt;/h2&gt;

&lt;p&gt;This focuses on the overall satisfaction of developers with their tools and processes. For technology, this could be measured through surveys asking about satisfaction with specific IDEs, deployment pipelines, debugging tools, or internal libraries. Net Promoter Score (NPS) is a common metric here: "On a scale of 0-10, how likely are you to recommend our development tools to a colleague?"&lt;/p&gt;

&lt;h2&gt;
  
  
  Engagement:
&lt;/h2&gt;

&lt;p&gt;This measures how actively developers use and interact with the technology. Key metrics include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Code contribution frequency: How often are developers committing code? Are there long periods of inactivity?&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Usage of specific tools: Tracking usage of specific IDE features, build systems, or testing frameworks.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Participation in developer communities: Engagement in internal forums, knowledge sharing sessions, or external open-source contributions related to the technology.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Adoption:
&lt;/h2&gt;

&lt;p&gt;This refers to the rate at which developers embrace new technologies or updates. Measurements include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Time to adopt new tools: How long does it take developers to start effectively using a new technology?&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Percentage of developers using a new technology: Simple tracking of adoption rates.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Frequency of upgrading to new versions: Measures how readily developers update to improved or patched versions.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Retention:
&lt;/h2&gt;

&lt;p&gt;This metric focuses on the long-term use and continued relevance of the technology. It's often linked to engagement, but extends further. For technology, this might encompass:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Number of developers still using a technology after a set period: Monitoring attrition from using specific technologies.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Number of projects using the technology: Growth in use across projects indicates sustained relevance.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Developer feedback on long-term usability: Gathering feedback on how well the technology continues to serve its purpose.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Task Success:
&lt;/h2&gt;

&lt;p&gt;This measures how effectively developers can complete tasks using the provided technologies. Metrics include:&lt;/p&gt;

&lt;p&gt;-Time to complete key development tasks: Tracking the time spent on specific activities, such as building, testing, or deploying.&lt;/p&gt;

&lt;p&gt;-Error rates: Measuring the frequency of bugs or failures related to technology use.&lt;/p&gt;

&lt;p&gt;-Deployment success rate: Tracking the percentage of successful deployments.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;By focusing on these HEART metrics and tailoring the measurements to specific technologies, development teams can gain valuable insights into their DX and make data-driven improvements. This targeted approach will lead to happier, more productive developers, and higher-quality software.&lt;/p&gt;
&lt;/blockquote&gt;

</description>
      <category>webdev</category>
      <category>development</category>
      <category>developers</category>
      <category>programming</category>
    </item>
    <item>
      <title>Blogsphere | A blogging website made with MERN stack. includes user management.</title>
      <dc:creator>Ganesh Srambikal</dc:creator>
      <pubDate>Mon, 30 Dec 2024 19:20:22 +0000</pubDate>
      <link>https://forem.com/ganeshsrambikal/blogsphere-a-blogging-website-made-with-mern-stack-includes-user-management-3j84</link>
      <guid>https://forem.com/ganeshsrambikal/blogsphere-a-blogging-website-made-with-mern-stack-includes-user-management-3j84</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;Create AI-powered blogs effortlessly&lt;br&gt;
Post blogs and earn rewards. Powered by Google's gemini&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  What is Blogsphere?
&lt;/h2&gt;

&lt;p&gt;Blogsphere is an innovative platform that leverages artificial intelligence to simplify content creation with google's gemini ai. Whether you're a professional writer or a hobbyist, our tools help you craft compelling blogs, manage images, and reach your audience efficiently.&lt;/p&gt;

&lt;p&gt;Complete user management lets you manage your profile details, reset passwords and more. Besides creating new posts user get rewards point which later can be redeem to ai credits. User also gets rewards for liking and commenting on post.&lt;/p&gt;

&lt;p&gt;Purchase Ai credits with seemless payment through razorpay payment gateway.&lt;/p&gt;

&lt;h2&gt;
  
  
  What are the features?
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;create and explore awesome blog post of different categories.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Follower other blogs and be updated on new blog posts.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Complete user management. Include password reset and forgot password, abouts and more.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Generate Blogs using google's gemini.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Earn rewards by posting blog, liking a post or commenting.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Redeem your earned rewards to Ai credits.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Razorpay payment integration for seemless and hasslefree payments.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Live Demo: &lt;a href="https://blogsphere-react-node.vercel.app/" rel="noopener noreferrer"&gt;Blogsphere&lt;/a&gt;&lt;br&gt;
Github Code: &lt;a href="https://github.com/GaneshSrambikal/blog_app_react_node.git" rel="noopener noreferrer"&gt;code&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  What tech stack being used?
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;MERN stack&lt;/strong&gt; 
&lt;strong&gt;also available in Reactjs + Nestjs&lt;/strong&gt; &lt;a href="https://github.com/GaneshSrambikal/blog_app_react_nestjs.git" rel="noopener noreferrer"&gt;react_nestjs_code&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;For Documentation read here&lt;/strong&gt; &lt;a href="https://github.com/GaneshSrambikal/blog_app_react_node/blob/main/README.md" rel="noopener noreferrer"&gt;Readme&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Conclusion:&lt;/strong&gt;&lt;br&gt;
Do fork/clone or star the github repo mentioned. contributions are open!. Follow me on &lt;a href="https://github.com/GaneshSrambikal/" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt; for more updates.&lt;/p&gt;

&lt;p&gt;Checkout the codepen for landingpage.&lt;/p&gt;

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

</description>
      <category>react</category>
      <category>express</category>
      <category>mern</category>
      <category>nestjs</category>
    </item>
  </channel>
</rss>
