<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Pradeep Ravisankar</title>
    <description>The latest articles on DEV Community by Pradeep Ravisankar (@pradeep_ravisankar).</description>
    <link>https://dev.to/pradeep_ravisankar</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%2F3455690%2F0ff7fe41-5460-4ab5-a606-ab7de7769af0.png</url>
      <title>DEV Community: Pradeep Ravisankar</title>
      <link>https://dev.to/pradeep_ravisankar</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/pradeep_ravisankar"/>
    <language>en</language>
    <item>
      <title>My Journey Building a Student Attendance Management System (MERN + DevOps)</title>
      <dc:creator>Pradeep Ravisankar</dc:creator>
      <pubDate>Sun, 24 Aug 2025 10:12:30 +0000</pubDate>
      <link>https://dev.to/pradeep_ravisankar/my-journey-building-a-student-attendance-management-system-mern-devops-5f8g</link>
      <guid>https://dev.to/pradeep_ravisankar/my-journey-building-a-student-attendance-management-system-mern-devops-5f8g</guid>
      <description>&lt;p&gt;Hey everyone 👋, I’m Pradeep, and I recently completed and deployed my Student Attendance Management System using the MERN stack. This blog is about my journey — from an idea to a live production app with CI/CD pipelines, Docker, and cloud deployment.&lt;/p&gt;

&lt;h2&gt;
  
  
  🌱 Where It Started
&lt;/h2&gt;

&lt;p&gt;Like most students, I saw how messy attendance tracking can be in real life. Manual registers, spreadsheets, and no clear visibility for students. That’s when I thought — why not build a modern attendance management system that’s secure, responsive, and production-ready?&lt;/p&gt;

&lt;p&gt;🛠️ Tech Stack&lt;/p&gt;

&lt;p&gt;I decided to go with the MERN stack for flexibility and scalability:&lt;/p&gt;

&lt;p&gt;Frontend: React + Tailwind CSS (clean UI, responsive, dark mode support)&lt;/p&gt;

&lt;p&gt;Backend: Node.js + Express (API-driven, JWT authentication)&lt;/p&gt;

&lt;p&gt;Database: MongoDB + Mongoose (flexible schema design)&lt;/p&gt;

&lt;p&gt;Auth &amp;amp; Security: JWT, bcrypt, input sanitization&lt;/p&gt;

&lt;p&gt;Deployment &amp;amp; DevOps: Docker, GitHub Actions, Render (backend), Netlify (frontend)&lt;/p&gt;

&lt;h2&gt;
  
  
  ✨ Features I Built
&lt;/h2&gt;

&lt;p&gt;👩‍🏫 Teacher&lt;/p&gt;

&lt;p&gt;Add / delete students&lt;/p&gt;

&lt;p&gt;Mark and update attendance&lt;/p&gt;

&lt;p&gt;View records in a dynamic table&lt;/p&gt;

&lt;p&gt;🎓 Student&lt;/p&gt;

&lt;p&gt;Secure login&lt;/p&gt;

&lt;p&gt;View personal attendance records&lt;/p&gt;

&lt;p&gt;Track percentage progress&lt;/p&gt;

&lt;p&gt;🛡️ Admin&lt;/p&gt;

&lt;p&gt;Role-based access control&lt;/p&gt;

&lt;p&gt;Protected routes for teacher dashboards&lt;/p&gt;

&lt;h2&gt;
  
  
  🔒 Security First
&lt;/h2&gt;

&lt;p&gt;Instead of hardcoding secrets, I made sure to use environment variables for both frontend (Netlify) and backend (Render). That way, credentials like MongoDB URI and JWT keys are never exposed.&lt;/p&gt;

&lt;h2&gt;
  
  
  🚀 Deployment Journey
&lt;/h2&gt;

&lt;p&gt;This was my favorite part — taking the project live.&lt;/p&gt;

&lt;p&gt;CI/CD pipeline with GitHub Actions&lt;/p&gt;

&lt;p&gt;Build Docker images → Push to Docker Hub&lt;/p&gt;

&lt;p&gt;Backend auto-deployed on Render via webhook&lt;/p&gt;

&lt;p&gt;Frontend auto-deployed on Netlify&lt;/p&gt;

&lt;p&gt;The best part? Every new commit automatically triggers builds &amp;amp; deployments.&lt;/p&gt;

&lt;h2&gt;
  
  
  🎥 Demo Access
&lt;/h2&gt;

&lt;p&gt;Want to try it out?&lt;/p&gt;

&lt;p&gt;Teacher ID: t001 | Password: abc@123&lt;/p&gt;

&lt;p&gt;Student ID: std_1 | Password: linus@123&lt;/p&gt;

&lt;p&gt;👉 &lt;a href="https://student-attandance-management-system.netlify.app/" rel="noopener noreferrer"&gt;Live Demo Link&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;📌 Lessons I Learned&lt;/p&gt;

&lt;p&gt;Building is one thing, but deploying securely is where the real learning happens.&lt;/p&gt;

&lt;p&gt;Docker + GitHub Actions + Render + Netlify = a professional-grade pipeline.&lt;/p&gt;

&lt;p&gt;Writing clean code is important, but thinking about scalability, auth, and security is just as crucial.&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>mern</category>
      <category>mongoose</category>
    </item>
  </channel>
</rss>
