<?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: SIDDHARTH PATIL</title>
    <description>The latest articles on DEV Community by SIDDHARTH PATIL (@sidatgithubcode).</description>
    <link>https://dev.to/sidatgithubcode</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%2F2565915%2Fbfa04a0b-3f7e-4fa3-8f9f-4d69fb481f5f.jpeg</url>
      <title>DEV Community: SIDDHARTH PATIL</title>
      <link>https://dev.to/sidatgithubcode</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/sidatgithubcode"/>
    <language>en</language>
    <item>
      <title>praj - tatya vinchu</title>
      <dc:creator>SIDDHARTH PATIL</dc:creator>
      <pubDate>Fri, 09 Jan 2026 04:52:45 +0000</pubDate>
      <link>https://dev.to/sidatgithubcode/praj-tatya-vinchu-3oom</link>
      <guid>https://dev.to/sidatgithubcode/praj-tatya-vinchu-3oom</guid>
      <description>&lt;p&gt;&lt;strong&gt;minimum study, maximum confidence&lt;/strong&gt;.&lt;br&gt;
What follows is &lt;strong&gt;exactly enough&lt;/strong&gt; to survive resume shortlisting &lt;strong&gt;and&lt;/strong&gt; answer fresher-level interview questions—nothing extra, nothing scary.&lt;/p&gt;

&lt;p&gt;No fluff. No theory overload. This is &lt;strong&gt;mug-up friendly but still honest&lt;/strong&gt;.&lt;/p&gt;




&lt;h1&gt;
  
  
  PROJECT 1 STUDY MATERIAL
&lt;/h1&gt;

&lt;h2&gt;
  
  
  AI-Based Resume Screening &amp;amp; Skill Matching (Python)
&lt;/h2&gt;

&lt;h3&gt;
  
  
  What problem does it solve? (memorize)
&lt;/h3&gt;

&lt;p&gt;Manual resume screening is slow and inconsistent. This project automates the initial screening by matching candidate skills with job requirements.&lt;/p&gt;




&lt;h2&gt;
  
  
  Very Simple Implementation Idea
&lt;/h2&gt;

&lt;p&gt;(No ML. No libraries headache.)&lt;/p&gt;

&lt;h3&gt;
  
  
  Files
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;code&gt;resume.txt&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;job_description.txt&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;resume_screening.py&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Core Steps (say this in interview)
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;Read resume and job description text files&lt;/li&gt;
&lt;li&gt;Clean the text (lowercase, remove special characters)&lt;/li&gt;
&lt;li&gt;Extract skills using a predefined skill list&lt;/li&gt;
&lt;li&gt;Compare resume skills with JD skills&lt;/li&gt;
&lt;li&gt;Calculate match percentage&lt;/li&gt;
&lt;/ol&gt;




&lt;h2&gt;
  
  
  Ultra-Simple Code Logic (understand this, not memorize)
&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;skills&lt;/span&gt; &lt;span class="o"&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;python&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;java&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;sql&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;html&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;css&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;

&lt;span class="n"&gt;resume_text&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;open&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;resume.txt&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nf"&gt;read&lt;/span&gt;&lt;span class="p"&gt;().&lt;/span&gt;&lt;span class="nf"&gt;lower&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;span class="n"&gt;jd_text&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;open&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;job_description.txt&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nf"&gt;read&lt;/span&gt;&lt;span class="p"&gt;().&lt;/span&gt;&lt;span class="nf"&gt;lower&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;

&lt;span class="n"&gt;resume_skills&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;s&lt;/span&gt; &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;s&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="n"&gt;skills&lt;/span&gt; &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;s&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="n"&gt;resume_text&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;span class="n"&gt;jd_skills&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;s&lt;/span&gt; &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;s&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="n"&gt;skills&lt;/span&gt; &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;s&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="n"&gt;jd_text&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;

&lt;span class="n"&gt;match_score&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nf"&gt;len&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;resume_skills&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;/&lt;/span&gt; &lt;span class="nf"&gt;len&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;jd_skills&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="mi"&gt;100&lt;/span&gt;
&lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Match Score:&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;match_score&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;That’s it. This alone is enough.&lt;/p&gt;




&lt;h2&gt;
  
  
  Keywords to memorize
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Resume parsing&lt;/li&gt;
&lt;li&gt;Rule-based NLP&lt;/li&gt;
&lt;li&gt;Skill extraction&lt;/li&gt;
&lt;li&gt;Match scoring&lt;/li&gt;
&lt;li&gt;Automation&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Interview Q&amp;amp;A (ONLY THESE)
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Q: Is this machine learning?&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;No, it is a rule-based NLP system designed for basic automation.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;Q: Why not ML?&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;For initial screening, rule-based systems are faster, simpler, and cost-effective.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;Q: How can this be improved?&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;It can be extended using ML models, databases, and web interfaces.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h1&gt;
  
  
  PROJECT 2 STUDY MATERIAL
&lt;/h1&gt;

&lt;h2&gt;
  
  
  Automated Employee Attendance Tracking System (Python)
&lt;/h2&gt;

&lt;h3&gt;
  
  
  What problem does it solve? (memorize)
&lt;/h3&gt;

&lt;p&gt;Manual attendance tracking is error-prone and time-consuming. This system automates attendance recording and report generation.&lt;/p&gt;




&lt;h2&gt;
  
  
  Very Simple Implementation Idea
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Files
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;code&gt;attendance.csv&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;attendance_system.py&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Core Steps
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Take employee ID and check-in/check-out time&lt;/li&gt;
&lt;li&gt;Store data in CSV file&lt;/li&gt;
&lt;li&gt;Calculate working hours&lt;/li&gt;
&lt;li&gt;Mark attendance status&lt;/li&gt;
&lt;li&gt;Generate report&lt;/li&gt;
&lt;/ol&gt;




&lt;h2&gt;
  
  
  Ultra-Simple Code Logic
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="n"&gt;datetime&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;datetime&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;csv&lt;/span&gt;

&lt;span class="n"&gt;check_in&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;datetime&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;strptime&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;09:00&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;%H:%M&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;check_out&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;datetime&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;strptime&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;17:30&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;%H:%M&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="n"&gt;hours&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;check_out&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="n"&gt;check_in&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="n"&gt;seconds&lt;/span&gt; &lt;span class="o"&gt;/&lt;/span&gt; &lt;span class="mi"&gt;3600&lt;/span&gt;

&lt;span class="n"&gt;status&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Present&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt; &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;hours&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;=&lt;/span&gt; &lt;span class="mi"&gt;8&lt;/span&gt; &lt;span class="k"&gt;else&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Absent&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;
&lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Working Hours:&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;hours&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Status:&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;status&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;That alone is enough to explain the project.&lt;/p&gt;




&lt;h2&gt;
  
  
  Keywords to memorize
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Process automation&lt;/li&gt;
&lt;li&gt;Attendance management&lt;/li&gt;
&lt;li&gt;Time calculation&lt;/li&gt;
&lt;li&gt;Report generation&lt;/li&gt;
&lt;li&gt;Data accuracy&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Interview Q&amp;amp;A (ONLY THESE)
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Q: Why use CSV?&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;CSV is lightweight, easy to maintain, and suitable for small-scale systems.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;Q: What happens if time input is wrong?&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Basic exception handling can be added to handle invalid inputs.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;Q: Where is this used in real life?&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;HR systems, payroll processing, and workforce management.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  ONE LINE THAT SAVES HER IN INTERVIEWS
&lt;/h2&gt;

&lt;p&gt;Tell her to say this confidently at the end of every answer:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“The project was designed with simplicity and scalability in mind, suitable for enterprise environments.”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Recruiters love that sentence. It means nothing and everything at the same time.&lt;/p&gt;




&lt;h2&gt;
  
  
  Absolute Final Prep Checklist
&lt;/h2&gt;

&lt;p&gt;She should be able to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Explain &lt;strong&gt;what problem the project solves&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Explain &lt;strong&gt;basic flow&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Name &lt;strong&gt;2 improvements&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Say &lt;strong&gt;why Python was used&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;




</description>
    </item>
    <item>
      <title>smartsence - siddhi</title>
      <dc:creator>SIDDHARTH PATIL</dc:creator>
      <pubDate>Fri, 10 Oct 2025 02:46:51 +0000</pubDate>
      <link>https://dev.to/sidatgithubcode/smartsence-siddhi-4cgo</link>
      <guid>https://dev.to/sidatgithubcode/smartsence-siddhi-4cgo</guid>
      <description>&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Person&lt;/th&gt;
&lt;th&gt;Role&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Siddhi Nalawade&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Web App &amp;amp; System Integration&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Shravani Sarvi&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;IoT and ESP8266 Control&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Bhakti Potdar&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;ML &amp;amp; OpenCV Detection System&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Srushti Waydande&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Electronics Hardware &amp;amp; Energy Automation&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;




&lt;h2&gt;
  
  
  🎤 &lt;strong&gt;Smart Classroom Automation using IoT and Computer Vision&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Full 10-Slide Presentation Script (with role-wise flow)&lt;/strong&gt;&lt;/p&gt;




&lt;h3&gt;
  
  
  &lt;strong&gt;Slide 1 – Title Slide&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Siddhi:&lt;/strong&gt;&lt;br&gt;
“Good morning everyone. We are here to present our final-year project titled &lt;em&gt;Smart Classroom Automation using IoT and Computer Vision&lt;/em&gt;.&lt;br&gt;
Our team members are — myself, &lt;strong&gt;Siddhi Nalawade&lt;/strong&gt;, &lt;strong&gt;Shravani Sarvi&lt;/strong&gt;, &lt;strong&gt;Bhakti Potdar&lt;/strong&gt;, and &lt;strong&gt;Srushti Waydande&lt;/strong&gt;.&lt;br&gt;
Our guide for this project is [faculty name].&lt;br&gt;
Let’s walk you through how we combined AI, IoT, and automation to make classrooms truly intelligent.”&lt;/p&gt;




&lt;h3&gt;
  
  
  &lt;strong&gt;Slide 2 – Introduction&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Shravani:&lt;/strong&gt;&lt;br&gt;
“Classrooms often have lights and fans left on even when no one is present.&lt;br&gt;
Our system aims to solve this by &lt;strong&gt;detecting human presence using a camera&lt;/strong&gt; and then &lt;strong&gt;automatically switching off electrical devices&lt;/strong&gt; when the room is empty.&lt;br&gt;
We also provide a &lt;strong&gt;custom web application&lt;/strong&gt; so users can manually control devices from anywhere.&lt;br&gt;
It’s an energy-efficient and user-friendly system built for smart institutions.”&lt;/p&gt;




&lt;h3&gt;
  
  
  &lt;strong&gt;Slide 3 – Problem Statement&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Bhakti:&lt;/strong&gt;&lt;br&gt;
“Most institutions rely on manual switching, which leads to wastage of energy and higher electricity bills.&lt;br&gt;
Even motion sensors often fail to detect stationary humans, so they’re not reliable in classrooms.&lt;br&gt;
We wanted a system that is &lt;strong&gt;accurate, automatic, and intelligent&lt;/strong&gt; — that’s why we used &lt;strong&gt;computer vision instead of basic sensors&lt;/strong&gt;.”&lt;/p&gt;




&lt;h3&gt;
  
  
  &lt;strong&gt;Slide 4 – Objective / Aim&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Srushti:&lt;/strong&gt;&lt;br&gt;
“Our main objective is to create an &lt;strong&gt;automated classroom environment&lt;/strong&gt; that can:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Detect human presence through a camera feed.&lt;/li&gt;
&lt;li&gt;Control fans and lights through IoT.&lt;/li&gt;
&lt;li&gt;Offer a manual control option through a web or mobile app.
This ensures both energy saving and user flexibility.”&lt;/li&gt;
&lt;/ol&gt;




&lt;h3&gt;
  
  
  &lt;strong&gt;Slide 5 – Need / Significance&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Siddhi:&lt;/strong&gt;&lt;br&gt;
“This project supports the idea of a sustainable campus.&lt;br&gt;
By automating device control, we &lt;strong&gt;minimize energy waste&lt;/strong&gt; and &lt;strong&gt;reduce human effort&lt;/strong&gt;.&lt;br&gt;
It also provides real-time monitoring and data collection that can later help the management analyze energy usage patterns across classrooms.”&lt;/p&gt;




&lt;h3&gt;
  
  
  &lt;strong&gt;Slide 6 – System Architecture&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Shravani:&lt;/strong&gt;&lt;br&gt;
“Here’s how our system works end-to-end.&lt;br&gt;
We use a &lt;strong&gt;camera&lt;/strong&gt; connected to a processing unit that runs an &lt;strong&gt;OpenCV-based human detection model&lt;/strong&gt;.&lt;br&gt;
When no person is detected, the backend sends a signal to the &lt;strong&gt;ESP8266 microcontroller&lt;/strong&gt; through Wi-Fi.&lt;br&gt;
The ESP then switches off the connected appliances via &lt;strong&gt;relay modules&lt;/strong&gt;.&lt;br&gt;
Communication between the app, backend, and hardware happens over standard HTTP APIs.”&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Bhakti (adds):&lt;/strong&gt;&lt;br&gt;
“The ML model continuously checks frames from the live camera feed. It’s light-weight enough to run locally, so it doesn’t need a powerful GPU.”&lt;/p&gt;




&lt;h3&gt;
  
  
  &lt;strong&gt;Slide 7 – Use Case Scenario&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Bhakti:&lt;/strong&gt;&lt;br&gt;
“Let’s consider a real classroom.&lt;br&gt;
When students or teachers are present, our camera detects them — all lights and fans remain ON.&lt;br&gt;
When the classroom becomes empty for a few minutes, the system confirms no human detection and sends a command to turn OFF all appliances.&lt;br&gt;
If a teacher wants to use the room for extra time, they can log into the web app and manually turn devices ON.”&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Siddhi:&lt;/strong&gt;&lt;br&gt;
“The app also provides an admin login and shows current device status, so users always have control.”&lt;/p&gt;




&lt;h3&gt;
  
  
  &lt;strong&gt;Slide 8 – Advantages&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Srushti:&lt;/strong&gt;&lt;br&gt;
“Our system provides multiple benefits:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;It saves significant energy.&lt;/li&gt;
&lt;li&gt;Reduces manual intervention.&lt;/li&gt;
&lt;li&gt;Provides a live control interface.&lt;/li&gt;
&lt;li&gt;Is scalable for other rooms and buildings.&lt;/li&gt;
&lt;li&gt;Works with affordable components like ESP8266 and relays.”&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Shravani:&lt;/strong&gt;&lt;br&gt;
“And the best part — it’s wireless and Internet-enabled, so it can be managed remotely.”&lt;/p&gt;




&lt;h3&gt;
  
  
  &lt;strong&gt;Slide 9 – Market Scope &amp;amp; Future Enhancements&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Siddhi:&lt;/strong&gt;&lt;br&gt;
“The system can easily be scaled to a &lt;strong&gt;Smart Campus Solution&lt;/strong&gt; and even used in offices or hostels.&lt;br&gt;
We’re also planning to extend it with features like:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Face recognition for attendance marking.&lt;/li&gt;
&lt;li&gt;Voice assistant integration for control.&lt;/li&gt;
&lt;li&gt;Cloud data analytics to predict usage patterns.&lt;/li&gt;
&lt;li&gt;Integration with solar power for sustainable automation.”&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  &lt;strong&gt;Slide 10 – Conclusion&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;All (in turns):&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Bhakti:&lt;/strong&gt;&lt;br&gt;
“To conclude, our project shows how machine learning can make real-world spaces intelligent.”&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Shravani:&lt;/strong&gt;&lt;br&gt;
“We connected IoT with AI to create a system that conserves energy automatically.”&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Siddhi:&lt;/strong&gt;&lt;br&gt;
“Our web interface bridges the gap between users and hardware, making control simple and reliable.”&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Srushti:&lt;/strong&gt;&lt;br&gt;
“This project demonstrates how electronics, software, and AI can work together for sustainability and smart living.”&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;All together:&lt;/strong&gt;&lt;br&gt;
“Thank you for your time!”&lt;/p&gt;




&lt;h2&gt;
  
  
  💡 Presentation Flow Summary (for rehearsal)
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Slide&lt;/th&gt;
&lt;th&gt;Speaker&lt;/th&gt;
&lt;th&gt;Focus&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;Siddhi&lt;/td&gt;
&lt;td&gt;Intro &amp;amp; team intro&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;2&lt;/td&gt;
&lt;td&gt;Shravani&lt;/td&gt;
&lt;td&gt;Problem context&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;3&lt;/td&gt;
&lt;td&gt;Bhakti&lt;/td&gt;
&lt;td&gt;Problem details &amp;amp; ML motivation&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;4&lt;/td&gt;
&lt;td&gt;Srushti&lt;/td&gt;
&lt;td&gt;Objective&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;5&lt;/td&gt;
&lt;td&gt;Siddhi&lt;/td&gt;
&lt;td&gt;Significance&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;6&lt;/td&gt;
&lt;td&gt;Shravani + Bhakti&lt;/td&gt;
&lt;td&gt;Architecture&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;7&lt;/td&gt;
&lt;td&gt;Bhakti + Siddhi&lt;/td&gt;
&lt;td&gt;Use case&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;8&lt;/td&gt;
&lt;td&gt;Srushti + Shravani&lt;/td&gt;
&lt;td&gt;Advantages&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;9&lt;/td&gt;
&lt;td&gt;Siddhi&lt;/td&gt;
&lt;td&gt;Market &amp;amp; Future&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;10&lt;/td&gt;
&lt;td&gt;All&lt;/td&gt;
&lt;td&gt;Conclusion&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;




&lt;h1&gt;
  
  
  project over view
&lt;/h1&gt;




&lt;h1&gt;
  
  
  🧠 &lt;strong&gt;Project Title:&lt;/strong&gt; Smart Classroom Automation using IoT and Computer Vision
&lt;/h1&gt;

&lt;h3&gt;
  
  
  &lt;em&gt;A Human Detection–Based Energy Optimization System&lt;/em&gt;
&lt;/h3&gt;




&lt;h2&gt;
  
  
  1. &lt;strong&gt;Concept Overview&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;This project is an &lt;strong&gt;intelligent automation system&lt;/strong&gt; that monitors classrooms in real time using &lt;strong&gt;computer vision&lt;/strong&gt; and controls electrical appliances (lights, fans, etc.) through &lt;strong&gt;IoT hardware (ESP8266)&lt;/strong&gt;.&lt;br&gt;
When no human is detected for a defined time, the system &lt;strong&gt;automatically switches off&lt;/strong&gt; all connected devices.&lt;/p&gt;

&lt;p&gt;It also includes a &lt;strong&gt;custom-built web app&lt;/strong&gt; where authorized users can:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Log in and control appliances manually,&lt;/li&gt;
&lt;li&gt;Override automatic control if needed,&lt;/li&gt;
&lt;li&gt;Monitor live status and logs,&lt;/li&gt;
&lt;li&gt;Access the system remotely through the Internet.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Thus, the system integrates &lt;strong&gt;three major technologies&lt;/strong&gt;:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Computer Vision (OpenCV/ML)&lt;/strong&gt; for intelligent detection.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;IoT (ESP8266 + Relays)&lt;/strong&gt; for real-world device control.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Web Application&lt;/strong&gt; for centralized human interaction and monitoring.&lt;/li&gt;
&lt;/ol&gt;




&lt;h2&gt;
  
  
  2. &lt;strong&gt;Problem It Solves&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Traditional classrooms rely on human action to turn off fans and lights. In practice, they’re often left ON after classes — resulting in:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Energy wastage (up to 30–40% daily in some institutions).&lt;/li&gt;
&lt;li&gt;Higher maintenance and electricity costs.&lt;/li&gt;
&lt;li&gt;Lack of accountability for energy use.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Motion sensors&lt;/strong&gt; exist, but they only detect movement — not presence. So, if a teacher stands still or writes on the board quietly, sensors may falsely switch lights off.&lt;/p&gt;

&lt;p&gt;Our system, in contrast, uses &lt;strong&gt;camera-based ML&lt;/strong&gt;, which &lt;em&gt;sees&lt;/em&gt; humans — even when stationary — and makes intelligent decisions based on actual presence, not motion.&lt;/p&gt;




&lt;h2&gt;
  
  
  3. &lt;strong&gt;System Architecture&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Imagine the project as a chain of five interconnected modules:&lt;/p&gt;

&lt;h3&gt;
  
  
  a) &lt;strong&gt;Camera Module&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Mounted in the classroom to capture real-time video feed.&lt;/li&gt;
&lt;li&gt;Connected to a local processing device (PC, Raspberry Pi, or mini server).&lt;/li&gt;
&lt;li&gt;Provides continuous visual input to the ML model.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  b) &lt;strong&gt;Computer Vision &amp;amp; ML Processing&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;The live feed is analyzed using &lt;strong&gt;OpenCV&lt;/strong&gt; or a lightweight detection model such as &lt;strong&gt;YOLOv5 Nano&lt;/strong&gt;, &lt;strong&gt;MobileNet SSD&lt;/strong&gt;, or &lt;strong&gt;Haar Cascades&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;The model identifies whether at least one human figure is present in the frame.&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Based on the detection result, a Boolean output is produced:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;True&lt;/strong&gt; → human detected → keep appliances ON.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;False&lt;/strong&gt; → no human detected → trigger OFF signal.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;

&lt;p&gt;This module acts as the project’s &lt;strong&gt;“intelligent brain.”&lt;/strong&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  c) &lt;strong&gt;Backend / Control Logic (Server)&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Implemented using &lt;strong&gt;Flask&lt;/strong&gt; or &lt;strong&gt;FastAPI&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Receives data from the ML module every few seconds.&lt;/li&gt;
&lt;li&gt;Communicates with the ESP8266 via HTTP or MQTT protocol.&lt;/li&gt;
&lt;li&gt;Maintains user authentication, logging, and state control (ON/OFF).&lt;/li&gt;
&lt;li&gt;Stores data in a small database (SQLite or PostgreSQL).&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;It decides what command to send based on two inputs:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;ML detection status.&lt;/li&gt;
&lt;li&gt;Manual override flag from the web app.&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  d) &lt;strong&gt;IoT Hardware Module (ESP8266 + Relays)&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;The &lt;strong&gt;ESP8266&lt;/strong&gt; microcontroller connects to Wi-Fi and listens for commands from the backend API.&lt;/li&gt;
&lt;li&gt;On receiving &lt;code&gt;ON&lt;/code&gt; or &lt;code&gt;OFF&lt;/code&gt; signals, it controls &lt;strong&gt;relay modules&lt;/strong&gt; that switch power to fans and lights.&lt;/li&gt;
&lt;li&gt;Each relay acts like a programmable switch.&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;The hardware setup can include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;1 relay for lights,&lt;/li&gt;
&lt;li&gt;1 relay for fan,&lt;/li&gt;
&lt;li&gt;Optionally, more relays for AC or projector control.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;&lt;p&gt;The ESP also sends back acknowledgment (status = success/fail).&lt;/p&gt;&lt;/li&gt;

&lt;/ul&gt;

&lt;h3&gt;
  
  
  e) &lt;strong&gt;Web Application / Dashboard&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Built using &lt;strong&gt;HTML, CSS, JavaScript, React, or Flask templates&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Includes:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Login system&lt;/strong&gt; for teachers/admins.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Device control dashboard&lt;/strong&gt; (with ON/OFF switches).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Real-time status panel&lt;/strong&gt; showing camera detection state.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Logs page&lt;/strong&gt; with timestamps of automatic and manual actions.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;&lt;p&gt;The web app connects to the backend API for live control.&lt;/p&gt;&lt;/li&gt;

&lt;/ul&gt;




&lt;h2&gt;
  
  
  4. &lt;strong&gt;Detailed Working Process (Step-by-Step)&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Let’s trace what happens during a normal classroom day:&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Step 1: System Initialization&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;The camera and ML module start automatically when the device boots.&lt;/li&gt;
&lt;li&gt;The ESP8266 connects to Wi-Fi and registers itself with the backend (via a unique device ID).&lt;/li&gt;
&lt;li&gt;The web server starts listening for incoming API requests.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Step 2: Human Detection&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;The camera captures continuous video frames.&lt;/li&gt;
&lt;li&gt;Each frame is passed through the ML model.&lt;/li&gt;
&lt;li&gt;The model detects bounding boxes around humans.&lt;/li&gt;
&lt;li&gt;If humans are found, a counter resets (indicating presence).&lt;/li&gt;
&lt;li&gt;If no human is found for a set duration (say, 2 minutes), a “No Human” state is triggered.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Step 3: Decision Logic&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;The backend receives the detection result.&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;It checks:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Whether the user has manually disabled automation (manual mode).&lt;/li&gt;
&lt;li&gt;If not, the backend automatically generates a control signal:&lt;/li&gt;
&lt;li&gt;Human detected → &lt;code&gt;status = ON&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;No human detected → &lt;code&gt;status = OFF&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Step 4: Command Transmission&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;The control command (&lt;code&gt;ON&lt;/code&gt; or &lt;code&gt;OFF&lt;/code&gt;) is sent to the ESP8266 via an HTTP POST request or MQTT topic message.&lt;/li&gt;
&lt;li&gt;Example API endpoint:
&lt;code&gt;POST /device/update-status&lt;/code&gt;
Payload: &lt;code&gt;{ "device_id": "classroom_101", "fan": "off", "light": "off" }&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Step 5: Hardware Control&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;The ESP8266 receives the command and triggers the GPIO pins connected to the relay board.&lt;/li&gt;
&lt;li&gt;Relays physically disconnect or connect the circuit of fans/lights.&lt;/li&gt;
&lt;li&gt;The change happens instantly (usually under 1 second).&lt;/li&gt;
&lt;li&gt;The ESP then sends back a response like:
&lt;code&gt;{ "status": "success", "timestamp": "2025-10-10 09:42:00" }&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Step 6: User Interface (App)&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Teachers or administrators can log into the app at any time.&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;They can:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;View which devices are ON/OFF.&lt;/li&gt;
&lt;li&gt;Override automatic control (Manual Mode).&lt;/li&gt;
&lt;li&gt;Force devices ON even if no human is detected.&lt;/li&gt;
&lt;li&gt;View logs of automation events.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;&lt;p&gt;The UI updates every few seconds to show live data.&lt;/p&gt;&lt;/li&gt;

&lt;/ul&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Step 7: Safety and Redundancy&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;The system includes manual wall switches for emergency control.&lt;/li&gt;
&lt;li&gt;In case of Internet disconnection, the last known command is maintained locally until reconnection.&lt;/li&gt;
&lt;li&gt;The backend ensures command acknowledgment before marking an action as complete.&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  5. &lt;strong&gt;Hardware Components&lt;/strong&gt;
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Component&lt;/th&gt;
&lt;th&gt;Function&lt;/th&gt;
&lt;th&gt;Notes&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;ESP8266 (NodeMCU)&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Wi-Fi microcontroller&lt;/td&gt;
&lt;td&gt;Handles device switching&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Relay Module (2-channel or 4-channel)&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Controls AC power to appliances&lt;/td&gt;
&lt;td&gt;Opto-isolated preferred&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Camera (USB/Webcam)&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Captures live video feed&lt;/td&gt;
&lt;td&gt;Mounted at corner for wide view&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Power Supply (5V DC)&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Powers ESP and relays&lt;/td&gt;
&lt;td&gt;Use regulated adapter&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Lights &amp;amp; Fans&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Load devices&lt;/td&gt;
&lt;td&gt;Controlled appliances&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;Optional Add-ons:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;DHT11 Sensor → for temperature/humidity display in app.&lt;/li&gt;
&lt;li&gt;Buzzer → for alerts when system toggles devices.&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  6. &lt;strong&gt;Software Stack&lt;/strong&gt;
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Layer&lt;/th&gt;
&lt;th&gt;Technology Used&lt;/th&gt;
&lt;th&gt;Purpose&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Frontend (Web App)&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;React / HTML-CSS-JS / Bootstrap&lt;/td&gt;
&lt;td&gt;User dashboard, controls&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Backend API&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Flask / FastAPI&lt;/td&gt;
&lt;td&gt;Device control, login, logic&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;ML/Detection&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;OpenCV, TensorFlow Lite, or YOLOv5&lt;/td&gt;
&lt;td&gt;Detect human presence&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;IoT Communication&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;HTTP / MQTT&lt;/td&gt;
&lt;td&gt;Control and feedback&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Database&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;SQLite / PostgreSQL&lt;/td&gt;
&lt;td&gt;Logs and user accounts&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Microcontroller Code&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Arduino C++ (for ESP8266)&lt;/td&gt;
&lt;td&gt;Relay control, Wi-Fi handling&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;




&lt;h2&gt;
  
  
  7. &lt;strong&gt;Communication Flow Diagram (Conceptual)&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Camera → ML Model → Flask API → ESP8266 → Relays → Devices&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;And in reverse:&lt;br&gt;
&lt;strong&gt;ESP8266 → Flask API → Database → Web App Dashboard&lt;/strong&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  8. &lt;strong&gt;Algorithm Outline (Simplified Pseudocode)&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;The ESP8266 code then simply listens for incoming HTTP requests and toggles the GPIO pins accordingly.&lt;/p&gt;




&lt;h2&gt;
  
  
  9. &lt;strong&gt;Real-World Performance &amp;amp; Benefits&lt;/strong&gt;
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Parameter&lt;/th&gt;
&lt;th&gt;Traditional&lt;/th&gt;
&lt;th&gt;Our System&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Energy Wastage&lt;/td&gt;
&lt;td&gt;High&lt;/td&gt;
&lt;td&gt;Almost eliminated&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;User Effort&lt;/td&gt;
&lt;td&gt;Manual&lt;/td&gt;
&lt;td&gt;Automatic&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Accuracy&lt;/td&gt;
&lt;td&gt;Motion-based&lt;/td&gt;
&lt;td&gt;Vision-based&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Cost&lt;/td&gt;
&lt;td&gt;Moderate&lt;/td&gt;
&lt;td&gt;Low (DIY-friendly)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Scalability&lt;/td&gt;
&lt;td&gt;Limited&lt;/td&gt;
&lt;td&gt;Highly scalable&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Control&lt;/td&gt;
&lt;td&gt;Local&lt;/td&gt;
&lt;td&gt;Remote via App&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;Estimated savings:&lt;/strong&gt; Up to 30% reduction in electricity bills for a 10-room setup.&lt;/p&gt;




&lt;h2&gt;
  
  
  10. &lt;strong&gt;Future Enhancements&lt;/strong&gt;
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Face recognition&lt;/strong&gt; → auto attendance tracking.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Voice assistants&lt;/strong&gt; → Alexa or Google integration.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Cloud dashboard&lt;/strong&gt; → energy analytics across buildings.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Solar power integration&lt;/strong&gt; → fully green classrooms.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;AI prediction&lt;/strong&gt; → predict occupancy patterns based on schedule data.&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  11. &lt;strong&gt;Conclusion&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;This system merges &lt;strong&gt;software intelligence (AI)&lt;/strong&gt; with &lt;strong&gt;hardware automation (IoT)&lt;/strong&gt; to create a product that is sustainable, efficient, and scalable.&lt;br&gt;
It transforms a simple classroom into a &lt;strong&gt;self-managing smart environment&lt;/strong&gt;, aligning with modern smart campus goals.&lt;/p&gt;

&lt;p&gt;The result is a &lt;strong&gt;complete ecosystem&lt;/strong&gt; that:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Thinks (ML model),&lt;/li&gt;
&lt;li&gt;Acts (ESP hardware),&lt;/li&gt;
&lt;li&gt;Listens (App commands), and&lt;/li&gt;
&lt;li&gt;Learns (data analytics).&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This fusion of &lt;strong&gt;OpenCV, ESP8266, and Flask&lt;/strong&gt; creates a bridge between the digital and physical world — an ideal demonstration of engineering synergy.&lt;/p&gt;




</description>
    </item>
    <item>
      <title>smart bag system - nikita/pradyna</title>
      <dc:creator>SIDDHARTH PATIL</dc:creator>
      <pubDate>Thu, 09 Oct 2025 04:42:23 +0000</pubDate>
      <link>https://dev.to/sidatgithubcode/smart-bag-system-nikitapradyna-37lb</link>
      <guid>https://dev.to/sidatgithubcode/smart-bag-system-nikitapradyna-37lb</guid>
      <description>&lt;h1&gt;
  
  
  Smart Bag System - Project Documentation
&lt;/h1&gt;

&lt;h2&gt;
  
  
  Team Role Distribution &amp;amp; Presentation Scripts
&lt;/h2&gt;




&lt;h2&gt;
  
  
  👥 TEAM MEMBER ALLOCATION
&lt;/h2&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Person 1: Hardware &amp;amp; IoT Lead&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Responsible For:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;RFID hardware setup and testing&lt;/li&gt;
&lt;li&gt;Location station installation (Home, College, Office)&lt;/li&gt;
&lt;li&gt;RFID tags and readers configuration&lt;/li&gt;
&lt;li&gt;Hardware-software integration&lt;/li&gt;
&lt;li&gt;Physical system maintenance&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Person 2: Backend &amp;amp; Database Developer&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Responsible For:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Flask backend development&lt;/li&gt;
&lt;li&gt;Database design and management&lt;/li&gt;
&lt;li&gt;API development for app communication&lt;/li&gt;
&lt;li&gt;Real-time data processing&lt;/li&gt;
&lt;li&gt;Cloud storage setup&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Person 3: Mobile &amp;amp; Frontend Developer&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Responsible For:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Android app development&lt;/li&gt;
&lt;li&gt;Web application interface&lt;/li&gt;
&lt;li&gt;User experience design&lt;/li&gt;
&lt;li&gt;Notification system implementation&lt;/li&gt;
&lt;li&gt;Cross-platform compatibility&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Person 4: System Integration &amp;amp; Features Lead&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Responsible For:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Timetable integration system&lt;/li&gt;
&lt;li&gt;Smart reminder algorithms&lt;/li&gt;
&lt;li&gt;Book tracking logic&lt;/li&gt;
&lt;li&gt;Testing and quality assurance&lt;/li&gt;
&lt;li&gt;User documentation&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  🎤 PRESENTATION SCRIPTS
&lt;/h2&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;PERSON 1 - Hardware &amp;amp; IoT Lead&lt;/strong&gt;
&lt;/h3&gt;

&lt;h4&gt;
  
  
  &lt;strong&gt;Slide 1 Introduction (30 seconds)&lt;/strong&gt;
&lt;/h4&gt;

&lt;blockquote&gt;
&lt;p&gt;"Hello everyone! I'm [Name], and I'm the Hardware and IoT Lead for our Smart Bag System project. Today, we'll show you how we're solving the problem of lost books and forgotten materials using RFID technology. Our system tracks books across three locations: home, college, and office, making sure you never miss a class again."&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h4&gt;
  
  
  &lt;strong&gt;Slide 2 - The Challenge (45 seconds)&lt;/strong&gt;
&lt;/h4&gt;

&lt;blockquote&gt;
&lt;p&gt;"Let me explain the problem we're solving. Students lose books worth over $400 every year. Almost 23% of students miss classes because they forget their books at home. On average, people waste 45 minutes daily just searching for their books. This happens because books are scattered across different places, and there's no easy way to track them. Our system solves all these problems."&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h4&gt;
  
  
  &lt;strong&gt;Slide 3 - Our Solution (1 minute)&lt;/strong&gt;
&lt;/h4&gt;

&lt;blockquote&gt;
&lt;p&gt;"Here's our innovation. We use RFID technology to track every book in real-time. Each book gets a unique RFID tag. We have smart bags with built-in RFID readers that scan books when you pack them. We also have location stations at home, college, and office that detect which books are where. Everything connects to our mobile and web apps, so you always know where your books are. The best part? It's 100% accurate with real-time updates."&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h3&gt;
  
  
  &lt;strong&gt;PERSON 2 - Backend &amp;amp; Database Developer&lt;/strong&gt;
&lt;/h3&gt;

&lt;h4&gt;
  
  
  &lt;strong&gt;Slide 4 - Components (30 seconds)&lt;/strong&gt;
&lt;/h4&gt;

&lt;blockquote&gt;
&lt;p&gt;"Hi, I'm [Name], the Backend and Database Developer. I handle all the behind-the-scenes technology that makes our system work. This slide shows all the hardware and software components we're using. From RFID readers to our Flask backend, everything works together seamlessly."&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h4&gt;
  
  
  &lt;strong&gt;Slide 5 - Technical Architecture (1 minute 15 seconds)&lt;/strong&gt;
&lt;/h4&gt;

&lt;blockquote&gt;
&lt;p&gt;"Let me explain our technical architecture. We built this using a three-layer system. First is the Presentation Layer - this is what you see and interact with, like our web app built with React and our Android mobile app. Second is the Application Layer - this is where I work. It includes our Flask backend, business logic, and APIs that connect everything. We handle authentication, send notifications, and process data in real-time. Third is the Data Layer - we use MongoDB for storing book information and Redis for fast data access. All RFID scanner data comes here, gets processed, and is sent to your app instantly."&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h4&gt;
  
  
  &lt;strong&gt;Slide 8 - Technology Components (1 minute)&lt;/strong&gt;
&lt;/h4&gt;

&lt;blockquote&gt;
&lt;p&gt;"Now let's talk about the technology in detail. Our RFID tags work at 13.56 MHz frequency and can be read from 3-5 meters away. The batteries last over 5 years. For software, we use Flask with Python for the backend because it's simple and powerful. We chose MongoDB for our database because it's flexible for storing book data. Our APIs use REST architecture for communication between the app and server. We also use WebSockets for real-time updates, so when a book is detected, you get notified instantly. The system can handle over 10,000 users at once and responds in less than half a second."&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h3&gt;
  
  
  &lt;strong&gt;PERSON 3 - Mobile &amp;amp; Frontend Developer&lt;/strong&gt;
&lt;/h3&gt;

&lt;h4&gt;
  
  
  &lt;strong&gt;Slide 6 - Feature Set (1 minute 30 seconds)&lt;/strong&gt;
&lt;/h4&gt;

&lt;blockquote&gt;
&lt;p&gt;"Hello! I'm [Name], and I developed the mobile and web applications. Let me walk you through the features we built. First, Real-Time Tracking - you can see exactly where each book is right now. Home, college, or office. You can also check the movement history to see where a book was before. Second, Smart Reminders - the app checks your timetable every morning and reminds you to pack the right books. If you're about to leave home without your Physics textbook but have class today, you'll get an alert. Third, Advanced Search - there's a 'Find My Book' feature. Just type the book name, and it tells you exactly where it is. If you misplaced something, the app will help you find it. Fourth, Collaborative Features - you can share your account with family or study group. If you lend a book to a friend, the app tracks it."&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h4&gt;
  
  
  &lt;strong&gt;Slide 7 - User Journey (1 minute)&lt;/strong&gt;
&lt;/h4&gt;

&lt;blockquote&gt;
&lt;p&gt;"Let me show you how a typical day works with our system. In the morning, you open the app and check your schedule. The app tells you which books you need today. As you pack your bag, the RFID reader in the bag scans each book. Before you leave, if something is missing, you get an alert. Throughout the day, the system keeps tracking where your books are. After college, when you come home, it reminds you about homework and which books you need to complete it. Behind the scenes, here's what happens: when you register a book, it gets an RFID tag. The location stations continuously scan for books. Data is sent to our database in real-time. You get push notifications on your phone. The system also learns your patterns and gives you smart suggestions."&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h3&gt;
  
  
  &lt;strong&gt;PERSON 4 - System Integration &amp;amp; Features Lead&lt;/strong&gt;
&lt;/h3&gt;

&lt;h4&gt;
  
  
  &lt;strong&gt;Slide 9 - Development Roadmap (1 minute)&lt;/strong&gt;
&lt;/h4&gt;

&lt;blockquote&gt;
&lt;p&gt;"Hi everyone, I'm [Name], and I'm responsible for System Integration and Testing. Let me explain our development plan. We divided the work into 5 phases over 12 months. Phase 1 took 3 months where we selected RFID hardware, built a basic tracking system, and created a prototype app. Phase 2 was the next 3 months where we developed the full web application and advanced mobile features with real-time tracking. Phase 3 was another 3 months focused on smart reminders, schedule integration, and collaborative features. Phase 4 was testing everything - we did system integration, user testing, and security checks. Now we're in Phase 5, which is launch and optimization, collecting feedback and improving the system."&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h4&gt;
  
  
  &lt;strong&gt;Slide 10 - Benefits (1 minute)&lt;/strong&gt;
&lt;/h4&gt;

&lt;blockquote&gt;
&lt;p&gt;"Here are the benefits of our system. For students, you save over 45 minutes every day. No more searching for books. You'll reduce textbook replacement costs by 80% because you won't lose books anymore. Your academic performance improves because you're always organized and never miss classes. For educational institutions, library book losses decrease by 70%. They get better tracking of resources and happier students. Looking at the market, there are over 50 million potential users globally. The education technology market is worth $2.3 billion. Each user saves $400 per year, and institutions see a 300% return on investment in the first year."&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h4&gt;
  
  
  &lt;strong&gt;Slide 11 - Future Enhancements &amp;amp; Conclusion (1 minute 15 seconds)&lt;/strong&gt;
&lt;/h4&gt;

&lt;blockquote&gt;
&lt;p&gt;"Finally, let's talk about the future. In Phase 2, we plan to add AI-powered book recommendations - the app will suggest books based on your subjects. We'll integrate voice assistants like Alexa and Google so you can ask 'Where is my Math book?' We're also working on smartwatch support, augmented reality to find books visually, and blockchain for ownership verification. We want to expand beyond students to corporate libraries, public libraries, and international markets. To conclude, we've built a revolutionary solution to a universal problem. We used proven technology components with a clear development roadmap. The market opportunity is huge, and the benefits are significant. We're not just tracking books; we're transforming how people manage their learning materials. Thank you!"&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  📋 QUICK REFERENCE GUIDE
&lt;/h2&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Speaking Tips for All Team Members:&lt;/strong&gt;
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;Speak clearly and at a steady pace&lt;/li&gt;
&lt;li&gt;Make eye contact with the audience&lt;/li&gt;
&lt;li&gt;Use hand gestures to emphasize key points&lt;/li&gt;
&lt;li&gt;Smile and show enthusiasm for the project&lt;/li&gt;
&lt;li&gt;If you forget something, stay calm and move forward&lt;/li&gt;
&lt;li&gt;Practice your section at least 3-4 times before presenting&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Slide Transition Phrases:&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;"Moving to the next slide..."&lt;/li&gt;
&lt;li&gt;"Now let me show you..."&lt;/li&gt;
&lt;li&gt;"Here's where it gets interesting..."&lt;/li&gt;
&lt;li&gt;"Let's look at..."&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Time Management:&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Total Presentation:&lt;/strong&gt; ~10-12 minutes&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Q&amp;amp;A Session:&lt;/strong&gt; 3-5 minutes&lt;/li&gt;
&lt;li&gt;Practice with a timer to stay on track&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Common Questions &amp;amp; Answers:&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Q: How much does the system cost?&lt;/strong&gt;&lt;br&gt;
A: (Person 1/4) The RFID tags cost about $2-3 each, readers are around $50-100, and the app is free to use.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Q: What if the RFID tag stops working?&lt;/strong&gt;&lt;br&gt;
A: (Person 1) Tags have a 5+ year battery life and are very durable. We can easily replace tags if needed.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Q: Can it work offline?&lt;/strong&gt;&lt;br&gt;
A: (Person 2) The local scanning works offline, but you need internet to sync data and get notifications.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Q: Is the app available for iOS?&lt;/strong&gt;&lt;br&gt;
A: (Person 3) Currently we have Android, but iOS is in our Phase 2 development plan.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Q: How accurate is the location tracking?&lt;/strong&gt;&lt;br&gt;
A: (Person 4) It's 99.9% accurate. The RFID technology is very reliable for indoor tracking.&lt;/p&gt;




&lt;h2&gt;
  
  
  🎯 PRESENTATION CHECKLIST
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Before Presentation:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;[ ] All team members have practiced their sections&lt;/li&gt;
&lt;li&gt;[ ] Presentation slides are loaded and tested&lt;/li&gt;
&lt;li&gt;[ ] RFID demo equipment is ready (if doing live demo)&lt;/li&gt;
&lt;li&gt;[ ] Backup of presentation saved on multiple devices&lt;/li&gt;
&lt;li&gt;[ ] Water bottles available for speakers&lt;/li&gt;
&lt;li&gt;[ ] Timer/stopwatch ready&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;During Presentation:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;[ ] Person 1 introduces the team and problem&lt;/li&gt;
&lt;li&gt;[ ] Smooth transitions between speakers&lt;/li&gt;
&lt;li&gt;[ ] Stay within time limits&lt;/li&gt;
&lt;li&gt;[ ] Engage with audience&lt;/li&gt;
&lt;li&gt;[ ] Handle questions confidently&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;After Presentation:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;[ ] Thank the audience and judges&lt;/li&gt;
&lt;li&gt;[ ] Collect feedback&lt;/li&gt;
&lt;li&gt;[ ] Exchange contact information if needed&lt;/li&gt;
&lt;li&gt;[ ] Note any questions you couldn't answer for follow-up&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  💡 PROJECT HIGHLIGHTS TO EMPHASIZE
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Real-world Problem:&lt;/strong&gt; Everyone can relate to losing books or forgetting materials&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Proven Technology:&lt;/strong&gt; RFID is already used in libraries and stores&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Complete Solution:&lt;/strong&gt; Hardware + Software + Mobile App&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Scalable:&lt;/strong&gt; Can start with one person, grow to entire institutions&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Cost-Effective:&lt;/strong&gt; Saves more money than it costs&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Future-Ready:&lt;/strong&gt; Room for AI, IoT, and advanced features&lt;/li&gt;
&lt;/ol&gt;




&lt;p&gt;&lt;strong&gt;Good luck with your presentation! You've got this! 🚀&lt;/strong&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  SMART BAG SYSTEM — Project Explanation &amp;amp; Role Breakdown
&lt;/h1&gt;

&lt;p&gt;&lt;strong&gt;Short summary (TL;DR):&lt;/strong&gt;&lt;br&gt;
An end-to-end RFID-powered book-tracking system that monitors books across three locations (bag, table, shelf), integrates with a school timetable, and notifies students via mobile/web when required books are present or missing. Backend built in &lt;strong&gt;Flask&lt;/strong&gt;, mobile/web frontend, and IoT readers in bag and fixed location stations. This document explains the system, architecture, data flow, APIs, deployment notes, and gives concrete role-specific responsibilities for 4 team members.&lt;/p&gt;




&lt;h2&gt;
  
  
  1. Project overview
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Goal:&lt;/strong&gt; Prevent forgotten/misplaced books and automate daily checklist based on timetable &amp;amp; homework rules.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Scope:&lt;/strong&gt; RFID tag per book, three RFID readers (bag, table, shelf), central Flask backend, mobile/web app for notifications and dashboard, notifications (push, SMS, email), simple analytics (missed-books heatmap, usage frequency).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Key constraints:&lt;/strong&gt; Offline resilience for bag-reader (store scans until connectivity), battery life for bag reader, privacy of student data.&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  2. System components
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;RFID Tags (passive/active)&lt;/strong&gt; — unique ID for each book; store &lt;code&gt;book_id&lt;/code&gt; and optionally minimal metadata.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Bag Reader&lt;/strong&gt; — small embedded IoT device (e.g., ESP32 + RFID module) that scans tags periodically and pushes events to gateway/mobile or caches when offline.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Location Readers (table/shelf)&lt;/strong&gt; — fixed readers (Raspberry Pi / static ESP32 gateways) at known locations.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Gateway / Edge Node&lt;/strong&gt; — aggregates reader data (MQTT broker or lightweight HTTP endpoint) and forwards to cloud.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Backend (Flask)&lt;/strong&gt; — central API, business logic (timetable matching, reminders), database, auth, notification service.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Frontend / Mobile&lt;/strong&gt; — responsive web app + Android app (React / React Native or PWA) for students and admins.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Database&lt;/strong&gt; — PostgreSQL (transactional) or MongoDB (flexible catalog); Redis for cache/queues; optional Timeseries store for analytics.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Notification Service&lt;/strong&gt; — Push (Firebase), SMS gateway (Twilio), email.&lt;/li&gt;
&lt;/ol&gt;




&lt;h2&gt;
  
  
  3. High-level architecture &amp;amp; data flow
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Reader scans RFID -&amp;gt; creates event &lt;code&gt;{reader_id, tag_uid, timestamp}&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Edge node normalizes event -&amp;gt; forwards to backend (&lt;code&gt;/api/v1/events/scan&lt;/code&gt;).&lt;/li&gt;
&lt;li&gt;Backend authenticates device, maps &lt;code&gt;tag_uid -&amp;gt; book_id&lt;/code&gt;, logs location state (&lt;code&gt;last_seen_at&lt;/code&gt;, &lt;code&gt;last_location&lt;/code&gt;).&lt;/li&gt;
&lt;li&gt;Timetable service evaluates today's classes: checks required books per class.&lt;/li&gt;
&lt;li&gt;If missing, backend queues notification for user (push/SMS/email). For end-of-day homework rules, system checks whether homework books are present after school hours and notifies.&lt;/li&gt;
&lt;li&gt;Frontend shows real-time dashboard and history.&lt;/li&gt;
&lt;/ol&gt;




&lt;h2&gt;
  
  
  4. Core data model (suggested)
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;users&lt;/code&gt; (id, name, email, phone, role)&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;books&lt;/code&gt; (id, title, isbn, rfid_uid, owner_user_id, subject)&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;readers&lt;/code&gt; (id, location_type [bag/table/shelf], location_label, device_key)&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;scans&lt;/code&gt; (id, book_id, reader_id, timestamp)&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;timetables&lt;/code&gt; (id, user_id/class_id, date, time_window, required_books[])&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;notifications&lt;/code&gt; (id, user_id, type, status, payload, created_at)&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  5. Key API endpoints (Flask)
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;POST /api/v1/events/scan&lt;/code&gt; — ingest scan events from readers (auth via device token).&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;GET /api/v1/books/:id&lt;/code&gt; — book metadata.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;POST /api/v1/books/register&lt;/code&gt; — register new book + assign rfid.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;GET /api/v1/users/:id/timetable&lt;/code&gt; — fetch timetable.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;GET /api/v1/users/:id/pack-check?time=...&lt;/code&gt; — pre-departure check endpoint.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;POST /api/v1/notifications/send&lt;/code&gt; — admin-triggered notification.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Security: use JWT for user sessions, HMAC device tokens for readers, HTTPS everywhere, rate-limiting.&lt;/p&gt;




&lt;h2&gt;
  
  
  6. Offline &amp;amp; sync strategies
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Bag reader:&lt;/strong&gt; store scans locally in circular buffer and attempt to upload when Wi‑Fi/phone tether present.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;De-duplication:&lt;/strong&gt; readers should debounce reads (ignore same tag within X seconds).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Event ordering:&lt;/strong&gt; timestamp at reader and server-side arrival timestamp; server uses &lt;code&gt;max(reader_ts, server_ts)&lt;/code&gt; with conflict rules.&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  7. Deployment &amp;amp; infra notes
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Backend:&lt;/strong&gt; Host Flask on Gunicorn + Nginx, containerized (Docker) — deploy to cloud provider (Render/Heroku/ Railway / AWS ECS). Use CI/CD.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;DB:&lt;/strong&gt; Managed PostgreSQL; backups daily.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;MQTT Broker:&lt;/strong&gt; (optional) Mosquitto for real-time edge ingestion.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Monitoring:&lt;/strong&gt; Prometheus + Grafana or hosted alternatives.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Costs:&lt;/strong&gt; budget for readers, tags, hosting, push/SMS service.&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  8. Testing strategy
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Unit tests for timetable &amp;amp; notification logic.&lt;/li&gt;
&lt;li&gt;Integration tests for scan ingestion -&amp;gt; book state update -&amp;gt; notification.&lt;/li&gt;
&lt;li&gt;End-to-end test with one bag reader and staged tag reads.&lt;/li&gt;
&lt;li&gt;Device battery and read-range testing in real environments.&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  9. Slide / PPT plan (slide-by-slide suggestions)
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Title + Team&lt;/li&gt;
&lt;li&gt;Problem statement (data &amp;amp; pain points)&lt;/li&gt;
&lt;li&gt;Solution in one diagram&lt;/li&gt;
&lt;li&gt;System architecture (hardware + backend + frontend)&lt;/li&gt;
&lt;li&gt;Data flow example (morning packing scenario)&lt;/li&gt;
&lt;li&gt;Key features (real-time, reminders, analytics)&lt;/li&gt;
&lt;li&gt;Hardware &amp;amp; software stack&lt;/li&gt;
&lt;li&gt;API &amp;amp; data model (high level)&lt;/li&gt;
&lt;li&gt;Security &amp;amp; privacy&lt;/li&gt;
&lt;li&gt;Roadmap &amp;amp; timeline&lt;/li&gt;
&lt;li&gt;Role responsibilities &amp;amp; deliverables (one slide per role)&lt;/li&gt;
&lt;li&gt;Demo steps (how to demo during presentation)&lt;/li&gt;
&lt;li&gt;Costs &amp;amp; ROI&lt;/li&gt;
&lt;li&gt;Conclusion &amp;amp; next steps&lt;/li&gt;
&lt;/ol&gt;




&lt;h2&gt;
  
  
  10. Four role-specific breakdowns (tasks, deliverables, acceptance criteria)
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Role A — Project Lead / Product Manager
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Primary focus:&lt;/strong&gt; scope, coordination, stakeholder communication, acceptance criteria.&lt;br&gt;
&lt;strong&gt;Key tasks &amp;amp; deliverables:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Maintain product backlog + prioritized features.&lt;/li&gt;
&lt;li&gt;Coordinate hardware procurement and testing schedule.&lt;/li&gt;
&lt;li&gt;Prepare acceptance criteria for each milestone (Phase 1–5).&lt;/li&gt;
&lt;li&gt;Demo script and stakeholder onboarding docs.&lt;/li&gt;
&lt;li&gt;Ensure data privacy / consent forms for student data.
&lt;strong&gt;Acceptance criteria:&lt;/strong&gt; Clear sprint goals met; demo passes end-to-end checklist: &lt;code&gt;scan -&amp;gt; backend -&amp;gt; notification -&amp;gt; mobile receipt&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Role B — IoT / Hardware Engineer
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Primary focus:&lt;/strong&gt; design and build bag reader and fixed readers.&lt;br&gt;
&lt;strong&gt;Key tasks &amp;amp; deliverables:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Choose RFID tech (HF 13.56MHz vs UHF 860–960MHz) based on range and tag cost.&lt;/li&gt;
&lt;li&gt;Prototype bag reader (ESP32 + RC522 or PN532) and software to read tags &amp;amp; persist events.&lt;/li&gt;
&lt;li&gt;Implement power management, debounce, local storage, and periodic sync.&lt;/li&gt;
&lt;li&gt;Provide device auth keys and deployment scripts for edge nodes.&lt;/li&gt;
&lt;li&gt;Test read range, false positives, tag placement effects.
&lt;strong&gt;Acceptance criteria:&lt;/strong&gt; Bag reader reliably detects tags inside a normal bag at intended range, local storage works for 24 hours without upload, device authenticates to backend.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Role C — Backend Developer (Flask)
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Primary focus:&lt;/strong&gt; API design, business logic (timetable logic &amp;amp; notifications), DB schema, scaling &amp;amp; security.&lt;br&gt;
&lt;strong&gt;Key tasks &amp;amp; deliverables:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Implement core ingestion API &lt;code&gt;POST /events/scan&lt;/code&gt; with device auth and idempotency.&lt;/li&gt;
&lt;li&gt;Implement timetable matching and notification queueing.&lt;/li&gt;
&lt;li&gt;Build admin endpoints for registering books and readers.&lt;/li&gt;
&lt;li&gt;Implement tests (unit + integration) and deploy pipeline with Dockerfile + Gunicorn configuration.&lt;/li&gt;
&lt;li&gt;Instrument logs and metrics for scan throughput and notification success rate.
&lt;strong&gt;Acceptance criteria:&lt;/strong&gt; Endpoints respond under target latency (&amp;lt;500ms typical), test coverage for core logic, reliable notification delivery in testbeds.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Role D — Frontend / Mobile Developer
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Primary focus:&lt;/strong&gt; user flows, pre-departure check, notifications, dashboard.&lt;br&gt;
&lt;strong&gt;Key tasks &amp;amp; deliverables:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Implement responsive web dashboard and Android app (React or React Native/PWA).&lt;/li&gt;
&lt;li&gt;Implement real-time updates (WebSocket or polling) for scans.&lt;/li&gt;
&lt;li&gt;Build UI for timetable import and per-class required book lists.&lt;/li&gt;
&lt;li&gt;Implement notification handling and local reminders.&lt;/li&gt;
&lt;li&gt;Provide a small demo flow and user manual.
&lt;strong&gt;Acceptance criteria:&lt;/strong&gt; User can register book, see last-known locations, receive notifications on missing book for class, app passes usability test with 5 pilot users.&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  11. Example demo script (short)
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Register two books and link them to timetable classes.&lt;/li&gt;
&lt;li&gt;Put one required book in bag and one on the shelf.&lt;/li&gt;
&lt;li&gt;Start bag reader and table reader.&lt;/li&gt;
&lt;li&gt;On pre-departure check, show the app warning for the missing book.&lt;/li&gt;
&lt;li&gt;After school time, run homework-check script and show end-of-day alerts.&lt;/li&gt;
&lt;/ol&gt;




&lt;h2&gt;
  
  
  12. Risks &amp;amp; mitigations
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;RFID misreads / collisions:&lt;/strong&gt; use debounce, multiple samples, and validation periods.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Battery failure:&lt;/strong&gt; low-battery notifications and conservative scan cadence.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Connectivity:&lt;/strong&gt; offline-first bag reader with store-and-forward behavior.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Privacy:&lt;/strong&gt; minimize personal data, store only necessary IDs, encrypt PII at rest.&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  13. Next steps &amp;amp; immediate tasks (first 2 sprints)
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Sprint 1 (2–3 weeks):&lt;/strong&gt; procure hardware, basic reader prototype, minimal Flask ingestion API, simple web UI for registering books.&lt;br&gt;
&lt;strong&gt;Sprint 2 (2–3 weeks):&lt;/strong&gt; sync logic, timetable integration, push notifications, basic demo.&lt;/p&gt;




&lt;h2&gt;
  
  
  14. Templates &amp;amp; checklists (quick)
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Device provisioning checklist&lt;/li&gt;
&lt;li&gt;Book registration checklist&lt;/li&gt;
&lt;li&gt;Pre-departure demo checklist&lt;/li&gt;
&lt;li&gt;Security checklist (HTTPS, device tokens, DB encryption at rest)&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  15. Notes for the PPT you already have
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Use the slide plan above to expand or reorder slides in your existing PPT.&lt;/li&gt;
&lt;li&gt;Add one slide that shows the role-to-responsibilities mapping (copy the Role sections into 1–2 slides).&lt;/li&gt;
&lt;li&gt;Include short demo steps and a one-minute recorded video if available.&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;&lt;strong&gt;End of document — deliverables added:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Project explanation + architecture&lt;/li&gt;
&lt;li&gt;Role-based task lists and acceptance criteria (for 4 roles)&lt;/li&gt;
&lt;li&gt;PPT slide plan and demo script&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;em&gt;Prepared as a single deliverable to hand to your team. If you want, I can export this into a downloadable markdown or generate a revised PPT that merges these role slides into your existing SMART-BAG PPT.&lt;/em&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title>smart suspension- raj patil</title>
      <dc:creator>SIDDHARTH PATIL</dc:creator>
      <pubDate>Mon, 06 Oct 2025 04:15:04 +0000</pubDate>
      <link>https://dev.to/sidatgithubcode/smart-suspension-raj-patil-3cm4</link>
      <guid>https://dev.to/sidatgithubcode/smart-suspension-raj-patil-3cm4</guid>
      <description>&lt;h1&gt;
  
  
  Pothole Detection Model - Complete Training &amp;amp; Implementation Guide
&lt;/h1&gt;

&lt;h2&gt;
  
  
  Table of Contents
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Dataset Acquisition&lt;/li&gt;
&lt;li&gt;Dataset Preparation with Roboflow&lt;/li&gt;
&lt;li&gt;Model Training Process&lt;/li&gt;
&lt;li&gt;Understanding the .pt Weight File&lt;/li&gt;
&lt;li&gt;YOLOv8 Implementation Code&lt;/li&gt;
&lt;li&gt;Complete Workflow&lt;/li&gt;
&lt;/ol&gt;




&lt;h2&gt;
  
  
  1. Dataset Acquisition
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1.1 Source: Kaggle
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Platform&lt;/strong&gt;: Kaggle (kaggle.com)&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Dataset Selection Process:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Searched for "pothole detection dataset" on Kaggle&lt;/li&gt;
&lt;li&gt;Selected dataset with diverse pothole images&lt;/li&gt;
&lt;li&gt;Typical dataset characteristics:

&lt;ul&gt;
&lt;li&gt;500-2000+ images of roads with potholes&lt;/li&gt;
&lt;li&gt;Various lighting conditions&lt;/li&gt;
&lt;li&gt;Different road types and pothole sizes&lt;/li&gt;
&lt;li&gt;Mix of annotated and unannotated images&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Download Process:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# Method 1: Manual Download&lt;/span&gt;
1. Navigate to Kaggle dataset page
2. Click &lt;span class="s2"&gt;"Download"&lt;/span&gt; button
3. Extract ZIP file to &lt;span class="nb"&gt;local &lt;/span&gt;directory

&lt;span class="c"&gt;# Method 2: Kaggle API&lt;/span&gt;
kaggle datasets download &lt;span class="nt"&gt;-d&lt;/span&gt; &amp;lt;dataset-name&amp;gt;
unzip &amp;lt;dataset-name&amp;gt;.zip
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  1.2 Dataset Structure
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;pothole_dataset/
│
├── images/
│   ├── image001.jpg
│   ├── image002.jpg
│   └── ...
│
└── annotations/
    ├── image001.txt
    ├── image002.txt
    └── ...
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  2. Dataset Preparation with Roboflow
&lt;/h2&gt;

&lt;h3&gt;
  
  
  2.1 Why Roboflow?
&lt;/h3&gt;

&lt;p&gt;Roboflow is a computer vision platform that simplifies:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Dataset organization and management&lt;/li&gt;
&lt;li&gt;Image annotation and labeling&lt;/li&gt;
&lt;li&gt;Data augmentation&lt;/li&gt;
&lt;li&gt;Format conversion (to YOLO format)&lt;/li&gt;
&lt;li&gt;Train/Validation/Test splitting&lt;/li&gt;
&lt;li&gt;Model training integration&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  2.2 Roboflow Workflow
&lt;/h3&gt;

&lt;h4&gt;
  
  
  Step 1: Create Project
&lt;/h4&gt;

&lt;ol&gt;
&lt;li&gt;Sign up at &lt;strong&gt;roboflow.com&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Create new project: "Pothole Detection"&lt;/li&gt;
&lt;li&gt;Select project type: &lt;strong&gt;Object Detection&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Choose annotation group: &lt;strong&gt;Single Class&lt;/strong&gt; (Pothole)&lt;/li&gt;
&lt;/ol&gt;

&lt;h4&gt;
  
  
  Step 2: Upload Dataset
&lt;/h4&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;1. Click "Upload" → Select images from Kaggle dataset
2. Roboflow automatically processes images
3. Wait for upload completion (shows progress bar)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  Step 3: Annotation
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;If images are pre-annotated (COCO/PASCAL VOC format):&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Roboflow auto-imports annotations&lt;/li&gt;
&lt;li&gt;Review and verify bounding boxes&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;

&lt;p&gt;If manual annotation needed:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Use Roboflow's annotation tool&lt;/li&gt;
&lt;li&gt;Draw bounding boxes around each pothole&lt;/li&gt;
&lt;li&gt;Label as "pothole"&lt;/li&gt;
&lt;li&gt;Save annotations&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;

&lt;h4&gt;
  
  
  Step 4: Dataset Augmentation
&lt;/h4&gt;

&lt;p&gt;Applied augmentation techniques:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Preprocessing:
- Auto-Orient: Correct image orientation
- Resize: 640x640 pixels (YOLO standard)

Augmentation:
- Rotation: ±15 degrees
- Brightness: ±25%
- Exposure: ±25%
- Blur: Up to 2px
- Flip: Horizontal
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;These create multiple variations of each image, expanding dataset size 3-5x.&lt;/p&gt;

&lt;h4&gt;
  
  
  Step 5: Generate Dataset Version
&lt;/h4&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;1. Split data:
   - Train: 70%
   - Validation: 20%
   - Test: 10%

2. Export format: YOLOv8

3. Generate → Roboflow creates downloadable dataset
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  Step 6: Download Training Code
&lt;/h4&gt;

&lt;p&gt;Roboflow provides ready-to-use code snippet:&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="kn"&gt;from&lt;/span&gt; &lt;span class="n"&gt;roboflow&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;Roboflow&lt;/span&gt;

&lt;span class="n"&gt;rf&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nc"&gt;Roboflow&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;api_key&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;YOUR_API_KEY&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;project&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;rf&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;workspace&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;workspace-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;project&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;pothole-detection&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;dataset&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;project&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;version&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nf"&gt;download&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;yolov8&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;h2&gt;
  
  
  3. Model Training Process
&lt;/h2&gt;

&lt;h3&gt;
  
  
  3.1 Training Script: &lt;code&gt;potholewrightfile.py&lt;/code&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Purpose&lt;/strong&gt;: This Python script trains the YOLOv8 model on your custom pothole dataset.&lt;/p&gt;

&lt;h4&gt;
  
  
  Complete Training Code:
&lt;/h4&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="sh"&gt;"""&lt;/span&gt;&lt;span class="s"&gt;
potholewrightfile.py
Custom YOLOv8 Pothole Detection Model Training Script
&lt;/span&gt;&lt;span class="sh"&gt;"""&lt;/span&gt;

&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="n"&gt;ultralytics&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;YOLO&lt;/span&gt;
&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="n"&gt;roboflow&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;Roboflow&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;os&lt;/span&gt;

&lt;span class="c1"&gt;# ====================
# 1. DATASET DOWNLOAD
# ====================
&lt;/span&gt;&lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;📥 Downloading dataset from Roboflow...&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="n"&gt;rf&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nc"&gt;Roboflow&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;api_key&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;YOUR_ROBOFLOW_API_KEY&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;project&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;rf&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;workspace&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;your-workspace&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nf"&gt;project&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;pothole-detection&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;dataset&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;project&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;version&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nf"&gt;download&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;yolov8&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;✅ Dataset downloaded to: &lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;dataset&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;location&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="c1"&gt;# ====================
# 2. MODEL INITIALIZATION
# ====================
&lt;/span&gt;&lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="se"&gt;\n&lt;/span&gt;&lt;span class="s"&gt;🤖 Initializing YOLOv8 model...&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="c1"&gt;# Start with pre-trained YOLOv8 base model
&lt;/span&gt;&lt;span class="n"&gt;model&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nc"&gt;YOLO&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;yolov8n.pt&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;  &lt;span class="c1"&gt;# Options: yolov8n/s/m/l/x (nano to extra-large)
&lt;/span&gt;
&lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;✅ Model loaded successfully&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="c1"&gt;# ====================
# 3. TRAINING CONFIGURATION
# ====================
&lt;/span&gt;&lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="se"&gt;\n&lt;/span&gt;&lt;span class="s"&gt;⚙️ Configuring training parameters...&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="n"&gt;training_config&lt;/span&gt; &lt;span class="o"&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;data&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;dataset&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;location&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s"&gt;/data.yaml&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;  &lt;span class="c1"&gt;# Path to dataset config
&lt;/span&gt;    &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;epochs&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;100&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;                             &lt;span class="c1"&gt;# Number of training iterations
&lt;/span&gt;    &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;imgsz&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;640&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;                              &lt;span class="c1"&gt;# Image size (640x640)
&lt;/span&gt;    &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;batch&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;16&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;                               &lt;span class="c1"&gt;# Batch size (adjust based on GPU)
&lt;/span&gt;    &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;name&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;pothole_detection&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;              &lt;span class="c1"&gt;# Experiment name
&lt;/span&gt;    &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;patience&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;20&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;                            &lt;span class="c1"&gt;# Early stopping patience
&lt;/span&gt;    &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;save&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="bp"&gt;True&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;                              &lt;span class="c1"&gt;# Save checkpoints
&lt;/span&gt;    &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;device&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;                               &lt;span class="c1"&gt;# GPU device (0 = first GPU, 'cpu' for CPU)
&lt;/span&gt;    &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;workers&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;8&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;                              &lt;span class="c1"&gt;# Number of data loader workers
&lt;/span&gt;    &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;project&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;runs/detect&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;                  &lt;span class="c1"&gt;# Project directory
&lt;/span&gt;    &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;exist_ok&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="bp"&gt;True&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;                          &lt;span class="c1"&gt;# Overwrite existing project
&lt;/span&gt;    &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;pretrained&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="bp"&gt;True&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;                        &lt;span class="c1"&gt;# Use pretrained weights
&lt;/span&gt;    &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;optimizer&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;auto&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;                       &lt;span class="c1"&gt;# Optimizer (auto/SGD/Adam/AdamW)
&lt;/span&gt;    &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;verbose&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="bp"&gt;True&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;                           &lt;span class="c1"&gt;# Verbose output
&lt;/span&gt;    &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;seed&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;42&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;                                &lt;span class="c1"&gt;# Random seed for reproducibility
&lt;/span&gt;    &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;deterministic&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="bp"&gt;True&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;                     &lt;span class="c1"&gt;# Deterministic training
&lt;/span&gt;    &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;single_cls&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="bp"&gt;False&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;                       &lt;span class="c1"&gt;# Treat as single class
&lt;/span&gt;    &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;rect&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="bp"&gt;False&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;                             &lt;span class="c1"&gt;# Rectangular training
&lt;/span&gt;    &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;cos_lr&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="bp"&gt;False&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;                           &lt;span class="c1"&gt;# Cosine learning rate scheduler
&lt;/span&gt;    &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;close_mosaic&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;10&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;                        &lt;span class="c1"&gt;# Disable mosaic augmentation in last N epochs
&lt;/span&gt;    &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;resume&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="bp"&gt;False&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;                           &lt;span class="c1"&gt;# Resume from checkpoint
&lt;/span&gt;    &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;amp&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="bp"&gt;True&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;                               &lt;span class="c1"&gt;# Automatic Mixed Precision training
&lt;/span&gt;    &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;fraction&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mf"&gt;1.0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;                           &lt;span class="c1"&gt;# Fraction of dataset to train on
&lt;/span&gt;    &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;profile&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="bp"&gt;False&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;                          &lt;span class="c1"&gt;# Profile ONNX and TensorRT speeds
&lt;/span&gt;    &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;lr0&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mf"&gt;0.01&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;                               &lt;span class="c1"&gt;# Initial learning rate
&lt;/span&gt;    &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;lrf&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mf"&gt;0.01&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;                               &lt;span class="c1"&gt;# Final learning rate (lr0 * lrf)
&lt;/span&gt;    &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;momentum&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mf"&gt;0.937&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;                         &lt;span class="c1"&gt;# SGD momentum/Adam beta1
&lt;/span&gt;    &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;weight_decay&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mf"&gt;0.0005&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;                    &lt;span class="c1"&gt;# Optimizer weight decay
&lt;/span&gt;    &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;warmup_epochs&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mf"&gt;3.0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;                      &lt;span class="c1"&gt;# Warmup epochs
&lt;/span&gt;    &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;warmup_momentum&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mf"&gt;0.8&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;                    &lt;span class="c1"&gt;# Warmup initial momentum
&lt;/span&gt;    &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;warmup_bias_lr&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mf"&gt;0.1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;                     &lt;span class="c1"&gt;# Warmup initial bias learning rate
&lt;/span&gt;    &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;box&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mf"&gt;7.5&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;                                &lt;span class="c1"&gt;# Box loss gain
&lt;/span&gt;    &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;cls&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mf"&gt;0.5&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;                                &lt;span class="c1"&gt;# Class loss gain
&lt;/span&gt;    &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;dfl&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mf"&gt;1.5&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;                                &lt;span class="c1"&gt;# DFL loss gain
&lt;/span&gt;    &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;pose&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mf"&gt;12.0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;                              &lt;span class="c1"&gt;# Pose loss gain
&lt;/span&gt;    &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;kobj&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mf"&gt;2.0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;                               &lt;span class="c1"&gt;# Keypoint object loss gain
&lt;/span&gt;    &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;label_smoothing&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mf"&gt;0.0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;                    &lt;span class="c1"&gt;# Label smoothing epsilon
&lt;/span&gt;    &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;nbs&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;64&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;                                 &lt;span class="c1"&gt;# Nominal batch size
&lt;/span&gt;    &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;hsv_h&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mf"&gt;0.015&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;                            &lt;span class="c1"&gt;# HSV-Hue augmentation
&lt;/span&gt;    &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;hsv_s&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mf"&gt;0.7&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;                              &lt;span class="c1"&gt;# HSV-Saturation augmentation
&lt;/span&gt;    &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;hsv_v&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mf"&gt;0.4&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;                              &lt;span class="c1"&gt;# HSV-Value augmentation
&lt;/span&gt;    &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;degrees&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mf"&gt;0.0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;                            &lt;span class="c1"&gt;# Rotation augmentation
&lt;/span&gt;    &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;translate&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mf"&gt;0.1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;                          &lt;span class="c1"&gt;# Translation augmentation
&lt;/span&gt;    &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;scale&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mf"&gt;0.5&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;                              &lt;span class="c1"&gt;# Scaling augmentation
&lt;/span&gt;    &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;shear&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mf"&gt;0.0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;                              &lt;span class="c1"&gt;# Shear augmentation
&lt;/span&gt;    &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;perspective&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mf"&gt;0.0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;                        &lt;span class="c1"&gt;# Perspective augmentation
&lt;/span&gt;    &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;flipud&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mf"&gt;0.0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;                             &lt;span class="c1"&gt;# Flip up-down augmentation probability
&lt;/span&gt;    &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;fliplr&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mf"&gt;0.5&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;                             &lt;span class="c1"&gt;# Flip left-right augmentation probability
&lt;/span&gt;    &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;mosaic&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mf"&gt;1.0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;                             &lt;span class="c1"&gt;# Mosaic augmentation probability
&lt;/span&gt;    &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;mixup&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mf"&gt;0.0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;                              &lt;span class="c1"&gt;# MixUp augmentation probability
&lt;/span&gt;    &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;copy_paste&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mf"&gt;0.0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;                         &lt;span class="c1"&gt;# Copy-paste augmentation probability
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="c1"&gt;# ====================
# 4. START TRAINING
# ====================
&lt;/span&gt;&lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="se"&gt;\n&lt;/span&gt;&lt;span class="s"&gt;🚀 Starting training process...&lt;/span&gt;&lt;span class="se"&gt;\n&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="mi"&gt;60&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="n"&gt;results&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;model&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;train&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="o"&gt;**&lt;/span&gt;&lt;span class="n"&gt;training_config&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="se"&gt;\n&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="mi"&gt;60&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;✅ Training completed successfully!&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="c1"&gt;# ====================
# 5. SAVE MODEL
# ====================
&lt;/span&gt;&lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="se"&gt;\n&lt;/span&gt;&lt;span class="s"&gt;💾 Saving trained model...&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="c1"&gt;# The best weights are automatically saved as 'best.pt'
# Rename to 'pothole.pt' for clarity
&lt;/span&gt;&lt;span class="n"&gt;best_model_path&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;runs/detect/pothole_detection/weights/best.pt&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;
&lt;span class="n"&gt;output_path&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;pothole.pt&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;

&lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;os&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;path&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;exists&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;best_model_path&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
    &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;shutil&lt;/span&gt;
    &lt;span class="n"&gt;shutil&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;copy&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;best_model_path&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;output_path&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;✅ Model saved as: &lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;output_path&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="k"&gt;else&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
    &lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;⚠️ Best model not found. Check training directory.&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="c1"&gt;# ====================
# 6. MODEL VALIDATION
# ====================
&lt;/span&gt;&lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="se"&gt;\n&lt;/span&gt;&lt;span class="s"&gt;🔍 Validating model on test set...&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="n"&gt;validation_results&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;model&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;val&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;

&lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="se"&gt;\n&lt;/span&gt;&lt;span class="s"&gt;📊 Validation Metrics:&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;mAP50: &lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;validation_results&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;box&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;map50&lt;/span&gt;&lt;span class="si"&gt;:&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="mi"&gt;4&lt;/span&gt;&lt;span class="n"&gt;f&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;mAP50-95: &lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;validation_results&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;box&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nb"&gt;map&lt;/span&gt;&lt;span class="si"&gt;:&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="mi"&gt;4&lt;/span&gt;&lt;span class="n"&gt;f&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Precision: &lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;validation_results&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;box&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;mp&lt;/span&gt;&lt;span class="si"&gt;:&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="mi"&gt;4&lt;/span&gt;&lt;span class="n"&gt;f&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Recall: &lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;validation_results&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;box&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;mr&lt;/span&gt;&lt;span class="si"&gt;:&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="mi"&gt;4&lt;/span&gt;&lt;span class="n"&gt;f&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="c1"&gt;# ====================
# 7. EXPORT MODEL
# ====================
&lt;/span&gt;&lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="se"&gt;\n&lt;/span&gt;&lt;span class="s"&gt;📦 Exporting model to different formats...&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="c1"&gt;# Export to ONNX (for deployment)
&lt;/span&gt;&lt;span class="n"&gt;model&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;export&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;format&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;onnx&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;✅ ONNX model exported&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="c1"&gt;# Export to TensorRT (for NVIDIA devices - optional)
# model.export(format='engine')
&lt;/span&gt;
&lt;span class="c1"&gt;# Export to TensorFlow (optional)
# model.export(format='tflite')
&lt;/span&gt;
&lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="se"&gt;\n&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="mi"&gt;60&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;🎉 Training pipeline completed successfully!&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="mi"&gt;60&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="se"&gt;\n&lt;/span&gt;&lt;span class="s"&gt;📁 Trained model location: &lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;output_path&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;📊 Training results: runs/detect/pothole_detection/&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;📈 View results using: tensorboard --logdir runs/detect/pothole_detection/&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;
  
  
  3.2 Running the Training Script
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# Install required packages&lt;/span&gt;
pip &lt;span class="nb"&gt;install &lt;/span&gt;ultralytics roboflow opencv-python torch torchvision

&lt;span class="c"&gt;# Run training&lt;/span&gt;
python potholewrightfile.py
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  3.3 Training Output
&lt;/h3&gt;

&lt;p&gt;The script creates the following structure:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;runs/detect/pothole_detection/
│
├── weights/
│   ├── best.pt          # Best performing model
│   └── last.pt          # Last epoch model
│
├── confusion_matrix.png  # Classification confusion matrix
├── results.csv           # Training metrics per epoch
├── results.png           # Training curves (loss, mAP, etc.)
├── F1_curve.png         # F1 score curve
├── P_curve.png          # Precision curve
├── R_curve.png          # Recall curve
├── PR_curve.png         # Precision-Recall curve
└── val_batch0_pred.jpg  # Validation predictions sample
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  4. Understanding the .pt Weight File
&lt;/h2&gt;

&lt;h3&gt;
  
  
  4.1 What is a .pt File?
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;.pt&lt;/strong&gt; = &lt;strong&gt;PyTorch&lt;/strong&gt; file extension&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Contains trained neural network weights (parameters)&lt;/li&gt;
&lt;li&gt;Stores model architecture information&lt;/li&gt;
&lt;li&gt;Includes optimizer state and training configuration&lt;/li&gt;
&lt;li&gt;Binary format (not human-readable)&lt;/li&gt;
&lt;li&gt;Typical size: 6MB (nano) to 140MB (extra-large)&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  4.2 What's Inside pothole.pt?
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;torch&lt;/span&gt;

&lt;span class="c1"&gt;# Load the .pt file
&lt;/span&gt;&lt;span class="n"&gt;model_data&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;torch&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;load&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;pothole.pt&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="c1"&gt;# Contents:
&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;model&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="n"&gt;trained&lt;/span&gt; &lt;span class="n"&gt;neural&lt;/span&gt; &lt;span class="n"&gt;network&lt;/span&gt; &lt;span class="n"&gt;weights&lt;/span&gt;&lt;span class="o"&gt;&amp;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;optimizer&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="n"&gt;optimizer&lt;/span&gt; &lt;span class="n"&gt;state&lt;/span&gt;&lt;span class="o"&gt;&amp;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;training_results&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="n"&gt;loss&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;mAP&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;metrics&lt;/span&gt;&lt;span class="o"&gt;&amp;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;epoch&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="n"&gt;last&lt;/span&gt; &lt;span class="n"&gt;trained&lt;/span&gt; &lt;span class="n"&gt;epoch&lt;/span&gt; &lt;span class="n"&gt;number&lt;/span&gt;&lt;span class="o"&gt;&amp;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;date&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="n"&gt;training&lt;/span&gt; &lt;span class="n"&gt;completion&lt;/span&gt; &lt;span class="n"&gt;date&lt;/span&gt;&lt;span class="o"&gt;&amp;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;version&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="n"&gt;YOLOv8&lt;/span&gt; &lt;span class="n"&gt;version&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  4.3 How YOLOv8 Uses pothole.pt
&lt;/h3&gt;

&lt;p&gt;When you load the model:&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;model&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nc"&gt;YOLO&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;pothole.pt&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;YOLOv8 does the following:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Reads file&lt;/strong&gt;: Loads binary weights from disk&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Reconstructs architecture&lt;/strong&gt;: Builds neural network layers&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Applies weights&lt;/strong&gt;: Sets each neuron's learned parameters&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Prepares for inference&lt;/strong&gt;: Model ready to detect potholes&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Think of it like a brain transplant:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;yolov8n.pt&lt;/strong&gt; = Generic brain (knows common objects)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;pothole.pt&lt;/strong&gt; = Specialized brain (expert at finding potholes)&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  5. YOLOv8 Implementation Code
&lt;/h2&gt;

&lt;h3&gt;
  
  
  5.1 Basic Detection Script
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="sh"&gt;"""&lt;/span&gt;&lt;span class="s"&gt;
pothole_detector.py
Real-time pothole detection using trained YOLOv8 model
&lt;/span&gt;&lt;span class="sh"&gt;"""&lt;/span&gt;

&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="n"&gt;ultralytics&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;YOLO&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;cv2&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;numpy&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="n"&gt;np&lt;/span&gt;
&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="n"&gt;datetime&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;datetime&lt;/span&gt;

&lt;span class="c1"&gt;# ====================
# 1. LOAD TRAINED MODEL
# ====================
&lt;/span&gt;&lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;🔄 Loading pothole detection model...&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;model&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nc"&gt;YOLO&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;pothole.pt&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;  &lt;span class="c1"&gt;# Load your custom trained weights
&lt;/span&gt;&lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;✅ Model loaded successfully&lt;/span&gt;&lt;span class="se"&gt;\n&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="c1"&gt;# ====================
# 2. CONFIGURATION
# ====================
&lt;/span&gt;&lt;span class="n"&gt;CONFIDENCE_THRESHOLD&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mf"&gt;0.5&lt;/span&gt;  &lt;span class="c1"&gt;# Minimum confidence for detection
&lt;/span&gt;&lt;span class="n"&gt;VIDEO_SOURCE&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;road_video.mp4&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;  &lt;span class="c1"&gt;# Video file or 0 for webcam
&lt;/span&gt;&lt;span class="n"&gt;OUTPUT_VIDEO&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;pothole_detected.mp4&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;
&lt;span class="n"&gt;SHOW_CONFIDENCE&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="bp"&gt;True&lt;/span&gt;
&lt;span class="n"&gt;SAVE_VIDEO&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="bp"&gt;True&lt;/span&gt;

&lt;span class="c1"&gt;# ====================
# 3. VIDEO CAPTURE
# ====================
&lt;/span&gt;&lt;span class="n"&gt;cap&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;cv2&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;VideoCapture&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;VIDEO_SOURCE&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="ow"&gt;not&lt;/span&gt; &lt;span class="n"&gt;cap&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;isOpened&lt;/span&gt;&lt;span class="p"&gt;():&lt;/span&gt;
    &lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;❌ Error: Cannot open video source&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="nf"&gt;exit&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;

&lt;span class="c1"&gt;# Get video properties
&lt;/span&gt;&lt;span class="n"&gt;frame_width&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;int&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;cap&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;cv2&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;CAP_PROP_FRAME_WIDTH&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
&lt;span class="n"&gt;frame_height&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;int&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;cap&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;cv2&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;CAP_PROP_FRAME_HEIGHT&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
&lt;span class="n"&gt;fps&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;int&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;cap&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;cv2&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;CAP_PROP_FPS&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;

&lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;📹 Video Info:&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;   Resolution: &lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;frame_width&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s"&gt;x&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;frame_height&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;   FPS: &lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;fps&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="se"&gt;\n&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="c1"&gt;# ====================
# 4. VIDEO WRITER (Optional)
# ====================
&lt;/span&gt;&lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;SAVE_VIDEO&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
    &lt;span class="n"&gt;fourcc&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;cv2&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;VideoWriter_fourcc&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;mp4v&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="n"&gt;out&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;cv2&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;VideoWriter&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;OUTPUT_VIDEO&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;fourcc&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;fps&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;frame_width&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;frame_height&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;

&lt;span class="c1"&gt;# ====================
# 5. DETECTION LOOP
# ====================
&lt;/span&gt;&lt;span class="n"&gt;frame_count&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;
&lt;span class="n"&gt;total_potholes_detected&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;

&lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;🚀 Starting detection...&lt;/span&gt;&lt;span class="se"&gt;\n&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Press &lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;q&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt; to quit, &lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;p&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt; to pause&lt;/span&gt;&lt;span class="se"&gt;\n&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="k"&gt;while&lt;/span&gt; &lt;span class="n"&gt;cap&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;isOpened&lt;/span&gt;&lt;span class="p"&gt;():&lt;/span&gt;
    &lt;span class="n"&gt;ret&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;frame&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;cap&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;read&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;

    &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="ow"&gt;not&lt;/span&gt; &lt;span class="n"&gt;ret&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
        &lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="se"&gt;\n&lt;/span&gt;&lt;span class="s"&gt;📹 End of video or error reading frame&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="k"&gt;break&lt;/span&gt;

    &lt;span class="n"&gt;frame_count&lt;/span&gt; &lt;span class="o"&gt;+=&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;

    &lt;span class="c1"&gt;# ---------------------
&lt;/span&gt;    &lt;span class="c1"&gt;# Run YOLOv8 Detection
&lt;/span&gt;    &lt;span class="c1"&gt;# ---------------------
&lt;/span&gt;    &lt;span class="n"&gt;results&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;model&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;frame&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;conf&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;CONFIDENCE_THRESHOLD&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

    &lt;span class="c1"&gt;# Extract detection information
&lt;/span&gt;    &lt;span class="n"&gt;detections&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;results&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;].&lt;/span&gt;&lt;span class="n"&gt;boxes&lt;/span&gt;
    &lt;span class="n"&gt;num_potholes&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;len&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;detections&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="n"&gt;total_potholes_detected&lt;/span&gt; &lt;span class="o"&gt;+=&lt;/span&gt; &lt;span class="n"&gt;num_potholes&lt;/span&gt;

    &lt;span class="c1"&gt;# ---------------------
&lt;/span&gt;    &lt;span class="c1"&gt;# Draw Bounding Boxes
&lt;/span&gt;    &lt;span class="c1"&gt;# ---------------------
&lt;/span&gt;    &lt;span class="n"&gt;annotated_frame&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;frame&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;copy&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;

    &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;detection&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="n"&gt;detections&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
        &lt;span class="c1"&gt;# Get bounding box coordinates
&lt;/span&gt;        &lt;span class="n"&gt;x1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;y1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;x2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;y2&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;map&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;int&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;detection&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;xyxy&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;])&lt;/span&gt;

        &lt;span class="c1"&gt;# Get confidence score
&lt;/span&gt;        &lt;span class="n"&gt;confidence&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;float&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;detection&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;conf&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;])&lt;/span&gt;

        &lt;span class="c1"&gt;# Get class (should be 'pothole')
&lt;/span&gt;        &lt;span class="n"&gt;class_id&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;int&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;detection&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;cls&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;])&lt;/span&gt;
        &lt;span class="n"&gt;class_name&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;model&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;names&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;class_id&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;

        &lt;span class="c1"&gt;# Draw bounding box
&lt;/span&gt;        &lt;span class="n"&gt;cv2&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;rectangle&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;annotated_frame&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;y1&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;y2&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;255&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

        &lt;span class="c1"&gt;# Create label
&lt;/span&gt;        &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;SHOW_CONFIDENCE&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
            &lt;span class="n"&gt;label&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;class_name&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s"&gt;: &lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;confidence&lt;/span&gt;&lt;span class="si"&gt;:&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="n"&gt;f&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;
        &lt;span class="k"&gt;else&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
            &lt;span class="n"&gt;label&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;class_name&lt;/span&gt;

        &lt;span class="c1"&gt;# Draw label background
&lt;/span&gt;        &lt;span class="n"&gt;label_size&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;_&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;cv2&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;getTextSize&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;label&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;cv2&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;FONT_HERSHEY_SIMPLEX&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mf"&gt;0.6&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="n"&gt;cv2&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;rectangle&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;annotated_frame&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; 
                     &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;y1&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="n"&gt;label_size&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="mi"&gt;10&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt; 
                     &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x1&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="n"&gt;label_size&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt; &lt;span class="n"&gt;y1&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt; 
                     &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;255&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

        &lt;span class="c1"&gt;# Draw label text
&lt;/span&gt;        &lt;span class="n"&gt;cv2&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;putText&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;annotated_frame&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;label&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;y1&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="mi"&gt;5&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt;
                   &lt;span class="n"&gt;cv2&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;FONT_HERSHEY_SIMPLEX&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mf"&gt;0.6&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;255&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;255&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;255&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

    &lt;span class="c1"&gt;# ---------------------
&lt;/span&gt;    &lt;span class="c1"&gt;# Add Info Overlay
&lt;/span&gt;    &lt;span class="c1"&gt;# ---------------------
&lt;/span&gt;    &lt;span class="n"&gt;info_text&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;
        &lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Frame: &lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;frame_count&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Potholes in frame: &lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;num_potholes&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Total detected: &lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;total_potholes_detected&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;FPS: &lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;fps&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;
    &lt;span class="p"&gt;]&lt;/span&gt;

    &lt;span class="n"&gt;y_offset&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;30&lt;/span&gt;
    &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;text&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="n"&gt;info_text&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
        &lt;span class="n"&gt;cv2&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;putText&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;annotated_frame&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;text&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;10&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;y_offset&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt;
                   &lt;span class="n"&gt;cv2&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;FONT_HERSHEY_SIMPLEX&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mf"&gt;0.7&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;255&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="n"&gt;y_offset&lt;/span&gt; &lt;span class="o"&gt;+=&lt;/span&gt; &lt;span class="mi"&gt;30&lt;/span&gt;

    &lt;span class="c1"&gt;# ---------------------
&lt;/span&gt;    &lt;span class="c1"&gt;# Display Frame
&lt;/span&gt;    &lt;span class="c1"&gt;# ---------------------
&lt;/span&gt;    &lt;span class="n"&gt;cv2&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;imshow&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;Pothole Detection&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;annotated_frame&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

    &lt;span class="c1"&gt;# Save frame to output video
&lt;/span&gt;    &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;SAVE_VIDEO&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
        &lt;span class="n"&gt;out&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;write&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;annotated_frame&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

    &lt;span class="c1"&gt;# ---------------------
&lt;/span&gt;    &lt;span class="c1"&gt;# Keyboard Controls
&lt;/span&gt;    &lt;span class="c1"&gt;# ---------------------
&lt;/span&gt;    &lt;span class="n"&gt;key&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;cv2&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;waitKey&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&lt;/span&gt; &lt;span class="mh"&gt;0xFF&lt;/span&gt;

    &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;key&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="nf"&gt;ord&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;q&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
        &lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="se"&gt;\n&lt;/span&gt;&lt;span class="s"&gt;⏹️ Stopping detection...&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="k"&gt;break&lt;/span&gt;
    &lt;span class="k"&gt;elif&lt;/span&gt; &lt;span class="n"&gt;key&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="nf"&gt;ord&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;p&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
        &lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="se"&gt;\n&lt;/span&gt;&lt;span class="s"&gt;⏸️ Paused. Press any key to continue...&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="n"&gt;cv2&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;waitKey&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

    &lt;span class="c1"&gt;# Print progress every 30 frames
&lt;/span&gt;    &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;frame_count&lt;/span&gt; &lt;span class="o"&gt;%&lt;/span&gt; &lt;span class="mi"&gt;30&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
        &lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Processed &lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;frame_count&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s"&gt; frames | Potholes: &lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;total_potholes_detected&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="c1"&gt;# ====================
# 6. CLEANUP
# ====================
&lt;/span&gt;&lt;span class="n"&gt;cap&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;release&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;SAVE_VIDEO&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
    &lt;span class="n"&gt;out&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;release&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;span class="n"&gt;cv2&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;destroyAllWindows&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;

&lt;span class="c1"&gt;# ====================
# 7. SUMMARY
# ====================
&lt;/span&gt;&lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="se"&gt;\n&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="mi"&gt;60&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;📊 DETECTION SUMMARY&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="mi"&gt;60&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Total frames processed: &lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;frame_count&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Total potholes detected: &lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;total_potholes_detected&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Average potholes per frame: &lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;total_potholes_detected&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;frame_count&lt;/span&gt;&lt;span class="si"&gt;:&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="n"&gt;f&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;SAVE_VIDEO&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
    &lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Output saved to: &lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;OUTPUT_VIDEO&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="mi"&gt;60&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  5.2 Image Detection Script
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="sh"&gt;"""&lt;/span&gt;&lt;span class="s"&gt;
detect_image.py
Detect potholes in a single image
&lt;/span&gt;&lt;span class="sh"&gt;"""&lt;/span&gt;

&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="n"&gt;ultralytics&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;YOLO&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;cv2&lt;/span&gt;

&lt;span class="c1"&gt;# Load model
&lt;/span&gt;&lt;span class="n"&gt;model&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nc"&gt;YOLO&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;pothole.pt&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="c1"&gt;# Load image
&lt;/span&gt;&lt;span class="n"&gt;image_path&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;road_image.jpg&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;
&lt;span class="n"&gt;image&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;cv2&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;imread&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;image_path&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="c1"&gt;# Run detection
&lt;/span&gt;&lt;span class="n"&gt;results&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;model&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;image&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;conf&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mf"&gt;0.5&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="c1"&gt;# Get annotated image
&lt;/span&gt;&lt;span class="n"&gt;annotated_image&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;results&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;].&lt;/span&gt;&lt;span class="nf"&gt;plot&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;

&lt;span class="c1"&gt;# Display
&lt;/span&gt;&lt;span class="n"&gt;cv2&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;imshow&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;Pothole Detection&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;annotated_image&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;cv2&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;waitKey&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;cv2&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;destroyAllWindows&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;

&lt;span class="c1"&gt;# Save result
&lt;/span&gt;&lt;span class="n"&gt;cv2&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;imwrite&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;detected_potholes.jpg&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;annotated_image&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;✅ Detection complete. Result saved as &lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;detected_potholes.jpg&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;
  
  
  5.3 Batch Processing Script
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="sh"&gt;"""&lt;/span&gt;&lt;span class="s"&gt;
batch_detect.py
Process multiple images from a folder
&lt;/span&gt;&lt;span class="sh"&gt;"""&lt;/span&gt;

&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="n"&gt;ultralytics&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;YOLO&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;cv2&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;os&lt;/span&gt;
&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="n"&gt;pathlib&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;Path&lt;/span&gt;

&lt;span class="c1"&gt;# Configuration
&lt;/span&gt;&lt;span class="n"&gt;INPUT_FOLDER&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;input_images/&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;
&lt;span class="n"&gt;OUTPUT_FOLDER&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;output_images/&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;
&lt;span class="n"&gt;model&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nc"&gt;YOLO&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;pothole.pt&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="c1"&gt;# Create output folder
&lt;/span&gt;&lt;span class="nc"&gt;Path&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;OUTPUT_FOLDER&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nf"&gt;mkdir&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;exist_ok&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="bp"&gt;True&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="c1"&gt;# Get all images
&lt;/span&gt;&lt;span class="n"&gt;image_files&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;f&lt;/span&gt; &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;f&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="n"&gt;os&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;listdir&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;INPUT_FOLDER&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; 
               &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;f&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;lower&lt;/span&gt;&lt;span class="p"&gt;().&lt;/span&gt;&lt;span class="nf"&gt;endswith&lt;/span&gt;&lt;span class="p"&gt;((&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;.jpg&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;.jpeg&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;.png&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;))]&lt;/span&gt;

&lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;📁 Found &lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="nf"&gt;len&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;image_files&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s"&gt; images to process&lt;/span&gt;&lt;span class="se"&gt;\n&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="c1"&gt;# Process each image
&lt;/span&gt;&lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;idx&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;filename&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="nf"&gt;enumerate&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;image_files&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
    &lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Processing &lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;idx&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s"&gt;/&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="nf"&gt;len&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;image_files&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s"&gt;: &lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;filename&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

    &lt;span class="c1"&gt;# Read image
&lt;/span&gt;    &lt;span class="n"&gt;image_path&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;os&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;path&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;join&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;INPUT_FOLDER&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;filename&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="n"&gt;image&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;cv2&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;imread&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;image_path&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

    &lt;span class="c1"&gt;# Detect
&lt;/span&gt;    &lt;span class="n"&gt;results&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;model&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;image&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;conf&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mf"&gt;0.5&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="n"&gt;annotated&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;results&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;].&lt;/span&gt;&lt;span class="nf"&gt;plot&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;

    &lt;span class="c1"&gt;# Save
&lt;/span&gt;    &lt;span class="n"&gt;output_path&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;os&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;path&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;join&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;OUTPUT_FOLDER&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;detected_&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;filename&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="n"&gt;cv2&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;imwrite&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;output_path&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;annotated&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

    &lt;span class="c1"&gt;# Count detections
&lt;/span&gt;    &lt;span class="n"&gt;num_potholes&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;len&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;results&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;].&lt;/span&gt;&lt;span class="n"&gt;boxes&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;   ✅ Detected &lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;num_potholes&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s"&gt; pothole(s)&lt;/span&gt;&lt;span class="se"&gt;\n&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;🎉 Batch processing complete!&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;h2&gt;
  
  
  6. Complete Workflow
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Step-by-Step Process:
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;1. DATASET ACQUISITION (Kaggle)
   ├── Search for pothole dataset
   ├── Download dataset (images + annotations)
   └── Extract to local folder
          ↓
2. DATASET PREPARATION (Roboflow)
   ├── Create project
   ├── Upload images
   ├── Annotate/verify annotations
   ├── Apply augmentations
   ├── Split train/val/test
   └── Export as YOLOv8 format
          ↓
3. MODEL TRAINING (potholewrightfile.py)
   ├── Download dataset from Roboflow
   ├── Initialize YOLOv8 base model
   ├── Configure training parameters
   ├── Train for 100 epochs
   ├── Validate performance
   └── Save best weights as pothole.pt
          ↓
4. MODEL DEPLOYMENT (YOLOv8 + OpenCV)
   ├── Load pothole.pt weights
   ├── Initialize video capture
   ├── Process frames in loop:
   │   ├── Read frame
   │   ├── Run YOLOv8 inference
   │   ├── Extract bounding boxes
   │   ├── Draw annotations
   │   └── Display/save results
   └── Generate detection summary
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Technical Flow Diagram:
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Kaggle Dataset → Roboflow Processing → YOLOv8 Training → pothole.pt
                                                              ↓
                                                         Inference
                                                              ↓
                  Video/Image Input → OpenCV → YOLOv8 → Detections
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  7. Key Concepts Explained
&lt;/h2&gt;

&lt;h3&gt;
  
  
  7.1 Transfer Learning
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Start with &lt;strong&gt;yolov8n.pt&lt;/strong&gt; (pre-trained on COCO dataset)&lt;/li&gt;
&lt;li&gt;Fine-tune on pothole-specific images&lt;/li&gt;
&lt;li&gt;Model learns pothole features while retaining general object detection ability&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  7.2 Data Augmentation
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Creates artificial variations of training images&lt;/li&gt;
&lt;li&gt;Prevents overfitting&lt;/li&gt;
&lt;li&gt;Improves model generalization&lt;/li&gt;
&lt;li&gt;Examples: rotation, brightness, flipping&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  7.3 Epochs
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;One complete pass through entire training dataset&lt;/li&gt;
&lt;li&gt;100 epochs = model sees all training images 100 times&lt;/li&gt;
&lt;li&gt;More epochs = better learning (up to a point)&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  7.4 Confidence Threshold
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Minimum score for detection to be considered valid&lt;/li&gt;
&lt;li&gt;0.5 = 50% confidence&lt;/li&gt;
&lt;li&gt;Higher threshold = fewer false positives, more missed detections&lt;/li&gt;
&lt;li&gt;Lower threshold = more detections, more false positives&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  7.5 Bounding Box
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Rectangle drawn around detected pothole&lt;/li&gt;
&lt;li&gt;Defined by coordinates: (x1, y1, x2, y2)&lt;/li&gt;
&lt;li&gt;(x1, y1) = top-left corner&lt;/li&gt;
&lt;li&gt;(x2, y2) = bottom-right corner&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  8. Troubleshooting
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Common Issues:
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Issue&lt;/strong&gt;: "CUDA out of memory" error&lt;br&gt;
&lt;strong&gt;Solution&lt;/strong&gt;: Reduce batch size in training config (e.g., batch=8)&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Issue&lt;/strong&gt;: Low detection accuracy&lt;br&gt;
&lt;strong&gt;Solution&lt;/strong&gt;: &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Increase training epochs&lt;/li&gt;
&lt;li&gt;Add more diverse training images&lt;/li&gt;
&lt;li&gt;Adjust confidence threshold&lt;/li&gt;
&lt;li&gt;Check annotation quality&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Issue&lt;/strong&gt;: Model detects non-potholes&lt;br&gt;
&lt;strong&gt;Solution&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Add hard negative examples to training set&lt;/li&gt;
&lt;li&gt;Increase training epochs&lt;/li&gt;
&lt;li&gt;Adjust confidence threshold higher&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Issue&lt;/strong&gt;: Slow inference speed&lt;br&gt;
&lt;strong&gt;Solution&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Use smaller model (yolov8n instead of yolov8x)&lt;/li&gt;
&lt;li&gt;Reduce input image size&lt;/li&gt;
&lt;li&gt;Use GPU instead of CPU&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  9. Performance Metrics
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Training Metrics Explained:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;mAP50&lt;/strong&gt;: Mean Average Precision at 50% IoU threshold (higher is better)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;mAP50-95&lt;/strong&gt;: mAP averaged over IoU thresholds 50%-95% (more strict)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Precision&lt;/strong&gt;: Percentage of correct detections out of all detections&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Recall&lt;/strong&gt;: Percentage of actual potholes that were detected&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;F1 Score&lt;/strong&gt;: Harmonic mean of precision and recall&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Target Performance:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;mAP50: &amp;gt; 0.70 (Good)&lt;/li&gt;
&lt;li&gt;Precision: &amp;gt; 0.75 (Good)&lt;/li&gt;
&lt;li&gt;Recall: &amp;gt; 0.70 (Good)&lt;/li&gt;
&lt;/ul&gt;




</description>
      <category>tutorial</category>
      <category>python</category>
      <category>machinelearning</category>
      <category>ai</category>
    </item>
    <item>
      <title>code for soniya</title>
      <dc:creator>SIDDHARTH PATIL</dc:creator>
      <pubDate>Fri, 30 May 2025 05:06:13 +0000</pubDate>
      <link>https://dev.to/sidatgithubcode/code-for-soniya-4dn0</link>
      <guid>https://dev.to/sidatgithubcode/code-for-soniya-4dn0</guid>
      <description>&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="n"&gt;flask&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;Blueprint&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;request&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;render_template&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;abort&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;Markup&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;os&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;markdown&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;time&lt;/span&gt;

&lt;span class="n"&gt;viewer_bp&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nc"&gt;Blueprint&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;viewer&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;__name__&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;DOCUMENTS_FOLDER&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;documents_db&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;
&lt;span class="n"&gt;ALLOWED_EXTENSIONS&lt;/span&gt; &lt;span class="o"&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;.txt&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;.html&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;.md&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="c1"&gt;# Simple in-memory cache
&lt;/span&gt;&lt;span class="n"&gt;cache&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{}&lt;/span&gt;

&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;log_access&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;doc_id&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
    &lt;span class="k"&gt;with&lt;/span&gt; &lt;span class="nf"&gt;open&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;access.log&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;a&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="n"&gt;log_file&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
        &lt;span class="n"&gt;log_file&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;write&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;time&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;ctime&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s"&gt; - Accessed doc_id: &lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;doc_id&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="se"&gt;\n&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;get_file_metadata&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;filepath&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
    &lt;span class="n"&gt;stat&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;os&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;stat&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;filepath&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;size_kb&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nf"&gt;round&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;stat&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;st_size&lt;/span&gt; &lt;span class="o"&gt;/&lt;/span&gt; &lt;span class="mi"&gt;1024&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt;
        &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;last_modified&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;time&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;ctime&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;stat&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;st_mtime&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;resolve_document_path&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;doc_id&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
    &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;ext&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="n"&gt;ALLOWED_EXTENSIONS&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
        &lt;span class="n"&gt;filename&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;doc_id&lt;/span&gt;&lt;span class="si"&gt;}{&lt;/span&gt;&lt;span class="n"&gt;ext&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;
        &lt;span class="n"&gt;filepath&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;os&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;path&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;join&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;DOCUMENTS_FOLDER&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;filename&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;os&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;path&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;isfile&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;filepath&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
            &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;filepath&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="bp"&gt;None&lt;/span&gt;

&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;render_file_content&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;filepath&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
    &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;filepath&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="n"&gt;cache&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
        &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;cache&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;filepath&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;

    &lt;span class="k"&gt;try&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
        &lt;span class="k"&gt;with&lt;/span&gt; &lt;span class="nf"&gt;open&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;filepath&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;r&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;encoding&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;utf-8&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="n"&gt;f&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
            &lt;span class="n"&gt;content&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;f&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;read&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;

        &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;filepath&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;endswith&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;.md&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
            &lt;span class="n"&gt;content&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;markdown&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;markdown&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;content&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="k"&gt;elif&lt;/span&gt; &lt;span class="n"&gt;filepath&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;endswith&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;.html&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
            &lt;span class="n"&gt;content&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nc"&gt;Markup&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;content&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

        &lt;span class="c1"&gt;# Cache it
&lt;/span&gt;        &lt;span class="n"&gt;cache&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;filepath&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;content&lt;/span&gt;
        &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;content&lt;/span&gt;

    &lt;span class="k"&gt;except&lt;/span&gt; &lt;span class="nb"&gt;Exception&lt;/span&gt; &lt;span class="k"&gt;as&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;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Failed to read or process file: &lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;e&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="bp"&gt;None&lt;/span&gt;

&lt;span class="nd"&gt;@viewer_bp.route&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;/view&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;view&lt;/span&gt;&lt;span class="p"&gt;():&lt;/span&gt;
    &lt;span class="n"&gt;doc_id&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;request&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;args&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;doc_id&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="ow"&gt;not&lt;/span&gt; &lt;span class="n"&gt;doc_id&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
        &lt;span class="nf"&gt;abort&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;400&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;description&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Missing doc_id&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

    &lt;span class="n"&gt;filepath&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;resolve_document_path&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;doc_id&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="ow"&gt;not&lt;/span&gt; &lt;span class="n"&gt;filepath&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
        &lt;span class="nf"&gt;abort&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;404&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;description&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Document not found&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

    &lt;span class="n"&gt;content&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;render_file_content&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;filepath&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;content&lt;/span&gt; &lt;span class="ow"&gt;is&lt;/span&gt; &lt;span class="bp"&gt;None&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
        &lt;span class="nf"&gt;abort&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;500&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;description&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Failed to load content&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

    &lt;span class="n"&gt;metadata&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;get_file_metadata&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;filepath&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="nf"&gt;log_access&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;doc_id&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nf"&gt;render_template&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;viewer.html&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
                           &lt;span class="n"&gt;doc_id&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;doc_id&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
                           &lt;span class="n"&gt;content&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;content&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
                           &lt;span class="n"&gt;is_html&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;filepath&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;endswith&lt;/span&gt;&lt;span class="p"&gt;((&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;.html&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;.md&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;)),&lt;/span&gt;
                           &lt;span class="n"&gt;metadata&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;metadata&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;next moving on teh the homepage&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="cp"&gt;&amp;lt;!DOCTYPE html&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;html&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;head&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;meta&lt;/span&gt; &lt;span class="na"&gt;http-equiv=&lt;/span&gt;&lt;span class="s"&gt;"Content-Type"&lt;/span&gt; &lt;span class="na"&gt;content=&lt;/span&gt;&lt;span class="s"&gt;"text/html; charset=utf-8"&lt;/span&gt; &lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;title&amp;gt;&lt;/span&gt;ARVIS augmented reality virtual ID system&lt;span class="nt"&gt;&amp;lt;/title&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;link&lt;/span&gt; &lt;span class="na"&gt;rel=&lt;/span&gt;&lt;span class="s"&gt;"stylesheet"&lt;/span&gt; &lt;span class="na"&gt;href=&lt;/span&gt;&lt;span class="s"&gt;"https://cdn.jsdelivr.net/bxslider/4.2.12/jquery.bxslider.css"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;link&lt;/span&gt; &lt;span class="na"&gt;rel=&lt;/span&gt;&lt;span class="s"&gt;"stylesheet"&lt;/span&gt; &lt;span class="na"&gt;href=&lt;/span&gt;&lt;span class="s"&gt;"static/css/animate.css"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;link&lt;/span&gt; &lt;span class="na"&gt;rel=&lt;/span&gt;&lt;span class="s"&gt;"stylesheet"&lt;/span&gt; &lt;span class="na"&gt;href=&lt;/span&gt;&lt;span class="s"&gt;"https://stackpath.bootstrapcdn.com/bootstrap/4.1.1/css/bootstrap.min.css"&lt;/span&gt; &lt;span class="na"&gt;integrity=&lt;/span&gt;&lt;span class="s"&gt;"sha384-WskhaSGFgHYWDcbwN70/dfYBj47jz9qbsMId/iRN3ewGhXQFZCSftd1LZCfmhktB"&lt;/span&gt; &lt;span class="na"&gt;crossorigin=&lt;/span&gt;&lt;span class="s"&gt;"anonymous"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;link&lt;/span&gt; &lt;span class="na"&gt;rel=&lt;/span&gt;&lt;span class="s"&gt;"stylesheet"&lt;/span&gt; &lt;span class="na"&gt;type=&lt;/span&gt;&lt;span class="s"&gt;"text/css"&lt;/span&gt; &lt;span class="na"&gt;href=&lt;/span&gt;&lt;span class="s"&gt;"static/css/style.css"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;link&lt;/span&gt; &lt;span class="na"&gt;rel=&lt;/span&gt;&lt;span class="s"&gt;"stylesheet"&lt;/span&gt; &lt;span class="na"&gt;href=&lt;/span&gt;&lt;span class="s"&gt;"https://use.fontawesome.com/releases/v5.1.0/css/all.css"&lt;/span&gt; &lt;span class="na"&gt;integrity=&lt;/span&gt;&lt;span class="s"&gt;"sha384-lKuwvrZot6UHsBSfcMvOkWwlCMgc0TaWr+30HWe3a4ltaBwTZhyTEggF5tJv8tbt"&lt;/span&gt; &lt;span class="na"&gt;crossorigin=&lt;/span&gt;&lt;span class="s"&gt;"anonymous"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="c"&gt;&amp;lt;!-- Font Google --&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;link&lt;/span&gt; &lt;span class="na"&gt;href=&lt;/span&gt;&lt;span class="s"&gt;"https://fonts.googleapis.com/css?family=Poppins:300,400,500,600,700"&lt;/span&gt; &lt;span class="na"&gt;rel=&lt;/span&gt;&lt;span class="s"&gt;"stylesheet"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;meta&lt;/span&gt; &lt;span class="na"&gt;name=&lt;/span&gt;&lt;span class="s"&gt;"viewport"&lt;/span&gt; &lt;span class="na"&gt;content=&lt;/span&gt;&lt;span class="s"&gt;"width=device-width, initial-scale=1.0"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/head&amp;gt;&lt;/span&gt;

&lt;span class="nt"&gt;&amp;lt;body&amp;gt;&lt;/span&gt;
&lt;span class="c"&gt;&amp;lt;!-- Navbar --&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;nav&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"navbar navbar-expand-lg"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"container"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;   &lt;span class="nt"&gt;&amp;lt;/a&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;button&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"navbar-toggler"&lt;/span&gt; &lt;span class="na"&gt;type=&lt;/span&gt;&lt;span class="s"&gt;"button"&lt;/span&gt; &lt;span class="na"&gt;data-toggle=&lt;/span&gt;&lt;span class="s"&gt;"collapse"&lt;/span&gt; &lt;span class="na"&gt;data-target=&lt;/span&gt;&lt;span class="s"&gt;"#navbarSupportedContent"&lt;/span&gt; &lt;span class="na"&gt;aria-controls=&lt;/span&gt;&lt;span class="s"&gt;"navbarSupportedContent"&lt;/span&gt; &lt;span class="na"&gt;aria-expanded=&lt;/span&gt;&lt;span class="s"&gt;"false"&lt;/span&gt; &lt;span class="na"&gt;aria-label=&lt;/span&gt;&lt;span class="s"&gt;"Toggle navigation"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt; &lt;span class="nt"&gt;&amp;lt;span&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"fas fa-bars"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&amp;lt;/span&amp;gt;&lt;/span&gt; &lt;span class="nt"&gt;&amp;lt;/button&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"collapse navbar-collapse"&lt;/span&gt; &lt;span class="na"&gt;id=&lt;/span&gt;&lt;span class="s"&gt;"navbarSupportedContent"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;ul&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"navbar-nav ml-auto"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;li&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"nav-item"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt; &lt;span class="nt"&gt;&amp;lt;a&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"nav-link"&lt;/span&gt; &lt;span class="na"&gt;href=&lt;/span&gt;&lt;span class="s"&gt;""&lt;/span&gt; &lt;span class="na"&gt;data-scroll-nav=&lt;/span&gt;&lt;span class="s"&gt;"0"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;Home&lt;span class="nt"&gt;&amp;lt;/a&amp;gt;&lt;/span&gt; &lt;span class="nt"&gt;&amp;lt;/li&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;li&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"nav-item"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt; &lt;span class="nt"&gt;&amp;lt;a&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"nav-link"&lt;/span&gt; &lt;span class="na"&gt;href=&lt;/span&gt;&lt;span class="s"&gt;"#"&lt;/span&gt; &lt;span class="na"&gt;data-scroll-nav=&lt;/span&gt;&lt;span class="s"&gt;"1"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;About&lt;span class="nt"&gt;&amp;lt;/a&amp;gt;&lt;/span&gt; &lt;span class="nt"&gt;&amp;lt;/li&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;li&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"nav-item"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt; &lt;span class="nt"&gt;&amp;lt;a&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"nav-link"&lt;/span&gt; &lt;span class="na"&gt;href=&lt;/span&gt;&lt;span class="s"&gt;"#"&lt;/span&gt; &lt;span class="na"&gt;data-scroll-nav=&lt;/span&gt;&lt;span class="s"&gt;"2"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;Features&lt;span class="nt"&gt;&amp;lt;/a&amp;gt;&lt;/span&gt; &lt;span class="nt"&gt;&amp;lt;/li&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;li&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"nav-item"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt; &lt;span class="nt"&gt;&amp;lt;a&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"nav-link"&lt;/span&gt; &lt;span class="na"&gt;href=&lt;/span&gt;&lt;span class="s"&gt;"#"&lt;/span&gt; &lt;span class="na"&gt;data-scroll-nav=&lt;/span&gt;&lt;span class="s"&gt;"3"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;Team&lt;span class="nt"&gt;&amp;lt;/a&amp;gt;&lt;/span&gt; &lt;span class="nt"&gt;&amp;lt;/li&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;li&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"nav-item"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt; &lt;span class="nt"&gt;&amp;lt;a&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"nav-link"&lt;/span&gt; &lt;span class="na"&gt;href=&lt;/span&gt;&lt;span class="s"&gt;"#"&lt;/span&gt; &lt;span class="na"&gt;data-scroll-nav=&lt;/span&gt;&lt;span class="s"&gt;"4"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;Testimonials&lt;span class="nt"&gt;&amp;lt;/a&amp;gt;&lt;/span&gt; &lt;span class="nt"&gt;&amp;lt;/li&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;li&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"nav-item"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt; &lt;span class="nt"&gt;&amp;lt;a&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"nav-link"&lt;/span&gt; &lt;span class="na"&gt;href=&lt;/span&gt;&lt;span class="s"&gt;"#"&lt;/span&gt; &lt;span class="na"&gt;data-scroll-nav=&lt;/span&gt;&lt;span class="s"&gt;"5"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;Faq&lt;span class="nt"&gt;&amp;lt;/a&amp;gt;&lt;/span&gt; &lt;span class="nt"&gt;&amp;lt;/li&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;li&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"nav-item"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt; &lt;span class="nt"&gt;&amp;lt;a&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"nav-link"&lt;/span&gt; &lt;span class="na"&gt;href=&lt;/span&gt;&lt;span class="s"&gt;"#"&lt;/span&gt; &lt;span class="na"&gt;data-scroll-nav=&lt;/span&gt;&lt;span class="s"&gt;"6"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;Contact&lt;span class="nt"&gt;&amp;lt;/a&amp;gt;&lt;/span&gt; &lt;span class="nt"&gt;&amp;lt;/li&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;/ul&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/nav&amp;gt;&lt;/span&gt;
&lt;span class="c"&gt;&amp;lt;!-- End Navbar --&amp;gt;&lt;/span&gt; 

&lt;span class="nt"&gt;&amp;lt;section&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"banner"&lt;/span&gt; &lt;span class="na"&gt;data-scroll-index=&lt;/span&gt;&lt;span class="s"&gt;'0'&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"banner-overlay"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"container"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"row"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"col-md-8 col-sm-12"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
          &lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"banner-text"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;h2&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"white"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;ARVIS - virtual AR ID card&lt;span class="nt"&gt;&amp;lt;/h2&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;h6&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"white"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;One step solution for your virtual and intractive identity&lt;span class="nt"&gt;&amp;lt;/h6&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;p&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"banner-text white"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;Discover how ARVIS’s innovative AR ID card system is transforming industries by providing secure, interactive credential verification. From healthcare to education, our technology offers unique solutions tailored to meet specific industry needs, enhancing security and user experience.&lt;span class="nt"&gt;&amp;lt;/p&amp;gt;&lt;/span&gt;

          &lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"col-md-4 col-sm-12"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt; &lt;span class="nt"&gt;&amp;lt;img&lt;/span&gt; &lt;span class="na"&gt;src=&lt;/span&gt;&lt;span class="s"&gt;"static/images/main1.png"&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"img-fluid wow fadeInUp"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt; &lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;span&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"svg-wave"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;  &lt;span class="nt"&gt;&amp;lt;/span&amp;gt;&lt;/span&gt; &lt;span class="nt"&gt;&amp;lt;/section&amp;gt;&lt;/span&gt;

&lt;span class="c"&gt;&amp;lt;!-------Banner End------&amp;gt;&lt;/span&gt; 

&lt;span class="c"&gt;&amp;lt;!-------About strt------&amp;gt;&lt;/span&gt;

&lt;span class="nt"&gt;&amp;lt;section&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"about section-padding prelative"&lt;/span&gt; &lt;span class="na"&gt;data-scroll-index=&lt;/span&gt;&lt;span class="s"&gt;'1'&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"container"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"row"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"col-md-12"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"sectioner-header text-center"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
          &lt;span class="nt"&gt;&amp;lt;h3&amp;gt;&lt;/span&gt;More into ARVIS&lt;span class="nt"&gt;&amp;lt;/h3&amp;gt;&lt;/span&gt;
          &lt;span class="nt"&gt;&amp;lt;span&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"line"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&amp;lt;/span&amp;gt;&lt;/span&gt;
          &lt;span class="nt"&gt;&amp;lt;p&amp;gt;&lt;/span&gt;Discover the future of credential verification with our AR ID card system. Scan the QR code to unlock interactive augmented reality experiences, providing a secure and comprehensive information hub. Join us in revolutionizing identity management.&lt;span class="nt"&gt;&amp;lt;/p&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"section-content text-center"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
          &lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"row"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"col-md-4"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
              &lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"icon-box wow fadeInUp"&lt;/span&gt; &lt;span class="na"&gt;data-wow-delay=&lt;/span&gt;&lt;span class="s"&gt;"0.2s"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt; &lt;span class="nt"&gt;&amp;lt;i&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"fa fa-life-ring"&lt;/span&gt; &lt;span class="na"&gt;aria-hidden=&lt;/span&gt;&lt;span class="s"&gt;"true"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&amp;lt;/i&amp;gt;&lt;/span&gt;
                &lt;span class="nt"&gt;&amp;lt;h5&amp;gt;&lt;/span&gt;Responsive&lt;span class="nt"&gt;&amp;lt;/h5&amp;gt;&lt;/span&gt;
                &lt;span class="nt"&gt;&amp;lt;p&amp;gt;&lt;/span&gt;An AR thats not just a display but a complete intractive setup for athentication.&lt;span class="nt"&gt;&amp;lt;/p&amp;gt;&lt;/span&gt;
              &lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"col-md-4"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
              &lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"icon-box wow fadeInUp"&lt;/span&gt; &lt;span class="na"&gt;data-wow-delay=&lt;/span&gt;&lt;span class="s"&gt;"0.4s"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt; &lt;span class="nt"&gt;&amp;lt;i&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"fa fa-mobile"&lt;/span&gt; &lt;span class="na"&gt;aria-hidden=&lt;/span&gt;&lt;span class="s"&gt;"true"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&amp;lt;/i&amp;gt;&lt;/span&gt;
                &lt;span class="nt"&gt;&amp;lt;h5&amp;gt;&lt;/span&gt;Mobile Friendly&lt;span class="nt"&gt;&amp;lt;/h5&amp;gt;&lt;/span&gt;
                &lt;span class="nt"&gt;&amp;lt;p&amp;gt;&lt;/span&gt;Scan QRs from the ease of your phone and verify the virtual ID card&lt;span class="nt"&gt;&amp;lt;/p&amp;gt;&lt;/span&gt;
              &lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"col-md-4"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
              &lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"icon-box wow fadeInUp"&lt;/span&gt; &lt;span class="na"&gt;data-wow-delay=&lt;/span&gt;&lt;span class="s"&gt;"0.6s"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt; &lt;span class="nt"&gt;&amp;lt;i&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"fa fa-bolt"&lt;/span&gt; &lt;span class="na"&gt;aria-hidden=&lt;/span&gt;&lt;span class="s"&gt;"true"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&amp;lt;/i&amp;gt;&lt;/span&gt;
                &lt;span class="nt"&gt;&amp;lt;h5&amp;gt;&lt;/span&gt;Embeded to the web &lt;span class="nt"&gt;&amp;lt;/h5&amp;gt;&lt;/span&gt;
                &lt;span class="nt"&gt;&amp;lt;p&amp;gt;&lt;/span&gt;The intracitve Ar are connected to the web and links that re-direct you to the required credentials&lt;span class="nt"&gt;&amp;lt;/p&amp;gt;&lt;/span&gt;
              &lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
          &lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
          &lt;span class="nt"&gt;&amp;lt;a&lt;/span&gt; &lt;span class="na"&gt;href=&lt;/span&gt;&lt;span class="s"&gt;"#"&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"about-btn"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;Learn More&lt;span class="nt"&gt;&amp;lt;/a&amp;gt;&lt;/span&gt; &lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/section&amp;gt;&lt;/span&gt;
&lt;span class="c"&gt;&amp;lt;!-------About End------&amp;gt;&lt;/span&gt; 



&lt;span class="c"&gt;&amp;lt;!-------Video End------&amp;gt;&lt;/span&gt; 


&lt;span class="nt"&gt;&amp;lt;section&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"feature section-padding"&lt;/span&gt; &lt;span class="na"&gt;data-scroll-index=&lt;/span&gt;&lt;span class="s"&gt;'2'&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"container"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"row"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"col-md-12"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"sectioner-header text-center"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
          &lt;span class="nt"&gt;&amp;lt;h3&amp;gt;&lt;/span&gt;Features&lt;span class="nt"&gt;&amp;lt;/h3&amp;gt;&lt;/span&gt;
          &lt;span class="nt"&gt;&amp;lt;span&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"line"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&amp;lt;/span&amp;gt;&lt;/span&gt;
          &lt;span class="nt"&gt;&amp;lt;p&amp;gt;&lt;/span&gt;Get your association the best deals. Starting from Rs.299 for smal scale to Rs. 1299 for large scale firms. Cunsult our sales teamfor more details . &lt;span class="nt"&gt;&amp;lt;/p&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"section-content text-center"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
          &lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"row"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"col-md-4 col-sm-12"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
              &lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"media single-feature wow fadeInUp"&lt;/span&gt; &lt;span class="na"&gt;data-wow-delay=&lt;/span&gt;&lt;span class="s"&gt;"0.2s"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
                &lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"media-body text-right media-right-margin"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
                  &lt;span class="nt"&gt;&amp;lt;h5&amp;gt;&lt;/span&gt;Fast Processing&lt;span class="nt"&gt;&amp;lt;/h5&amp;gt;&lt;/span&gt;
                  &lt;span class="nt"&gt;&amp;lt;p&amp;gt;&lt;/span&gt;Quick link redirections and dynamic routing using pythons backend&lt;span class="nt"&gt;&amp;lt;/p&amp;gt;&lt;/span&gt;
                &lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
                &lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"media-right icon-border"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt; &lt;span class="nt"&gt;&amp;lt;span&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"fa fa-bolt"&lt;/span&gt; &lt;span class="na"&gt;aria-hidden=&lt;/span&gt;&lt;span class="s"&gt;"true"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&amp;lt;/span&amp;gt;&lt;/span&gt; &lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
              &lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
              &lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"media single-feature wow fadeInUp"&lt;/span&gt; &lt;span class="na"&gt;data-wow-delay=&lt;/span&gt;&lt;span class="s"&gt;"0.4s"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
                &lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"media-body text-right media-right-margin"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
                  &lt;span class="nt"&gt;&amp;lt;h5&amp;gt;&lt;/span&gt;Step One&lt;span class="nt"&gt;&amp;lt;/h5&amp;gt;&lt;/span&gt;
                  &lt;span class="nt"&gt;&amp;lt;p&amp;gt;&lt;/span&gt;Scan the unique QR code on the AR ID card using your smartphone.&lt;span class="nt"&gt;&amp;lt;/p&amp;gt;&lt;/span&gt;
                &lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
                &lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"media-right icon-border"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt; &lt;span class="nt"&gt;&amp;lt;span&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"fa fa-battery-full"&lt;/span&gt; &lt;span class="na"&gt;aria-hidden=&lt;/span&gt;&lt;span class="s"&gt;"true"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&amp;lt;/span&amp;gt;&lt;/span&gt; &lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
              &lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
              &lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"media single-feature wow fadeInUp"&lt;/span&gt; &lt;span class="na"&gt;data-wow-delay=&lt;/span&gt;&lt;span class="s"&gt;"0.6s"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
                &lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"media-body text-right media-right-margin"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
                  &lt;span class="nt"&gt;&amp;lt;h5&amp;gt;&lt;/span&gt;Step Two&lt;span class="nt"&gt;&amp;lt;/h5&amp;gt;&lt;/span&gt;
                  &lt;span class="nt"&gt;&amp;lt;p&amp;gt;&lt;/span&gt;Experience the interactive AR elements that verify credentials instantly.&lt;span class="nt"&gt;&amp;lt;/p&amp;gt;&lt;/span&gt;
                &lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
                &lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"media-right icon-border"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt; &lt;span class="nt"&gt;&amp;lt;span&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"fa fa-wifi"&lt;/span&gt; &lt;span class="na"&gt;aria-hidden=&lt;/span&gt;&lt;span class="s"&gt;"true"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&amp;lt;/span&amp;gt;&lt;/span&gt; &lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
              &lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"col-md-4 d-none d-md-block d-lg-block"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
              &lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"feature-mobile"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt; &lt;span class="nt"&gt;&amp;lt;img&lt;/span&gt; &lt;span class="na"&gt;src=&lt;/span&gt;&lt;span class="s"&gt;"static/images/mid-img.png"&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"img-fluid wow fadeInUp"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt; &lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"col-md-4 col-sm-12"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
              &lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"media single-feature wow fadeInUp"&lt;/span&gt; &lt;span class="na"&gt;data-wow-delay=&lt;/span&gt;&lt;span class="s"&gt;"0.2s"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
                &lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"media-left icon-border media-right-margin"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt; &lt;span class="nt"&gt;&amp;lt;span&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"fa fa-check-double"&lt;/span&gt; &lt;span class="na"&gt;aria-hidden=&lt;/span&gt;&lt;span class="s"&gt;"true"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&amp;lt;/span&amp;gt;&lt;/span&gt; &lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
                &lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"media-body text-left"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
                  &lt;span class="nt"&gt;&amp;lt;h5&amp;gt;&lt;/span&gt;Interactive AR Experience&lt;span class="nt"&gt;&amp;lt;/h5&amp;gt;&lt;/span&gt;
                  &lt;span class="nt"&gt;&amp;lt;p&amp;gt;&lt;/span&gt;Experience the future of credential verification with our AR ID card system. Scan the QR code to unlock a world of interactive AR elements that provide comprehensive information.&lt;span class="nt"&gt;&amp;lt;/p&amp;gt;&lt;/span&gt;
                &lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
              &lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
              &lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"media single-feature wow fadeInUp"&lt;/span&gt; &lt;span class="na"&gt;data-wow-delay=&lt;/span&gt;&lt;span class="s"&gt;"0.4s"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
                &lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"media-left icon-border media-right-margin"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt; &lt;span class="nt"&gt;&amp;lt;span&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"fa fa-dollar-sign"&lt;/span&gt; &lt;span class="na"&gt;aria-hidden=&lt;/span&gt;&lt;span class="s"&gt;"true"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&amp;lt;/span&amp;gt;&lt;/span&gt; &lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
                &lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"media-body text-left"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
                  &lt;span class="nt"&gt;&amp;lt;h5&amp;gt;&lt;/span&gt;Save Money&lt;span class="nt"&gt;&amp;lt;/h5&amp;gt;&lt;/span&gt;
                  &lt;span class="nt"&gt;&amp;lt;p&amp;gt;&lt;/span&gt;less of hard copies and no fear of loosing the IDs&lt;span class="nt"&gt;&amp;lt;/p&amp;gt;&lt;/span&gt;
                &lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
              &lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
              &lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"media single-feature wow fadeInUp"&lt;/span&gt; &lt;span class="na"&gt;data-wow-delay=&lt;/span&gt;&lt;span class="s"&gt;"0.6s"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
                &lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"media-left icon-border media-right-margin"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt; &lt;span class="nt"&gt;&amp;lt;span&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"fa fa-hdd"&lt;/span&gt; &lt;span class="na"&gt;aria-hidden=&lt;/span&gt;&lt;span class="s"&gt;"true"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&amp;lt;/span&amp;gt;&lt;/span&gt; &lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
                &lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"media-body text-left"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
                  &lt;span class="nt"&gt;&amp;lt;h5&amp;gt;&lt;/span&gt;Ease&lt;span class="nt"&gt;&amp;lt;/h5&amp;gt;&lt;/span&gt;
                  &lt;span class="nt"&gt;&amp;lt;p&amp;gt;&lt;/span&gt;Two step process for authentication&lt;span class="nt"&gt;&amp;lt;/p&amp;gt;&lt;/span&gt;
                &lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
              &lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
          &lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/section&amp;gt;&lt;/span&gt;



&lt;span class="nt"&gt;&amp;lt;section&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"team section-padding"&lt;/span&gt; &lt;span class="na"&gt;data-scroll-index=&lt;/span&gt;&lt;span class="s"&gt;'3'&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"container"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"row"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"col-md-12"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"sectioner-header text-center"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
          &lt;span class="nt"&gt;&amp;lt;h3&amp;gt;&lt;/span&gt;Our Team&lt;span class="nt"&gt;&amp;lt;/h3&amp;gt;&lt;/span&gt;
          &lt;span class="nt"&gt;&amp;lt;span&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"line"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&amp;lt;/span&amp;gt;&lt;/span&gt;
          &lt;span class="nt"&gt;&amp;lt;p&amp;gt;&lt;/span&gt;The final year students of D.K.T.E. college have come up futuristic app and credential verification system, presenting it to you as Mega Project , Enjoy Arvis and its features .&lt;span class="nt"&gt;&amp;lt;/p&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"section-content text-center"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
          &lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"row"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"col-md-4"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
              &lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"team-detail wow bounce"&lt;/span&gt; &lt;span class="na"&gt;data-wow-delay=&lt;/span&gt;&lt;span class="s"&gt;"0.2s"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt; &lt;span class="nt"&gt;&amp;lt;img&lt;/span&gt; &lt;span class="na"&gt;src=&lt;/span&gt;&lt;span class="s"&gt;"static/images/shreya.jpg"&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"img-fluid"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
                &lt;span class="nt"&gt;&amp;lt;h4&amp;gt;&lt;/span&gt;Shreya Alase&lt;span class="nt"&gt;&amp;lt;/h4&amp;gt;&lt;/span&gt;
                &lt;span class="nt"&gt;&amp;lt;p&amp;gt;&lt;/span&gt;Front end and Data Base &lt;span class="nt"&gt;&amp;lt;/p&amp;gt;&lt;/span&gt;
              &lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"col-md-4"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
              &lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"team-detail wow bounce"&lt;/span&gt; &lt;span class="na"&gt;data-wow-delay=&lt;/span&gt;&lt;span class="s"&gt;"0.4s"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt; &lt;span class="nt"&gt;&amp;lt;img&lt;/span&gt; &lt;span class="na"&gt;src=&lt;/span&gt;&lt;span class="s"&gt;"static/images/soniya.jpg"&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"img-fluid"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
                &lt;span class="nt"&gt;&amp;lt;h4&amp;gt;&lt;/span&gt;Soniya Ankushrao &lt;span class="nt"&gt;&amp;lt;/h4&amp;gt;&lt;/span&gt;
                &lt;span class="nt"&gt;&amp;lt;p&amp;gt;&lt;/span&gt;Backend and Hosting&lt;span class="nt"&gt;&amp;lt;/p&amp;gt;&lt;/span&gt;
              &lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"col-md-4"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
              &lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"team-detail wow bounce"&lt;/span&gt; &lt;span class="na"&gt;data-wow-delay=&lt;/span&gt;&lt;span class="s"&gt;"0.6s"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt; &lt;span class="nt"&gt;&amp;lt;img&lt;/span&gt; &lt;span class="na"&gt;src=&lt;/span&gt;&lt;span class="s"&gt;"static/images/neha.jpg"&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"img-fluid"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
                &lt;span class="nt"&gt;&amp;lt;h4&amp;gt;&lt;/span&gt;Neha Mitake&lt;span class="nt"&gt;&amp;lt;/h4&amp;gt;&lt;/span&gt;
                &lt;span class="nt"&gt;&amp;lt;p&amp;gt;&lt;/span&gt;AR intigration&lt;span class="nt"&gt;&amp;lt;/p&amp;gt;&lt;/span&gt;
              &lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
          &lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/section&amp;gt;&lt;/span&gt;



&lt;span class="nt"&gt;&amp;lt;section&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"faq section-padding prelative"&lt;/span&gt; &lt;span class="na"&gt;data-scroll-index=&lt;/span&gt;&lt;span class="s"&gt;'5'&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"container"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"row"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"col-md-12"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"sectioner-header text-center"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
          &lt;span class="nt"&gt;&amp;lt;h3&amp;gt;&lt;/span&gt;More about ARVIS tech&lt;span class="nt"&gt;&amp;lt;/h3&amp;gt;&lt;/span&gt;
          &lt;span class="nt"&gt;&amp;lt;span&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"line"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&amp;lt;/span&amp;gt;&lt;/span&gt;
          &lt;span class="nt"&gt;&amp;lt;p&amp;gt;&lt;/span&gt;Discover how our AR ID card system transforms credential verification.&lt;span class="nt"&gt;&amp;lt;/p&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"section-content"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
          &lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"row"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"col-md-6 faq-content wow fadeInUp"&lt;/span&gt; &lt;span class="na"&gt;data-wow-delay=&lt;/span&gt;&lt;span class="s"&gt;"0.2s"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
              &lt;span class="nt"&gt;&amp;lt;h4&amp;gt;&lt;/span&gt;Innovation in Identification Systems&lt;span class="nt"&gt;&amp;lt;/h4&amp;gt;&lt;/span&gt;
              &lt;span class="nt"&gt;&amp;lt;p&amp;gt;&lt;/span&gt;Real-time verification ensures credentials are always up-to-date and secure..&lt;span class="nt"&gt;&amp;lt;/p&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"col-md-6 faq-content wow fadeInUp"&lt;/span&gt; &lt;span class="na"&gt;data-wow-delay=&lt;/span&gt;&lt;span class="s"&gt;"0.2s"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
              &lt;span class="nt"&gt;&amp;lt;h4&amp;gt;&lt;/span&gt;Sustainability and Paperless Solutions&lt;span class="nt"&gt;&amp;lt;/h4&amp;gt;&lt;/span&gt;
              &lt;span class="nt"&gt;&amp;lt;p&amp;gt;&lt;/span&gt;This project promotes eco-friendly practices by replacing physical documents and presentations with digital, AR-based alternatives. By reducing paper consumption, it supports sustainability goals while maintaining high efficiency and accessibility.&lt;span class="nt"&gt;&amp;lt;/p&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"col-md-6 faq-content wow fadeInUp"&lt;/span&gt; &lt;span class="na"&gt;data-wow-delay=&lt;/span&gt;&lt;span class="s"&gt;"0.4s"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
              &lt;span class="nt"&gt;&amp;lt;h4&amp;gt;&lt;/span&gt;Enhanced User Engagement&lt;span class="nt"&gt;&amp;lt;/h4&amp;gt;&lt;/span&gt;
              &lt;span class="nt"&gt;&amp;lt;p&amp;gt;&lt;/span&gt;AR technology makes mundane tasks, such as viewing credentials, engaging and interactive. Users can explore 3D models, access additional information via web links, and interact with digital elements, fostering an immersive experience.&lt;span class="nt"&gt;&amp;lt;/p&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"col-md-6 faq-content wow fadeInUp"&lt;/span&gt; &lt;span class="na"&gt;data-wow-delay=&lt;/span&gt;&lt;span class="s"&gt;"0.4s"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
              &lt;span class="nt"&gt;&amp;lt;h4&amp;gt;&lt;/span&gt;Real-Time Data Accessibilit&lt;span class="nt"&gt;&amp;lt;/h4&amp;gt;&lt;/span&gt;
              &lt;span class="nt"&gt;&amp;lt;p&amp;gt;&lt;/span&gt;With QR code scanning linked to a secure database, this solution ensures users can access relevant information instantly. It eliminates delays in retrieving data, making processes smoother and more efficient.&lt;span class="nt"&gt;&amp;lt;/p&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"col-md-6 faq-content wow fadeInUp"&lt;/span&gt; &lt;span class="na"&gt;data-wow-delay=&lt;/span&gt;&lt;span class="s"&gt;"0.6s"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
              &lt;span class="nt"&gt;&amp;lt;h4&amp;gt;&lt;/span&gt;Future Scope in Education&lt;span class="nt"&gt;&amp;lt;/h4&amp;gt;&lt;/span&gt;
              &lt;span class="nt"&gt;&amp;lt;p&amp;gt;&lt;/span&gt;The application can transform learning by integrating AR structures into educational content. Students can visualize concepts like molecular structures or historical monuments interactively, enhancing comprehension and retention.&lt;span class="nt"&gt;&amp;lt;/p&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"col-md-6 faq-content wow fadeInUp"&lt;/span&gt; &lt;span class="na"&gt;data-wow-delay=&lt;/span&gt;&lt;span class="s"&gt;"0.6s"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
              &lt;span class="nt"&gt;&amp;lt;h4&amp;gt;&lt;/span&gt;Personalization in AR Experiences&lt;span class="nt"&gt;&amp;lt;/h4&amp;gt;&lt;/span&gt;
              &lt;span class="nt"&gt;&amp;lt;p&amp;gt;&lt;/span&gt;This solution can offer users the ability to personalize their AR interactions, such as customizing their ID cards or selecting specific 3D models. This personalization enhances user satisfaction and engagement.&lt;span class="nt"&gt;&amp;lt;/p&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
          &lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/section&amp;gt;&lt;/span&gt;


&lt;span class="nt"&gt;&amp;lt;section&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"contact section-padding"&lt;/span&gt; &lt;span class="na"&gt;data-scroll-index=&lt;/span&gt;&lt;span class="s"&gt;'6'&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"container"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"row"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"col-md-12"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"sectioner-header text-center"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
          &lt;span class="nt"&gt;&amp;lt;h3&amp;gt;&lt;/span&gt;Contact us&lt;span class="nt"&gt;&amp;lt;/h3&amp;gt;&lt;/span&gt;
          &lt;span class="nt"&gt;&amp;lt;span&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"line"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&amp;lt;/span&amp;gt;&lt;/span&gt;
          &lt;span class="nt"&gt;&amp;lt;p&amp;gt;&lt;/span&gt;For intigrating Ar your association, completele athentictaion solutions from tecm ARVIS&lt;span class="nt"&gt;&amp;lt;/p&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"section-content"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
          &lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"row"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"col-sm-12 col-md-12 col-lg-8"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
              &lt;span class="nt"&gt;&amp;lt;form&lt;/span&gt; &lt;span class="na"&gt;id=&lt;/span&gt;&lt;span class="s"&gt;"contact_form"&lt;/span&gt; &lt;span class="na"&gt;action=&lt;/span&gt;&lt;span class="s"&gt;""&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
                &lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"row"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
                  &lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"col"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
                    &lt;span class="nt"&gt;&amp;lt;input&lt;/span&gt; &lt;span class="na"&gt;type=&lt;/span&gt;&lt;span class="s"&gt;"text"&lt;/span&gt; &lt;span class="na"&gt;id=&lt;/span&gt;&lt;span class="s"&gt;"your_name"&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"form-input w-100"&lt;/span&gt; &lt;span class="na"&gt;name=&lt;/span&gt;&lt;span class="s"&gt;"full-name"&lt;/span&gt; &lt;span class="na"&gt;placeholder=&lt;/span&gt;&lt;span class="s"&gt;"Full Name"&lt;/span&gt; &lt;span class="na"&gt;required&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
                  &lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
                  &lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"col"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
                    &lt;span class="nt"&gt;&amp;lt;input&lt;/span&gt; &lt;span class="na"&gt;type=&lt;/span&gt;&lt;span class="s"&gt;"email"&lt;/span&gt; &lt;span class="na"&gt;id=&lt;/span&gt;&lt;span class="s"&gt;"email"&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"form-input w-100"&lt;/span&gt; &lt;span class="na"&gt;name=&lt;/span&gt;&lt;span class="s"&gt;"email"&lt;/span&gt; &lt;span class="na"&gt;placeholder=&lt;/span&gt;&lt;span class="s"&gt;"Email"&lt;/span&gt; &lt;span class="na"&gt;required&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
                  &lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
                &lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
                &lt;span class="nt"&gt;&amp;lt;input&lt;/span&gt; &lt;span class="na"&gt;type=&lt;/span&gt;&lt;span class="s"&gt;"text"&lt;/span&gt; &lt;span class="na"&gt;id=&lt;/span&gt;&lt;span class="s"&gt;"subject"&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"form-input w-100"&lt;/span&gt; &lt;span class="na"&gt;name=&lt;/span&gt;&lt;span class="s"&gt;"subject"&lt;/span&gt; &lt;span class="na"&gt;placeholder=&lt;/span&gt;&lt;span class="s"&gt;"Subject"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
                &lt;span class="nt"&gt;&amp;lt;textarea&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"form-input w-100"&lt;/span&gt; &lt;span class="na"&gt;id=&lt;/span&gt;&lt;span class="s"&gt;"message"&lt;/span&gt; &lt;span class="na"&gt;placeholder=&lt;/span&gt;&lt;span class="s"&gt;"Message"&lt;/span&gt; &lt;span class="na"&gt;name=&lt;/span&gt;&lt;span class="s"&gt;"message"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&amp;lt;/textarea&amp;gt;&lt;/span&gt;
                &lt;span class="nt"&gt;&amp;lt;button&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"btn-grad w-100 text-uppercase"&lt;/span&gt; &lt;span class="na"&gt;type=&lt;/span&gt;&lt;span class="s"&gt;"submit"&lt;/span&gt; &lt;span class="na"&gt;name=&lt;/span&gt;&lt;span class="s"&gt;"button"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;submit&lt;span class="nt"&gt;&amp;lt;/button&amp;gt;&lt;/span&gt;
              &lt;span class="nt"&gt;&amp;lt;/form&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"col-sm-12 col-md-12 col-lg-4"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
              &lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"contact-info white"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
                &lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"contact-item media"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt; &lt;span class="nt"&gt;&amp;lt;i&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"fa fa-map-marker-alt media-left media-right-margin"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&amp;lt;/i&amp;gt;&lt;/span&gt;
                  &lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"media-body"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
                    &lt;span class="nt"&gt;&amp;lt;p&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"text-uppercase"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;Address&lt;span class="nt"&gt;&amp;lt;/p&amp;gt;&lt;/span&gt;
                    &lt;span class="nt"&gt;&amp;lt;p&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"text-uppercase"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;DKTE college , Ichalkaranji , MH, India&lt;span class="nt"&gt;&amp;lt;/p&amp;gt;&lt;/span&gt;
                  &lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
                &lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
                &lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"contact-item media"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt; &lt;span class="nt"&gt;&amp;lt;i&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"fa fa-mobile media-left media-right-margin"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&amp;lt;/i&amp;gt;&lt;/span&gt;
                  &lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"media-body"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
                    &lt;span class="nt"&gt;&amp;lt;p&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"text-uppercase"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;Phone&lt;span class="nt"&gt;&amp;lt;/p&amp;gt;&lt;/span&gt;
                    &lt;span class="nt"&gt;&amp;lt;p&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"text-uppercase"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&amp;lt;a&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"text-white"&lt;/span&gt; &lt;span class="na"&gt;href=&lt;/span&gt;&lt;span class="s"&gt;"tel:+15173977100"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&amp;lt;/a&amp;gt;&lt;/span&gt;9373745097 &lt;span class="nt"&gt;&amp;lt;/p&amp;gt;&lt;/span&gt;
                  &lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
                &lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
                &lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"contact-item media"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt; &lt;span class="nt"&gt;&amp;lt;i&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"fa fa-envelope media-left media-right-margin"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&amp;lt;/i&amp;gt;&lt;/span&gt;
                  &lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"media-body"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
                    &lt;span class="nt"&gt;&amp;lt;p&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"text-uppercase"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;E-mail&lt;span class="nt"&gt;&amp;lt;/p&amp;gt;&lt;/span&gt;
                    &lt;span class="nt"&gt;&amp;lt;p&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"text-uppercase"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;soniyaankushrao195@gmai.com
                    &lt;span class="nt"&gt;&amp;lt;/p&amp;gt;&lt;/span&gt;
                  &lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
                &lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
                &lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"contact-item media"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt; &lt;span class="nt"&gt;&amp;lt;i&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"fa fa-clock media-left media-right-margin"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&amp;lt;/i&amp;gt;&lt;/span&gt;
                  &lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"media-body"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
                    &lt;span class="nt"&gt;&amp;lt;p&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"text-uppercase"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;Working Hours&lt;span class="nt"&gt;&amp;lt;/p&amp;gt;&lt;/span&gt;
                    &lt;span class="nt"&gt;&amp;lt;p&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"text-uppercase"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;Mon-Fri 9.00 AM to 5.00PM.&lt;span class="nt"&gt;&amp;lt;/p&amp;gt;&lt;/span&gt;
                  &lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
                &lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
              &lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
          &lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/section&amp;gt;&lt;/span&gt;




&lt;span class="nt"&gt;&amp;lt;footer&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"footer-copy"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"container-fluid"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"row"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"col-md-12"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;p&amp;gt;&lt;/span&gt;2024 &lt;span class="ni"&gt;&amp;amp;copy;&lt;/span&gt; ARVIS tech &lt;span class="nt"&gt;&amp;lt;/p&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/footer&amp;gt;&lt;/span&gt;


&lt;span class="nt"&gt;&amp;lt;script &lt;/span&gt;&lt;span class="na"&gt;src=&lt;/span&gt;&lt;span class="s"&gt;"https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&amp;lt;/script&amp;gt;&lt;/span&gt; 
&lt;span class="nt"&gt;&amp;lt;script &lt;/span&gt;&lt;span class="na"&gt;src=&lt;/span&gt;&lt;span class="s"&gt;"https://stackpath.bootstrapcdn.com/bootstrap/4.1.1/js/bootstrap.min.js"&lt;/span&gt; &lt;span class="na"&gt;integrity=&lt;/span&gt;&lt;span class="s"&gt;"sha384-smHYKdLADwkXOn1EmN1qk/HfnUcbVRZyYmZ4qpPea6sjB/pTJ0euyQp0Mk8ck+5T"&lt;/span&gt; &lt;span class="na"&gt;crossorigin=&lt;/span&gt;&lt;span class="s"&gt;"anonymous"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&amp;lt;/script&amp;gt;&lt;/span&gt; 
&lt;span class="nt"&gt;&amp;lt;script &lt;/span&gt;&lt;span class="na"&gt;src=&lt;/span&gt;&lt;span class="s"&gt;"https://cdn.jsdelivr.net/bxslider/4.2.12/jquery.bxslider.min.js"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&amp;lt;/script&amp;gt;&lt;/span&gt; 
&lt;span class="c"&gt;&amp;lt;!-- scrollIt js --&amp;gt;&lt;/span&gt; 
&lt;span class="nt"&gt;&amp;lt;script &lt;/span&gt;&lt;span class="na"&gt;src=&lt;/span&gt;&lt;span class="s"&gt;"static/js/scrollIt.min.js"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&amp;lt;/script&amp;gt;&lt;/span&gt; 
&lt;span class="nt"&gt;&amp;lt;script &lt;/span&gt;&lt;span class="na"&gt;src=&lt;/span&gt;&lt;span class="s"&gt;"static/js/wow.min.js"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&amp;lt;/script&amp;gt;&lt;/span&gt; 
&lt;span class="nt"&gt;&amp;lt;script&amp;gt;&lt;/span&gt;
    &lt;span class="nx"&gt;wow&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nc"&gt;WOW&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
    &lt;span class="nx"&gt;wow&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;init&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;span class="nf"&gt;$&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;document&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nf"&gt;ready&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kd"&gt;function&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;e&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;

    &lt;span class="nf"&gt;$&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;#video-icon&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nf"&gt;on&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;click&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="kd"&gt;function&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;e&lt;/span&gt;&lt;span class="p"&gt;){&lt;/span&gt;
    &lt;span class="nx"&gt;e&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;preventDefault&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
    &lt;span class="nf"&gt;$&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;.video-popup&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nf"&gt;css&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;display&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;flex&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="nf"&gt;$&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;.iframe-src&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nf"&gt;slideDown&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
    &lt;span class="p"&gt;});&lt;/span&gt;
    &lt;span class="nf"&gt;$&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;.video-popup&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nf"&gt;on&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;click&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="kd"&gt;function&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;e&lt;/span&gt;&lt;span class="p"&gt;){&lt;/span&gt;
    &lt;span class="kd"&gt;var&lt;/span&gt; &lt;span class="nx"&gt;$target&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;e&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;target&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;nodeName&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="kd"&gt;var&lt;/span&gt; &lt;span class="nx"&gt;video_src&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;$&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="k"&gt;this&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nf"&gt;find&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;iframe&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nf"&gt;attr&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;src&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="k"&gt;if&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;$target&lt;/span&gt; &lt;span class="o"&gt;!=&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;IFRAME&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;){&lt;/span&gt;
    &lt;span class="nf"&gt;$&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;.video-popup&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nf"&gt;fadeOut&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
    &lt;span class="nf"&gt;$&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;.iframe-src&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nf"&gt;slideUp&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
    &lt;span class="nf"&gt;$&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;.video-popup iframe&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nf"&gt;attr&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;src&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt; &lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="nf"&gt;$&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;.video-popup iframe&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nf"&gt;attr&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;src&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="nx"&gt;video_src&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;
    &lt;span class="p"&gt;});&lt;/span&gt;

    &lt;span class="nf"&gt;$&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;.slider&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nf"&gt;bxSlider&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;
    &lt;span class="na"&gt;pager&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;false&lt;/span&gt;
    &lt;span class="p"&gt;});&lt;/span&gt;
&lt;span class="p"&gt;});&lt;/span&gt;

&lt;span class="nf"&gt;$&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;window&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nf"&gt;on&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;scroll&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="nf"&gt;function &lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;

    &lt;span class="kd"&gt;var&lt;/span&gt; &lt;span class="nx"&gt;bodyScroll&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;$&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;window&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nf"&gt;scrollTop&lt;/span&gt;&lt;span class="p"&gt;(),&lt;/span&gt;
    &lt;span class="nx"&gt;navbar&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;$&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;.navbar&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

    &lt;span class="k"&gt;if&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;bodyScroll&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="mi"&gt;50&lt;/span&gt;&lt;span class="p"&gt;){&lt;/span&gt;
    &lt;span class="nf"&gt;$&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;.navbar-logo img&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nf"&gt;attr&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;src&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;images/logo-black.png&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="nx"&gt;navbar&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;addClass&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;nav-scroll&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="k"&gt;else&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nf"&gt;$&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;.navbar-logo img&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nf"&gt;attr&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;src&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;images/logo.png&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="nx"&gt;navbar&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;removeClass&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;nav-scroll&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="p"&gt;});&lt;/span&gt;
&lt;span class="nf"&gt;$&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;window&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nf"&gt;on&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;load&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="nf"&gt;function &lt;/span&gt;&lt;span class="p"&gt;(){&lt;/span&gt;
    &lt;span class="kd"&gt;var&lt;/span&gt; &lt;span class="nx"&gt;bodyScroll&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;$&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;window&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nf"&gt;scrollTop&lt;/span&gt;&lt;span class="p"&gt;(),&lt;/span&gt;
    &lt;span class="nx"&gt;navbar&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;$&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;.navbar&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

    &lt;span class="k"&gt;if&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;bodyScroll&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="mi"&gt;50&lt;/span&gt;&lt;span class="p"&gt;){&lt;/span&gt;
    &lt;span class="nf"&gt;$&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;.navbar-logo img&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nf"&gt;attr&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;src&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;images/logo-black.png&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="nx"&gt;navbar&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;addClass&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;nav-scroll&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="k"&gt;else&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nf"&gt;$&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;.navbar-logo img&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nf"&gt;attr&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;src&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;images/logo-white.png&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="nx"&gt;navbar&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;removeClass&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;nav-scroll&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;

    &lt;span class="nx"&gt;$&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;scrollIt&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;

    &lt;span class="na"&gt;easing&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;swing&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;      &lt;span class="c1"&gt;// the easing function for animation&lt;/span&gt;
    &lt;span class="na"&gt;scrollTime&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;900&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;       &lt;span class="c1"&gt;// how long (in ms) the animation takes&lt;/span&gt;
    &lt;span class="na"&gt;activeClass&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;active&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="c1"&gt;// class given to the active nav element&lt;/span&gt;
    &lt;span class="na"&gt;onPageChange&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;null&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;    &lt;span class="c1"&gt;// function(pageIndex) that is called when page is changed&lt;/span&gt;
    &lt;span class="na"&gt;topOffset&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;63&lt;/span&gt;
    &lt;span class="p"&gt;});&lt;/span&gt;
&lt;span class="p"&gt;});&lt;/span&gt;

&lt;span class="nt"&gt;&amp;lt;/script&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/body&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/html&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



</description>
    </item>
    <item>
      <title>face_recg_systems ( dkte cs )</title>
      <dc:creator>SIDDHARTH PATIL</dc:creator>
      <pubDate>Sat, 26 Apr 2025 18:21:11 +0000</pubDate>
      <link>https://dev.to/sidatgithubcode/facerecgsystems-dkte-cs--15pg</link>
      <guid>https://dev.to/sidatgithubcode/facerecgsystems-dkte-cs--15pg</guid>
      <description>&lt;h1&gt;
  
  
  Presentation Scripts for Visual Vault Team Members
&lt;/h1&gt;

&lt;h2&gt;
  
  
  PRITI TOSHNIWAL - ML and CV
&lt;/h2&gt;

&lt;p&gt;Good [morning/afternoon], everyone. My name is Priti Toshniwal, and I was responsible for the Machine Learning and Computer Vision components of Visual Vault, the heart of our face recognition authentication system. Our goal was to create a secure and reliable way to authenticate users before granting access to the vault, and my role was to ensure that the face recognition system was accurate, fast, and robust enough to handle real-world scenarios.&lt;/p&gt;

&lt;p&gt;I started by researching and selecting the right tools for face recognition. After evaluating several libraries, I chose Python’s &lt;code&gt;face_recognition&lt;/code&gt; library, built on top of &lt;code&gt;dlib&lt;/code&gt;, because of its high accuracy and ease of integration with our Flask backend. My first task was to create a pipeline for enrolling users into the system. This involved capturing images of authorized users, extracting facial encodings—unique numerical representations of facial features—and storing them securely in our database. I used OpenCV to preprocess images, ensuring consistent lighting and alignment to improve recognition accuracy.&lt;/p&gt;

&lt;p&gt;The next challenge was real-time face authentication. When a user approaches the vault, the ESP32 camera captures their image and sends it to our server via an API. My code processes this image, extracts its facial encoding, and compares it against the stored encodings using a Euclidean distance metric. If the distance is below a threshold, the user is authenticated. I fine-tuned this threshold to balance security and usability, minimizing false positives while ensuring authorized users aren’t rejected due to minor variations like lighting changes or slight pose differences.&lt;/p&gt;

&lt;p&gt;One of the toughest challenges was handling edge cases, like low-light conditions or partial occlusions (e.g., glasses or masks). To address this, I implemented data augmentation during training, simulating various lighting conditions and occlusions. I also integrated a fallback mechanism that prompts the user to adjust their position if the confidence score is too low. This made the system more robust and user-friendly.&lt;/p&gt;

&lt;p&gt;Finally, I worked closely with Ishwari, our backend lead, to integrate the ML pipeline into the Flask server. This involved creating API endpoints for enrollment and authentication and ensuring the system could handle multiple requests efficiently. I also collaborated with Piyusha to ensure the ESP32 camera’s image quality was sufficient for reliable recognition.&lt;/p&gt;

&lt;p&gt;In summary, my work on Visual Vault enabled secure and seamless face-based authentication, making the vault accessible only to authorized users. I’m proud of how the ML and CV components came together to deliver a cutting-edge feature for our web app.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Understanding Block&lt;/strong&gt;:&lt;br&gt;&lt;br&gt;
Priti Toshniwal was responsible for designing and implementing the Machine Learning and Computer Vision components of Visual Vault. Her tasks included developing the face recognition pipeline using Python’s &lt;code&gt;face_recognition&lt;/code&gt; and OpenCV, handling image preprocessing, facial encoding extraction, and real-time authentication. She optimized the system for accuracy and robustness, addressing edge cases like low light and occlusions. Priti also integrated the ML pipeline with the Flask backend and collaborated with the IoT and backend teams to ensure seamless functionality. Her contributions were critical to enabling secure, face-based access to the vault.&lt;/p&gt;




&lt;h2&gt;
  
  
  PIYUSHA TOMKE - IoT and Electronics
&lt;/h2&gt;

&lt;p&gt;Hello, everyone. I’m Piyusha Tomke, and I handled the IoT and Electronics components of Visual Vault, focusing on the hardware and communication systems that physically control the vault’s lock. My role was to bridge the software and hardware worlds, ensuring that our web app could securely open the vault door when an authorized user was authenticated.&lt;/p&gt;

&lt;p&gt;The core hardware component was the ESP32 microcontroller, chosen for its built-in Wi-Fi, camera module, and GPIO pins for controlling external devices. My first task was setting up the ESP32-CAM to capture images for face recognition. I programmed the ESP32 using the Arduino IDE and configured it to connect to our local Wi-Fi network. When a user approaches the vault, the ESP32 captures an image and sends it to our Flask server via a REST API. I worked with Priti to ensure the image quality met the requirements of the face recognition system, tweaking parameters like resolution and compression.&lt;/p&gt;

&lt;p&gt;Next, I designed the vault’s locking mechanism. The vault door is controlled by a servo motor, which I interfaced with the ESP32’s GPIO pins. When the Flask server authenticates a user, it sends a signal to the ESP32 via an API endpoint I created. My code on the ESP32 listens for this signal and triggers the servo to unlock the door. To ensure security, I implemented a timeout mechanism—if no valid authentication occurs within a set period, the system resets to a locked state.&lt;/p&gt;

&lt;p&gt;One challenge was ensuring reliable communication between the ESP32 and the server, especially under varying network conditions. I implemented error handling and retry logic in the ESP32’s firmware to manage network failures gracefully. I also added a status LED to provide visual feedback to users, indicating whether the system is ready, processing, or has encountered an error.&lt;/p&gt;

&lt;p&gt;Security was a priority. To prevent unauthorized access, I encrypted the API communication between the ESP32 and the server using HTTPS. I also worked with Ishwari to ensure the API endpoints were protected with authentication tokens, so only our server could send commands to the ESP32.&lt;/p&gt;

&lt;p&gt;Collaborating with the team was key. I worked with Priti to align the ESP32’s image capture with the ML pipeline and with Ishwari to integrate the IoT system with the backend. My contributions ensured that Visual Vault’s hardware and software components worked seamlessly to provide a secure and user-friendly experience.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Understanding Block&lt;/strong&gt;:&lt;br&gt;&lt;br&gt;
Piyusha Tomke was responsible for the IoT and Electronics components of Visual Vault. She configured the ESP32-CAM to capture images for face recognition and programmed it to communicate with the Flask server via a REST API. Piyusha designed the vault’s locking mechanism using a servo motor controlled by the ESP32 and implemented secure API communication with error handling and timeouts. She collaborated with the ML and backend teams to ensure hardware-software integration. Her work enabled the physical operation of the vault, making Visual Vault a fully functional IoT-enabled system.&lt;/p&gt;




&lt;h2&gt;
  
  
  ISHWARI SARDA - Backend and Server
&lt;/h2&gt;

&lt;p&gt;Good [morning/afternoon], everyone. I’m Ishwari Sarda, and I led the backend and server development for Visual Vault. My role was to build a robust and secure server infrastructure that ties together the face recognition system, IoT hardware, and frontend interface, ensuring seamless communication and data management.&lt;/p&gt;

&lt;p&gt;The backbone of our web app is a Flask server, chosen for its lightweight nature and compatibility with Python-based ML libraries. My first task was designing the server architecture. I created a modular structure with separate routes for user enrollment, authentication, admin access, and IoT communication. Each route was designed to handle specific tasks, such as processing images for face recognition or sending commands to the ESP32.&lt;/p&gt;

&lt;p&gt;For user enrollment, I built an API endpoint that accepts user images and metadata, passes them to Priti’s ML pipeline for facial encoding, and stores the encodings in a SQLite database. I chose SQLite for its simplicity and suitability for our small-scale application. To ensure security, I encrypted sensitive data, like facial encodings and admin passwords, using Flask-Bcrypt.&lt;/p&gt;

&lt;p&gt;The authentication process was a critical component. When the ESP32 sends an image, my server receives it via a POST request, forwards it to the ML pipeline, and returns the authentication result. If authenticated, the server sends a command to the ESP32 to unlock the vault. I implemented JWT (JSON Web Tokens) to secure these API endpoints, ensuring only authorized devices could interact with the server.&lt;/p&gt;

&lt;p&gt;Admin access was another key feature. I created a password-protected admin panel, accessible via the frontend, where admins can manage users and monitor system activity. The admin password is hashed and stored securely, and I added rate-limiting to prevent brute-force attacks.&lt;/p&gt;

&lt;p&gt;One challenge was optimizing server performance. Since face recognition is computationally intensive, I used multithreading to handle concurrent requests efficiently. I also implemented logging and error handling to monitor server health and debug issues quickly.&lt;/p&gt;

&lt;p&gt;Collaboration was essential. I worked with Priti to integrate the ML pipeline, with Piyusha to set up IoT communication, and with Khusboo to ensure the frontend could interact with the backend via REST APIs. My work ensured that Visual Vault’s backend was secure, scalable, and reliable, providing a solid foundation for the entire system.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Understanding Block&lt;/strong&gt;:&lt;br&gt;&lt;br&gt;
Ishwari Sarda was responsible for developing and managing the backend and server infrastructure of Visual Vault. She built a Flask-based server with API endpoints for user enrollment, authentication, admin access, and IoT communication. Ishwari designed the database schema, implemented security measures like JWT and password hashing, and optimized server performance with multithreading. She collaborated with the ML, IoT, and frontend teams to ensure seamless integration. Her contributions provided a secure and efficient backend that powered Visual Vault’s core functionality.&lt;/p&gt;




&lt;h2&gt;
  
  
  KHUSBOO PUROHIT - Frontend and Flow
&lt;/h2&gt;

&lt;p&gt;Hello, everyone. I’m Khusboo Purohit, and I was responsible for the frontend development and user flow of Visual Vault. My goal was to create an intuitive, visually appealing, and responsive web interface that makes it easy for users to interact with the vault’s authentication system and for admins to manage the application.&lt;/p&gt;

&lt;p&gt;I built the frontend using React for its component-based architecture and smooth animations, combined with HTML, CSS, and JavaScript. For styling, I used Tailwind CSS to create a clean and modern look while ensuring responsiveness across devices. The user interface consists of three main sections: the user authentication page, the admin panel, and a status dashboard.&lt;/p&gt;

&lt;p&gt;The user authentication page is where the face recognition process begins. I designed a simple interface with a live camera feed (displaying the ESP32’s captured image) and a button to initiate authentication. To enhance user experience, I added React animations using Framer Motion to provide smooth transitions and feedback, like a loading spinner during authentication and a success/failure message based on the server’s response.&lt;/p&gt;

&lt;p&gt;The admin panel was a critical component. I created a password-protected interface where admins can enroll new users, delete users, and view authentication logs. I used React’s state management to handle form inputs and API calls, connecting to Ishwari’s backend via Axios for secure communication. The panel includes a file upload feature for user images during enrollment, with validation to ensure only valid image formats are accepted.&lt;/p&gt;

&lt;p&gt;For the status dashboard, I built a real-time monitoring tool that displays the vault’s status (locked/unlocked) and recent authentication attempts. I used WebSocket to fetch live updates from the server, ensuring admins have up-to-date information.&lt;/p&gt;

&lt;p&gt;One challenge was ensuring a seamless user flow. I mapped out the entire user journey—from approaching the vault to authentication and admin management—and designed the interface to guide users intuitively. I also added error messages and tooltips to handle cases like failed authentications or invalid inputs.&lt;/p&gt;

&lt;p&gt;Collaboration was key. I worked with Ishwari to integrate the frontend with the backend APIs, with Priti to display ML results, and with Piyusha to show the ESP32’s camera feed. My contributions made Visual Vault not only functional but also user-friendly and visually engaging.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Understanding Block&lt;/strong&gt;:&lt;br&gt;&lt;br&gt;
Khusboo Purohit was responsible for the frontend development and user flow of Visual Vault. She built a responsive and animated interface using React, Tailwind CSS, and JavaScript, with features like a user authentication page, admin panel, and status dashboard. Khusboo designed an intuitive user flow, implemented real-time updates with WebSocket, and added animations with Framer Motion for a polished experience. She collaborated with the backend, ML, and IoT teams to integrate the frontend with the system. Her work ensured Visual Vault was accessible, intuitive, and visually appealing.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>LabBuddy</title>
      <dc:creator>SIDDHARTH PATIL</dc:creator>
      <pubDate>Tue, 15 Apr 2025 04:33:53 +0000</pubDate>
      <link>https://dev.to/sidatgithubcode/labbuddy-49pk</link>
      <guid>https://dev.to/sidatgithubcode/labbuddy-49pk</guid>
      <description>&lt;p&gt;⸻&lt;/p&gt;

&lt;p&gt;Abstract&lt;/p&gt;

&lt;p&gt;The Electronics Lab Assistant is a next-generation AI-powered tool built to revolutionize how students, hobbyists, and engineers interact with electronics. At its core, it is a locally hosted wrapper around Meta’s LLaMA 3, delivering rapid, offline, and context-aware assistance tailored for circuit design, debugging, instrumentation, and theoretical concepts. Unlike cloud-based AI solutions, this system leverages the full potential of on-device computation, ensuring data privacy, zero latency, and seamless integration with lab hardware through GPIO, UART, and I2C interfaces. Crafted with a high-performance Flask backend and finely tuned prompt engineering, the assistant can not only simulate electronic scenarios but also suggest real-world component configurations, signal analyses, and safety measures. This project stands as a sophisticated bridge between AI and embedded electronics, placing unprecedented intelligence in the hands of learners and developers.&lt;/p&gt;

&lt;p&gt;⸻&lt;/p&gt;

&lt;p&gt;Objective&lt;/p&gt;

&lt;p&gt;To design and deploy an intelligent, self-contained AI lab assistant that can understand and respond to electronics-related queries, simulate circuit behavior, offer debugging support, and assist in component selection and calculations — all in real-time and without requiring cloud access. The objective includes building a modular, scalable system that wraps around LLaMA 3 locally, providing a responsive conversational interface that feels like talking to a senior electronics engineer. The assistant is also capable of adapting to IoT and automation workflows through integration with Raspberry Pi and similar microcontrollers.&lt;/p&gt;

&lt;p&gt;⸻&lt;/p&gt;

&lt;p&gt;Block Diagram&lt;/p&gt;

&lt;p&gt;+-------------------+       +------------------+       +-----------------------+&lt;br&gt;
|   Frontend UI     | &amp;lt;---&amp;gt; |  Flask API Layer | &amp;lt;---&amp;gt; |   LLaMA 3 Inference   |&lt;br&gt;
| (Web Interface)   |       | (Prompt Engine)  |       | (Running Locally)     |&lt;br&gt;
+-------------------+       +------------------+       +-----------------------+&lt;br&gt;
        |                                                        |&lt;br&gt;
        |                                                        |&lt;br&gt;
        v                                                        v&lt;br&gt;
+-------------------+                                   +------------------------+&lt;br&gt;
|  User Interactions|                                   |  Local DB + Logs       |&lt;br&gt;
| (Query, Inputs)   |                                   | (Previous sessions)    |&lt;br&gt;
+-------------------+                                   +------------------------+&lt;br&gt;
        |                                                        |&lt;br&gt;
        v                                                        v&lt;br&gt;
+--------------------------------------------------------------------------------+&lt;br&gt;
|                        Optional: GPIO / I2C / UART Bridge                      |&lt;br&gt;
|      (To enable real hardware interfacing, diagnostics, or lab automation)     |&lt;br&gt;
+--------------------------------------------------------------------------------+&lt;/p&gt;

&lt;p&gt;⸻&lt;/p&gt;

&lt;p&gt;Conclusion&lt;/p&gt;

&lt;p&gt;This project demonstrates the fusion of cutting-edge language models with practical electronics to create a truly autonomous and context-aware lab assistant. By harnessing the power of local AI inference, the solution bypasses the limitations of cloud dependence and opens the door to future extensions such as AI-powered instrumentation, real-time waveform analysis, and educational simulations. The successful implementation of this assistant signifies a leap forward in AI-human interaction within technical domains, bringing personalized engineering mentorship to anyone with a computer and a passion for electronics.&lt;/p&gt;

&lt;p&gt;⸻&lt;/p&gt;

&lt;p&gt;References&lt;br&gt;
    • Meta AI: LLaMA 3 Model Documentation&lt;br&gt;
    • Flask Web Framework Documentation&lt;br&gt;
    • PySerial, RPi.GPIO Libraries&lt;br&gt;
    • Hugging Face Transformers (for prompt formatting)&lt;br&gt;
    • Electronic Devices and Circuit Theory – Robert Boylestad&lt;br&gt;
    • Raspberry Pi Documentation&lt;/p&gt;

&lt;p&gt;⸻&lt;/p&gt;

&lt;p&gt;Observation&lt;/p&gt;

&lt;p&gt;Throughout development, it was observed that prompt clarity had a significant impact on the precision of LLaMA 3’s responses, necessitating a layered prompt management system. Additionally, embedding the assistant in a local environment showed clear advantages in speed and customization. The assistant successfully answered queries on components like BJTs, op-amps, timers, and even provided pseudo-codes for interfacing sensors. Future work will include voice input integration, live schematic generation, and advanced semantic memory to retain learning across sessions.&lt;/p&gt;

&lt;p&gt;⸻&lt;/p&gt;

</description>
    </item>
    <item>
      <title>unhrc</title>
      <dc:creator>SIDDHARTH PATIL</dc:creator>
      <pubDate>Sun, 13 Apr 2025 01:15:45 +0000</pubDate>
      <link>https://dev.to/sidatgithubcode/unhrc-3lic</link>
      <guid>https://dev.to/sidatgithubcode/unhrc-3lic</guid>
      <description>&lt;p&gt;Awesome! Representing &lt;strong&gt;Israel in UNHRC&lt;/strong&gt; is a powerful and high-stakes position. Here's a &lt;strong&gt;complete, winning strategy&lt;/strong&gt; broken into &lt;strong&gt;essential sections&lt;/strong&gt; so you’re ready to dominate your MUN:&lt;/p&gt;




&lt;h2&gt;
  
  
  🇮🇱 ISRAEL in UNHRC: MUN Guide (Agenda: &lt;em&gt;Human Rights Violations in War Zones&lt;/em&gt;)
&lt;/h2&gt;




&lt;h3&gt;
  
  
  🔷 1. &lt;strong&gt;Know Your Country's Stance&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Israel focuses on:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;National security above all.&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Claims to act &lt;strong&gt;in self-defense&lt;/strong&gt; against terrorism.&lt;/li&gt;
&lt;li&gt;Asserts that Hamas and other groups use &lt;strong&gt;civilians as shields&lt;/strong&gt;, making warfare complex.&lt;/li&gt;
&lt;li&gt;Israel &lt;strong&gt;acknowledges collateral damage&lt;/strong&gt;, but blames it on &lt;strong&gt;enemy tactics&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Promotes its &lt;strong&gt;humanitarian efforts&lt;/strong&gt; (e.g., warnings before airstrikes, field hospitals).&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  🔷 2. &lt;strong&gt;Agenda Breakdown: Human Rights in War Zones&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;You must cover:&lt;/p&gt;

&lt;h4&gt;
  
  
  🔹 &lt;strong&gt;Global Conflicts&lt;/strong&gt;
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;Denounce &lt;strong&gt;war crimes by other countries&lt;/strong&gt; (e.g., Russia in Ukraine, Syria, Iran).&lt;/li&gt;
&lt;li&gt;Push for &lt;strong&gt;equal scrutiny&lt;/strong&gt;—say: “Why only focus on Israel?”&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  🔹 &lt;strong&gt;Indian Subcontinent&lt;/strong&gt;
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;Neutral stance.&lt;/li&gt;
&lt;li&gt;Acknowledge concern, but &lt;strong&gt;avoid comparing with Israel&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Use this to emphasize how &lt;strong&gt;conflicts worldwide&lt;/strong&gt; involve &lt;strong&gt;civilian suffering&lt;/strong&gt;, not just Israel.&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  🔷 3. &lt;strong&gt;Core Diplomatic Arguments&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Use these &lt;strong&gt;defensive&lt;/strong&gt; and &lt;strong&gt;offensive&lt;/strong&gt; points:&lt;/p&gt;

&lt;h4&gt;
  
  
  ✅ DEFENSE
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;Israel has &lt;strong&gt;a right to defend itself&lt;/strong&gt; under Article 51 of the UN Charter.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Hamas &amp;amp; other militant groups&lt;/strong&gt; embed themselves in civilian areas—this &lt;strong&gt;violates IHL&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Israel follows &lt;strong&gt;rules of war&lt;/strong&gt; (warns civilians, selective targeting).&lt;/li&gt;
&lt;li&gt;Israel is a &lt;strong&gt;democracy&lt;/strong&gt; with courts that investigate alleged abuses.&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  🔥 OFFENSE
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;Criticize &lt;strong&gt;biased resolutions&lt;/strong&gt; against Israel in the UNHRC.&lt;/li&gt;
&lt;li&gt;Demand &lt;strong&gt;equal treatment&lt;/strong&gt; of violations in:

&lt;ul&gt;
&lt;li&gt;Syria&lt;/li&gt;
&lt;li&gt;Iran&lt;/li&gt;
&lt;li&gt;Russia&lt;/li&gt;
&lt;li&gt;Sudan&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;Highlight how &lt;strong&gt;non-state actors&lt;/strong&gt; like Hamas, Hezbollah, etc., &lt;strong&gt;break every humanitarian law&lt;/strong&gt;.&lt;/li&gt;

&lt;/ul&gt;




&lt;h3&gt;
  
  
  🔷 4. &lt;strong&gt;Key Documents You Must Quote&lt;/strong&gt;
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Geneva Conventions&lt;/strong&gt; – Israel claims compliance.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;UDHR&lt;/strong&gt; – Israel supports human rights, but says &lt;em&gt;security threats override unrestricted freedoms&lt;/em&gt; during war.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;UN Charter Article 51&lt;/strong&gt; – Right to self-defense.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Rome Statute&lt;/strong&gt; – You can say Israel is not under ICC jurisdiction, unlike others.&lt;/li&gt;
&lt;/ol&gt;




&lt;h3&gt;
  
  
  🔷 5. &lt;strong&gt;Tactical Strategy for MUN&lt;/strong&gt;
&lt;/h3&gt;

&lt;h4&gt;
  
  
  🧠 Research &amp;amp; Prep:
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;Prepare stats: how many rockets Hamas fired.&lt;/li&gt;
&lt;li&gt;Mention Israeli &lt;strong&gt;civilian casualties&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Research &lt;strong&gt;IDF Code of Conduct&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Bring quotes from &lt;strong&gt;Israeli officials&lt;/strong&gt; &amp;amp; &lt;strong&gt;international observers&lt;/strong&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  🧠 During Committee:
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Stay calm&lt;/strong&gt; under pressure — other delegates may attack you.&lt;/li&gt;
&lt;li&gt;Build &lt;strong&gt;alliances quietly&lt;/strong&gt; with neutral or Western states (USA, Germany, UK).&lt;/li&gt;
&lt;li&gt;Emphasize &lt;strong&gt;bias&lt;/strong&gt; in past UNHRC resolutions.&lt;/li&gt;
&lt;li&gt;Use words like: &lt;em&gt;"context"&lt;/em&gt;, &lt;em&gt;"complex battlefield"&lt;/em&gt;, &lt;em&gt;"terrorism"&lt;/em&gt;, &lt;em&gt;"shielding tactics"&lt;/em&gt;, &lt;em&gt;"proportionality"&lt;/em&gt;.&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  🔷 6. &lt;strong&gt;Resolution Writing Tips&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;In the resolution:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Add clauses like:

&lt;ul&gt;
&lt;li&gt;“&lt;strong&gt;Strongly condemns&lt;/strong&gt; the use of civilian infrastructure by non-state actors.”&lt;/li&gt;
&lt;li&gt;“&lt;strong&gt;Calls for impartial investigations&lt;/strong&gt; into human rights violations in all conflict zones.”&lt;/li&gt;
&lt;li&gt;“&lt;strong&gt;Supports the creation of dialogue platforms&lt;/strong&gt; to address civilian protection.”&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;Avoid mentioning Israel directly in negative context.&lt;/li&gt;

&lt;/ul&gt;




&lt;h3&gt;
  
  
  🧠 Bonus: One-Liners to Use in Debate
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;“No country should be expected to tolerate rocket fire on its civilians.”&lt;/li&gt;
&lt;li&gt;“Every state has a right to defend its people under international law.”&lt;/li&gt;
&lt;li&gt;“Let us not politicize human rights by selective outrage.”&lt;/li&gt;
&lt;li&gt;“Israel seeks peace, but not at the cost of its citizens’ safety.”&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  ✅ TL;DR – To Win:
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Defend Israel’s actions&lt;/strong&gt; using international law.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Shift the focus&lt;/strong&gt; to global violations.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Question UNHRC’s bias&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Propose balanced, fair resolutions&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Be respectful yet assertive&lt;/strong&gt;.&lt;/li&gt;
&lt;/ol&gt;




&lt;p&gt;Would you like a &lt;strong&gt;speech template&lt;/strong&gt;, &lt;strong&gt;opening statement&lt;/strong&gt;, or &lt;strong&gt;resolution clause drafts&lt;/strong&gt;? Just say the word, and I’ll deliver.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>for soniya - shreya</title>
      <dc:creator>SIDDHARTH PATIL</dc:creator>
      <pubDate>Sat, 05 Apr 2025 04:11:17 +0000</pubDate>
      <link>https://dev.to/sidatgithubcode/for-soniya-shreya-41a9</link>
      <guid>https://dev.to/sidatgithubcode/for-soniya-shreya-41a9</guid>
      <description>&lt;p&gt;`from flask import Flask, render_template, request, abort&lt;br&gt;
import requests&lt;br&gt;
import os&lt;br&gt;
from werkzeug.utils import secure_filename&lt;/p&gt;

&lt;p&gt;app = Flask(&lt;strong&gt;name&lt;/strong&gt;)&lt;/p&gt;

&lt;h1&gt;
  
  
  Create necessary directories
&lt;/h1&gt;

&lt;p&gt;os.makedirs('static/images', exist_ok=True)&lt;/p&gt;

&lt;p&gt;@app.route('/')&lt;br&gt;
def index():&lt;br&gt;
    return render_template('index.html')&lt;/p&gt;

&lt;p&gt;@app.route('/fetch/&lt;a&gt;path:image_url&lt;/a&gt;')&lt;br&gt;
def fetch_image(image_url):&lt;br&gt;
    try:&lt;br&gt;
        # Fetch image from provided URL&lt;br&gt;
        response = requests.get(image_url, stream=True)&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;    if response.status_code != 200:
        return abort(404, "Could not fetch image from URL")

    # Generate a secure filename for the image
    filename = secure_filename(image_url.split('/')[-1])
    if not filename.endswith('.png'):
        filename = filename.split('.')[0] + '.png'

    # Save the image
    img_path = os.path.join('static/images', filename)
    with open(img_path, 'wb') as f:
        for chunk in response.iter_content(1024):
            f.write(chunk)

    # Store image info in a variable that will be passed to template
    img1 = {
        'filename': filename,
        'path': f'images/{filename}',
        'source_url': image_url
    }

    return render_template('image.html', img1=img1)

except Exception as e:
    return abort(500, f"Error processing image: {str(e)}")
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;if &lt;strong&gt;name&lt;/strong&gt; == '&lt;strong&gt;main&lt;/strong&gt;':&lt;br&gt;
    app.run(debug=True)`&lt;/p&gt;

&lt;p&gt;Here’s a &lt;strong&gt;clean and clear explanation&lt;/strong&gt; of the Flask code you’ve shared, with a focus on what each part does and how the image fetching works:&lt;/p&gt;




&lt;h2&gt;
  
  
  ✅ &lt;strong&gt;Purpose of This App:&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;This Flask app takes an image URL as input, fetches the image from the internet, saves it locally in a &lt;code&gt;static/images&lt;/code&gt; folder, and displays it on a webpage.&lt;/p&gt;




&lt;h2&gt;
  
  
  🔍 &lt;strong&gt;Code Breakdown:&lt;/strong&gt;
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1. &lt;strong&gt;Imports&lt;/strong&gt;
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="n"&gt;flask&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;Flask&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;render_template&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;request&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;abort&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;requests&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;os&lt;/span&gt;
&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="n"&gt;werkzeug.utils&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;secure_filename&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;Flask&lt;/code&gt; – creates the web application.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;render_template&lt;/code&gt; – renders HTML templates.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;request&lt;/code&gt; – handles incoming data (not directly used here, but useful if you plan to extend it).&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;abort&lt;/code&gt; – returns error codes like 404 or 500.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;requests&lt;/code&gt; – used to fetch the image from a URL.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;os&lt;/code&gt; – helps in creating folders and handling file paths.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;secure_filename&lt;/code&gt; – safely formats the filename to avoid path traversal and other issues.&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  2. &lt;strong&gt;App Setup and Directory Creation&lt;/strong&gt;
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="n"&gt;app&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nc"&gt;Flask&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;__name__&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;os&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;makedirs&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;static/images&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;exist_ok&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="bp"&gt;True&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;Flask(__name__)&lt;/code&gt; – starts the Flask app.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;os.makedirs(...)&lt;/code&gt; – creates the folder &lt;code&gt;static/images&lt;/code&gt; if it doesn’t already exist.&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  3. &lt;strong&gt;Homepage Route&lt;/strong&gt;
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="nd"&gt;@app.route&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;/&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;index&lt;/span&gt;&lt;span class="p"&gt;():&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nf"&gt;render_template&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;index.html&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;ul&gt;
&lt;li&gt;Loads &lt;code&gt;index.html&lt;/code&gt; when you open the root URL &lt;code&gt;/&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  4. &lt;strong&gt;Image Fetching Route&lt;/strong&gt;
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="nd"&gt;@app.route&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;/fetch/&amp;lt;path:image_url&amp;gt;&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;fetch_image&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;image_url&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;This route is triggered when the user goes to &lt;code&gt;/fetch/&amp;lt;image_url&amp;gt;&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;&amp;lt;path:image_url&amp;gt;&lt;/code&gt; allows slashes in the image URL.&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  5. &lt;strong&gt;Fetch and Save the Image&lt;/strong&gt;
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="n"&gt;response&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;requests&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;image_url&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;stream&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="bp"&gt;True&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Sends a &lt;strong&gt;GET&lt;/strong&gt; request to fetch the image content.
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;response&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;status_code&lt;/span&gt; &lt;span class="o"&gt;!=&lt;/span&gt; &lt;span class="mi"&gt;200&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nf"&gt;abort&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;404&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Could not fetch image from URL&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;ul&gt;
&lt;li&gt;If the image is not available (status ≠ 200), return a 404 error.&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  6. &lt;strong&gt;Create a Safe Filename&lt;/strong&gt;
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="n"&gt;filename&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;secure_filename&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;image_url&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;split&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;/&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;)[&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;])&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Extracts the last part of the URL (likely the filename) and secures it.
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="ow"&gt;not&lt;/span&gt; &lt;span class="n"&gt;filename&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;endswith&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;.png&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
    &lt;span class="n"&gt;filename&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;filename&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;split&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;.&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;)[&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;.png&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Ensures the file ends with &lt;code&gt;.png&lt;/code&gt; for uniformity.&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  7. &lt;strong&gt;Save the Image Locally&lt;/strong&gt;
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="n"&gt;img_path&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;os&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;path&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;join&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;static/images&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;filename&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="k"&gt;with&lt;/span&gt; &lt;span class="nf"&gt;open&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;img_path&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;wb&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="n"&gt;f&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
    &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;chunk&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="n"&gt;response&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;iter_content&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;1024&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
        &lt;span class="n"&gt;f&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;write&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;chunk&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Saves the image in chunks (1KB at a time) to &lt;code&gt;static/images&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  8. &lt;strong&gt;Prepare Image Info for Display&lt;/strong&gt;
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="n"&gt;img1&lt;/span&gt; &lt;span class="o"&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;filename&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;filename&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&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;images/&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;filename&lt;/span&gt;&lt;span class="si"&gt;}&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;source_url&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;image_url&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;A dictionary storing info about the saved image: filename, relative path, and original source URL.&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  9. &lt;strong&gt;Render the Image Page&lt;/strong&gt;
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nf"&gt;render_template&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;image.html&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;img1&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;img1&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Passes the image info to &lt;code&gt;image.html&lt;/code&gt; to display it.&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  10. &lt;strong&gt;Error Handling&lt;/strong&gt;
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="k"&gt;except&lt;/span&gt; &lt;span class="nb"&gt;Exception&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="n"&gt;e&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nf"&gt;abort&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;500&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Error processing image: &lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="nf"&gt;str&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;e&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="si"&gt;}&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;ul&gt;
&lt;li&gt;Handles unexpected errors (network issues, disk problems, etc.) and shows a 500 error.&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  11. &lt;strong&gt;Start the Flask App&lt;/strong&gt;
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;__name__&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;__main__&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
    &lt;span class="n"&gt;app&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;run&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;debug&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="bp"&gt;True&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Starts the app in debug mode for easier development and error tracking.&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  🖼️ Folder Structure Assumed:
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;project_folder/
│
├── app.py
├── templates/
│   ├── index.html
│   └── image.html
└── static/
    └── images/
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  ✅ TL;DR:
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;What it does:&lt;/strong&gt; Takes an image URL, fetches it, saves it as &lt;code&gt;.png&lt;/code&gt;, and displays it.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Key features:&lt;/strong&gt; Safe filename handling, local storage, error handling, and rendering via templates.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Useful for:&lt;/strong&gt; Image preview tools, downloaders, or web-based image processors.&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;Would you like me to give sample &lt;code&gt;index.html&lt;/code&gt; and &lt;code&gt;image.html&lt;/code&gt; code too, to complete this app?&lt;/p&gt;

</description>
    </item>
    <item>
      <title>for sej</title>
      <dc:creator>SIDDHARTH PATIL</dc:creator>
      <pubDate>Wed, 02 Apr 2025 18:42:13 +0000</pubDate>
      <link>https://dev.to/sidatgithubcode/for-sej-hlk</link>
      <guid>https://dev.to/sidatgithubcode/for-sej-hlk</guid>
      <description>&lt;p&gt;NEW PROJECTS TO ADD &lt;/p&gt;

&lt;p&gt;Vending Machine Project&lt;/p&gt;

&lt;p&gt;Designed and built a functional vending machine prototype using an Arduino Mega and stepper motors to dispense packaged items.&lt;br&gt;
Programmed the Arduino to control motor movements, ensuring precise and reliable operation.&lt;br&gt;
Integrated hardware and software components to create an automated system, demonstrating skills in embedded systems and microcontroller programming&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;What It Is&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;"I built a vending machine prototype as a personal project. It’s a small, automated system that dispenses packaged items, like snacks, using an Arduino Mega microcontroller and stepper motors."&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Why I Did It&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;"I wanted to challenge myself to combine programming and hardware in a practical way. I’ve always been interested in how everyday machines work, so I thought building a vending machine would be a fun way to learn more about embedded systems and automation."&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;How It Works&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;"The Arduino Mega acts as the brain of the machine. I programmed it to control stepper motors, which move to release the items. For example, when a selection is made, the motors rotate a certain number of steps to push the item out. I wired everything myself—motors, power supply, and the Arduino—and wrote the code to make it all work together smoothly."&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;What I Used&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;"I used an Arduino Mega because it has enough pins to handle multiple motors and inputs. The stepper motors were perfect for precise movements, and I kept it simple with basic components like wires, a breadboard (or custom board if you soldered it), and a power source. The code was written in C++ using the Arduino IDE."&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Challenges I Faced&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;"One tricky part was getting the motors to move exactly how I wanted—sometimes they’d overshoot or not align properly. I had to tweak the code and test different step counts to fix that. Another challenge was making sure the power supply could handle everything without frying the Arduino, so I learned a lot about managing current and voltage."&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;What I Learned&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;"I got hands-on experience with programming microcontrollers, debugging hardware, and integrating systems. It taught me how to troubleshoot when things don’t work right away and gave me a better understanding of how software and hardware interact in real-world devices."&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;The Result&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;"In the end, I had a working prototype that could dispense items reliably. It’s not fancy like a commercial machine, but it does the job, and I’m proud of figuring it out from scratch."&lt;/p&gt;




&lt;p&gt;Home Automation System&lt;/p&gt;

&lt;p&gt;Developed a smart home automation system using an ESP microcontroller (e.g., ESP8266/ESP32) to remotely control household devices such as lights and fans.&lt;br&gt;
Programmed the ESP in C++ to connect to Wi-Fi and interface with a mobile app or web server for real-time control and monitoring.&lt;br&gt;
Implemented hardware integration with relays and sensors, enhancing skills in IoT, wireless communication, and system design.&lt;/p&gt;

&lt;p&gt;"I created a home automation system using an ESP microcontroller. It lets me control things like lights, fans, or even appliances from my phone or a web browser, all wirelessly."&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Why I Did It&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;"I wanted to explore the Internet of Things—IoT—and see how I could make everyday life more convenient using tech. The idea of turning my home ‘smart’ with something I built myself was really exciting."&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;How It Works&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;"The ESP chip is the core—it connects to my home Wi-Fi network. I programmed it to talk to a simple app or webpage I set up. For example, when I press ‘turn on the light’ on my phone, the ESP gets the signal over Wi-Fi and flips a relay to switch the light on. I also added sensors—like a temperature sensor—to monitor stuff and trigger actions automatically if I wanted."&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;What I Used&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;"I used an ESP8266 (or ESP32, depending on your setup) because it’s cheap, powerful, and has built-in Wi-Fi. I hooked up relays to control the devices, some basic sensors for feedback, and powered it with a small adapter. The coding was done in C++ through the Arduino IDE, and I set up a basic server or app for the interface."&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Challenges I Faced&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;"One big challenge was getting the Wi-Fi connection stable—sometimes it’d drop, and I had to figure out how to reconnect automatically. Another was making sure the relays worked safely with high-voltage stuff like lights, so I had to double-check my wiring and add some safety features. Debugging the app-to-ESP communication took a while too—lots of trial and error."&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;What I Learned&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;"I learned a ton about IoT, like how devices talk over networks, and got better at coding for real-time systems. It also taught me how to handle both hardware—like relays and sensors—and software—like Wi-Fi protocols—together. Plus, I got more comfortable troubleshooting weird bugs."&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;The Result&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;"I ended up with a working system that lets me control a few devices from anywhere in the house—or even outside if I set it up with a public server. It’s basic but functional, and it’s cool to see it actually work in real life."&lt;/p&gt;




&lt;p&gt;LEARNING, FOR SESSION , &lt;/p&gt;

&lt;p&gt;Alright, I’ll assume you’re a beginner with little to no prior knowledge and give you simple, beginner-friendly notes to read and prepare for your interview tomorrow (April 3, 2025). I’ll cover Arduino, IoT, digital electronics, ESP, and protocols like I2C and SPI—keeping it basic and easy to understand. These are written as if you’re cramming last-minute, so they’re short, digestible, and focused on what might come up. Read these a few times, and you’ll sound like you know the basics!&lt;/p&gt;

&lt;p&gt;Interview Notes for a Noob: Arduino, IoT, Digital Electronics, ESP, and Protocols&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Arduino Basics
What is it? Arduino is a small computer (microcontroller) you can program to control things like lights, motors, or sensors. It’s easy for beginners.
Why use it? It’s cheap, has lots of pins to connect stuff, and you code it with simple C++ on the Arduino IDE (a free software).
Example: In my vending machine project, I used an Arduino Mega to tell stepper motors when to move and drop snacks.
Key term: Pins—little holes on the board to connect wires (digital pins for on/off, analog pins for measuring).&lt;/li&gt;
&lt;li&gt;IoT (Internet of Things)
What is it? IoT means connecting everyday things (like lights or fans) to the internet so you can control them with your phone or computer.
How it works: A device (like ESP) connects to Wi-Fi, talks to an app or server, and controls stuff remotely.
My project: In my home automation project, I used an ESP to turn lights on/off over Wi-Fi with my phone.
Key term: Wi-Fi—how IoT devices talk to the internet.&lt;/li&gt;
&lt;li&gt;Digital Electronics Basics
What is it? Electronics that use 0s and 1s (off/on) to work. It’s the foundation of computers and microcontrollers.
Key parts:
Microcontroller: The brain (like Arduino or ESP) that runs your code.
Relays: Switches that turn big things (like lights) on/off using small signals from the microcontroller.
Sensors: Measure stuff (e.g., temperature sensor tells you how hot it is).
Motors: Move things (e.g., stepper motors in my vending machine).
Voltage: Power level. Arduino uses 5V or 3.3V. Too much can fry it!
My projects: I wired relays for home automation and motors for the vending machine.&lt;/li&gt;
&lt;li&gt;ESP (ESP8266/ESP32)
What is it? A tiny microcontroller like Arduino, but with built-in Wi-Fi for IoT projects.
Why use it? It’s great for connecting to the internet without extra parts.
ESP8266 vs ESP32: ESP8266 is simpler and cheaper; ESP32 is more powerful with Bluetooth too.
My project: I used an ESP (say ESP8266 if that’s what you used) to make a home automation system that controls lights over Wi-Fi.
Key term: Firmware—special code you upload to make it work.&lt;/li&gt;
&lt;li&gt;Protocols (I2C and SPI)
What are they? Ways for microcontrollers to talk to other parts (like sensors or screens).
I2C (Eye-squared-see):
Uses 2 wires: one for data (SDA), one for timing (SCL).
Good for connecting lots of things (e.g., multiple sensors) with fewer wires.
Example: A temperature sensor telling the Arduino the room’s heat.
SPI (Ess-pee-eye):
Uses 4 wires: data in, data out, clock, and chip select.
Faster than I2C, good for things like SD cards or displays.
Example: Could use it to talk to a screen showing vending machine options.
My projects: I didn’t use I2C or SPI directly (say this if true), but I know they’re for connecting parts efficiently.&lt;/li&gt;
&lt;li&gt;Quick Project Recap
Vending Machine: Used Arduino Mega + stepper motors. Coded it to move motors and drop items. Learned wiring and coding.
Home Automation: Used ESP + relays. Connected it to Wi-Fi to control lights with my phone. Learned IoT and networking.&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Common Questions + Answers&lt;br&gt;
“What’s a microcontroller?” A tiny computer that runs one program to control things—like Arduino or ESP.&lt;br&gt;
“How does IoT work?” Devices connect to the internet (via Wi-Fi) and talk to apps or servers to do stuff remotely.&lt;br&gt;
“What’s the hardest part?” For vending machine: making motors move right. For home automation: stable Wi-Fi connection.&lt;br&gt;
“What’s next?” Add a screen to the vending machine or voice control (like Alexa) to home automation.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;PLC (Programmable Logic Controller)&lt;br&gt;
What is it? A tough little computer used in factories to control machines—like turning motors on/off or running assembly lines.&lt;br&gt;
How it works: You program it with simple code (like ladder logic) to read sensors and control stuff. It’s super reliable in noisy, rough places.&lt;br&gt;
My project: Used an Arduino Mega (like a simple PLC) for my vending machine to move stepper motors.&lt;br&gt;
Key term: Ladder logic—looks like a ladder, makes programming easy for electricians.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;SCADA (Supervisory Control and Data Acquisition)&lt;br&gt;
What is it? Software that watches and controls big systems (like a whole factory) from a computer screen.&lt;br&gt;
How it works: Talks to PLCs, collects data (e.g., temperature), and shows it to people. You can click to change things remotely.&lt;br&gt;
My project: Used ESP in home automation—kind of like a mini-SCADA to control lights over Wi-Fi.&lt;br&gt;
Key term: HMI—Human-Machine Interface, the screen you use to see and control SCADA.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Electrical Basics&lt;br&gt;
What is it? How electricity powers stuff. Voltage (push), current (flow), resistance (slows flow).&lt;br&gt;
Key parts:&lt;br&gt;
Wires: Carry power.&lt;br&gt;
Relays: Electric switches I used in home automation.&lt;br&gt;
Power supply: Gives juice (like 5V for Arduino, 24V in factories).&lt;br&gt;
My projects: Wired motors and relays—learned to keep voltage safe so nothing fries.&lt;br&gt;
Key term: Ground—where extra electricity goes to stay safe.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Robotics&lt;br&gt;
What is it? Machines that move and do tasks automatically—like robot arms in factories.&lt;br&gt;
How it works: Uses motors, sensors, and a brain (like a microcontroller) to act. I used stepper motors in my vending machine to move parts.&lt;br&gt;
Cool fact: Robots can pick stuff up or weld cars—super precise!&lt;br&gt;
Key term: Actuator—makes things move (like a motor).&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Automation&lt;br&gt;
What is it? Making things run by themselves with tech—no humans needed for boring jobs.&lt;br&gt;
Why use it? Saves time, cuts errors, keeps people safe (e.g., no one near hot machines).&lt;br&gt;
My projects: Vending machine (drops snacks automatically) and home automation (lights on/off from phone).&lt;br&gt;
Key term: Sensors—tell the system what’s happening (e.g., motion or heat).&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Microcontrollers&lt;br&gt;
What is it? Tiny all-in-one chip with a brain, memory, and pins to connect stuff. Used in small gadgets.&lt;br&gt;
Example: Arduino Mega (my vending machine) and ESP (home automation)—both are microcontrollers.&lt;br&gt;
How it works: You code it to read sensors and control things, like turning on a light.&lt;br&gt;
Key term: Pins—where you plug in wires for input/output.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Microprocessors&lt;br&gt;
What is it? Just the brain part of a computer—needs extra stuff (memory, input/output) to work. Used in PCs.&lt;br&gt;
Difference from microcontroller: Microcontroller = all-in-one; microprocessor = brain only.&lt;br&gt;
Use: Big computing, not small projects like mine. PLCs have microprocessors inside.&lt;br&gt;
Key term: CPU—Central Processing Unit, the thinking part.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Logic Gates&lt;br&gt;
What are they? Tiny building blocks in electronics that decide yes/no (1/0) based on inputs.&lt;br&gt;
Types:&lt;br&gt;
AND: Both inputs on = output on (e.g., 1 AND 1 = 1).&lt;br&gt;
OR: One input on = output on (e.g., 1 OR 0 = 1).&lt;br&gt;
NOT: Flips it (e.g., NOT 1 = 0).&lt;br&gt;
Use: In PLCs and microcontrollers to make decisions.&lt;br&gt;
Key term: Boolean—fancy word for true/false (1/0).&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Binary Logic&lt;br&gt;
What is it? Language of computers—uses only 0 (off) and 1 (on).&lt;br&gt;
How it works: Everything’s a combo of 0s and 1s. E.g., 101 = 5 (1x4 + 0x2 + 1x1).&lt;br&gt;
Use: Microcontrollers and PLCs think in binary to control stuff.&lt;br&gt;
Key term: Bit—smallest piece (0 or 1); 8 bits = 1 byte.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Embedded Systems Basics&lt;br&gt;
What is it? A small computer system built into a device to do one job—like controlling a vending machine or smart light.&lt;br&gt;
Parts: Microcontroller (brain), sensors (eyes/ears), actuators (hands), and code to run it.&lt;br&gt;
My projects: Used Arduino Mega (vending machine) and ESP (home automation)—both are embedded systems.&lt;br&gt;
Key term: Firmware—special code you upload to make it work (like my Arduino programs).&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Sensors&lt;br&gt;
What are they? Devices that measure stuff in the world—like temperature, light, or motion—and tell the microcontroller.&lt;br&gt;
Examples:&lt;br&gt;
Temperature sensor: Checks how hot it is.&lt;br&gt;
Motion sensor: Detects movement (could use in home automation).&lt;br&gt;
Push button: Tells when you press it (like vending machine selection).&lt;br&gt;
How they work: Send a signal (voltage) to the microcontroller, which reads it.&lt;br&gt;
My projects: Could’ve added a sensor to my home automation to turn lights on if it’s dark.&lt;br&gt;
Key term: Analog vs Digital—analog gives a range (0-5V), digital gives 0 or 1.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Actuators&lt;br&gt;
What are they? Things that move or do stuff when the microcontroller tells them—like motors or switches.&lt;br&gt;
Examples:&lt;br&gt;
Stepper motor: Moves in steps (used in my vending machine to drop snacks).&lt;br&gt;
Relay: Turns big things on/off (used in home automation for lights).&lt;br&gt;
How they work: Microcontroller sends a signal, actuator moves or switches.&lt;br&gt;
Key term: PWM—Pulse Width Modulation, a trick to control speed or power (e.g., dimming a light).&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Connections&lt;br&gt;
What is it? How parts talk to each other in a system—wires or protocols.&lt;br&gt;
Types:&lt;br&gt;
Wires: Simple connections (e.g., motor to Arduino pin).&lt;br&gt;
I2C: 2-wire protocol for sensors (data + clock).&lt;br&gt;
SPI: 4-wire protocol, faster, for displays or SD cards.&lt;br&gt;
Wi-Fi: Wireless, used in my ESP home automation.&lt;br&gt;
My projects: Wired motors and relays directly; used Wi-Fi for ESP.&lt;br&gt;
Key term: Bus—a shared path for data (like I2C).&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Op-Amps (Operational Amplifiers)&lt;br&gt;
What are they? Tiny chips that boost or compare signals—like making a weak sensor signal stronger.&lt;br&gt;
How they work: Take an input (e.g., 0.1V), amplify it (e.g., to 5V), or compare two voltages.&lt;br&gt;
Use: Could boost a sensor signal in my projects if it’s too weak for Arduino to read.&lt;br&gt;
Key term: Gain—how much it amplifies (e.g., 10x gain = 0.1V to 1V).&lt;br&gt;
Note: I haven’t used them yet, but I know they’re common in electronics.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Transistors (BJT &amp;amp; FET)&lt;br&gt;
What are they? Small switches or amplifiers that control electricity flow—super important in circuits.&lt;br&gt;
BJT (Bipolar Junction Transistor):&lt;br&gt;
Types: NPN (turns on with a small current), PNP (turns off with current).&lt;br&gt;
Use: Like a switch—e.g., could use it to control a motor with Arduino.&lt;br&gt;
How it works: Small current at “base” lets big current flow from “collector” to “emitter.”&lt;br&gt;
FET (Field-Effect Transistor):&lt;br&gt;
Types: MOSFET—most common, uses voltage to switch.&lt;br&gt;
Use: Better for high power—like controlling big lights or motors.&lt;br&gt;
How it works: Voltage at “gate” controls flow from “drain” to “source.”&lt;br&gt;
My projects: Didn’t use them directly, but relays in home automation act like switches too.&lt;br&gt;
Key term: Switching—using transistors to turn things on/off fast.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

</description>
    </item>
    <item>
      <title>HerGaurdian</title>
      <dc:creator>SIDDHARTH PATIL</dc:creator>
      <pubDate>Tue, 11 Mar 2025 16:48:07 +0000</pubDate>
      <link>https://dev.to/sidatgithubcode/hergaurdian-3kgp</link>
      <guid>https://dev.to/sidatgithubcode/hergaurdian-3kgp</guid>
      <description>&lt;h3&gt;
  
  
  &lt;strong&gt;Slide 1: Title Slide&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Title:&lt;/strong&gt; &lt;em&gt;HerGaurdian : AI-Powered Women’s Safety App&lt;/em&gt;&lt;br&gt;&lt;br&gt;
&lt;strong&gt;Subtitle:&lt;/strong&gt; &lt;em&gt;Empowering Safety, Anytime, Anywhere&lt;/em&gt;&lt;br&gt;&lt;br&gt;
&lt;strong&gt;Presented By:&lt;/strong&gt;  &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Siddharth&lt;/strong&gt; – CEO &amp;amp; CTO
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Tilak&lt;/strong&gt; – CFO
&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  &lt;strong&gt;Slide 2: Problem Statement&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Why Women’s Safety Needs Innovation&lt;/strong&gt;  &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;1 in 3 women&lt;/strong&gt; worldwide experience violence or harassment.
&lt;/li&gt;
&lt;li&gt;In emergencies, manual SOS triggers can be &lt;strong&gt;delayed or ineffective&lt;/strong&gt;.
&lt;/li&gt;
&lt;li&gt;Traditional safety measures &lt;strong&gt;rely on hardware&lt;/strong&gt;, which may be &lt;strong&gt;bulky, expensive, or fail&lt;/strong&gt; at critical moments.
&lt;/li&gt;
&lt;li&gt;A smarter, &lt;strong&gt;automated, AI-driven approach&lt;/strong&gt; is needed.
&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  &lt;strong&gt;Slide 3: Previous Concept - Hardware-Based Device&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Our Initial Solution (Now Outdated):&lt;/strong&gt;  &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;A physical device with:&lt;/strong&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Taser &amp;amp; buzzer&lt;/strong&gt; for self-defense
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;GPS &amp;amp; GSM&lt;/strong&gt; for tracking
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Three-layer emergency alert protocol&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Why We Moved to an App-Based Approach:&lt;/strong&gt;  &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Hardware limitations (cost, size, maintenance)
&lt;/li&gt;
&lt;li&gt;Dependency on an external device
&lt;/li&gt;
&lt;li&gt;Smartwatches &amp;amp; AI make a &lt;strong&gt;software-based solution&lt;/strong&gt; more scalable &amp;amp; effective
&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  &lt;strong&gt;Slide 4: The New Solution - Smartwatch App&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;SmartGuard: A Fully AI-Powered Safety App&lt;/strong&gt;  &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;No extra hardware needed&lt;/strong&gt; – Works on existing smartwatches &amp;amp; smartphones
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;AI-based distress detection&lt;/strong&gt; via heart rate &amp;amp; motion analysis
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Auto-alerts emergency contacts, police, &amp;amp; safety networks&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Intelligent tracking&lt;/strong&gt; of routes &amp;amp; transport systems
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Three-layer panic protocol&lt;/strong&gt; for &lt;strong&gt;faster, smarter emergency handling&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  &lt;strong&gt;Slide 5: Key Features &amp;amp; Functionality&lt;/strong&gt;
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Heart Rate-Based Distress Detection&lt;/strong&gt;

&lt;ul&gt;
&lt;li&gt;Uses &lt;strong&gt;smartwatch sensors&lt;/strong&gt; to track abnormal heart rate spikes &amp;amp; sudden stops in movement.
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;AI/ML-Based Path Analysis&lt;/strong&gt;

&lt;ul&gt;
&lt;li&gt;Monitors &lt;strong&gt;bus/train journeys&lt;/strong&gt; and &lt;strong&gt;alerts police at the next station&lt;/strong&gt; if needed.
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Real-Time Tracking &amp;amp; Alerts&lt;/strong&gt;

&lt;ul&gt;
&lt;li&gt;Auto-fetches &lt;strong&gt;nearest police station contact&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;AI &lt;strong&gt;makes an automated distress call&lt;/strong&gt; explaining the situation
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Three-Layer Panic Protocol&lt;/strong&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Ensures step-by-step emergency response&lt;/strong&gt; to avoid false alarms &amp;amp; maximize efficiency.
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;




&lt;h3&gt;
  
  
  &lt;strong&gt;Slide 6: Three-Layer Panic Protocol&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Layer 3 - Initial Alert (Soft Alert Mode)&lt;/strong&gt;  &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Detects irregularities (high heart rate, erratic movements).
&lt;/li&gt;
&lt;li&gt;Sends &lt;strong&gt;location updates&lt;/strong&gt; to close contacts via the app.
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Layer 2 - Escalation (Pre-Emergency Mode)&lt;/strong&gt;  &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;If no user intervention within &lt;strong&gt;30 seconds&lt;/strong&gt;:

&lt;ul&gt;
&lt;li&gt;Sends a &lt;strong&gt;"potential danger" alert&lt;/strong&gt; to emergency contacts.
&lt;/li&gt;
&lt;li&gt;Prepares to escalate if the situation worsens.
&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Layer 1 - Critical Emergency Mode&lt;/strong&gt;  &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;If distress continues:

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;AI calls nearest police station&lt;/strong&gt; explaining the threat.
&lt;/li&gt;
&lt;li&gt;Sends live &lt;strong&gt;location updates&lt;/strong&gt; to law enforcement &amp;amp; family.
&lt;/li&gt;
&lt;li&gt;Notifies &lt;strong&gt;government helplines &amp;amp; security networks&lt;/strong&gt;.
&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;




&lt;h3&gt;
  
  
  &lt;strong&gt;Slide 7: AI &amp;amp; ML Capabilities&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;How SmartGuard Uses AI to Protect Users:&lt;/strong&gt;  &lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Path Tracking &amp;amp; Risk Assessment&lt;/strong&gt;

&lt;ul&gt;
&lt;li&gt;AI &lt;strong&gt;identifies safe vs. high-risk routes&lt;/strong&gt; based on crime data &amp;amp; past incidents.
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Smart Decision-Making for Emergency Handling&lt;/strong&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;AI prioritizes critical situations&lt;/strong&gt; &amp;amp; prevents false alarms.
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Bus &amp;amp; Train Journey Monitoring&lt;/strong&gt;

&lt;ul&gt;
&lt;li&gt;Alerts police &lt;strong&gt;at the next station&lt;/strong&gt; if danger is detected.
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;




&lt;h3&gt;
  
  
  &lt;strong&gt;Slide 8: Emergency Alert System&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;🚨 &lt;strong&gt;AI Auto-Calls for Help&lt;/strong&gt; 🚨  &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Fetches &lt;strong&gt;nearest police station number&lt;/strong&gt;.
&lt;/li&gt;
&lt;li&gt;AI &lt;strong&gt;agent calls the police&lt;/strong&gt;, reports the threat, and shares location.
&lt;/li&gt;
&lt;li&gt;Simultaneously alerts &lt;strong&gt;emergency contacts &amp;amp; NGOs&lt;/strong&gt;.
&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  &lt;strong&gt;Slide 9: Additional Features &amp;amp; Customization&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Manual SOS Button&lt;/strong&gt; – Instant panic trigger.
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Live Audio Recording&lt;/strong&gt; – Captures voice evidence when an alert is triggered.
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Fake Call Feature&lt;/strong&gt; – AI can simulate an &lt;strong&gt;incoming call from the police&lt;/strong&gt; to deter threats.
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Smart Assistant for Safety Tips&lt;/strong&gt; – Provides advice based on real-time location.
&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  &lt;strong&gt;Slide 10: Market Potential &amp;amp; Scalability&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;🌍 &lt;strong&gt;A Global, Scalable Solution&lt;/strong&gt; 🌍  &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Over 1 billion smartwatch users worldwide.&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Potential partnerships with law enforcement, NGOs, and safety organizations.&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Subscription-based premium model for added features.&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Government &amp;amp; corporate collaborations for bulk deployment.&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  &lt;strong&gt;Slide 11: Business Model &amp;amp; Investment Opportunity&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;💰 &lt;strong&gt;Investment &amp;amp; Equity Offering&lt;/strong&gt; 💰  &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Company Ownership:&lt;/strong&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Siddharth (CEO &amp;amp; CTO) - 75%&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Tilak (CFO) - 25%&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;

&lt;strong&gt;Seeking Investors:&lt;/strong&gt; Offering &lt;strong&gt;20% equity&lt;/strong&gt; for funding to scale the app.
&lt;/li&gt;

&lt;li&gt;

&lt;strong&gt;Revenue Model:&lt;/strong&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Freemium model&lt;/strong&gt; with premium safety features.
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;B2B partnerships&lt;/strong&gt; with corporate safety programs.
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Government collaborations&lt;/strong&gt; for mass adoption.
&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;




&lt;h3&gt;
  
  
  &lt;strong&gt;Slide 12: Conclusion &amp;amp; Call to Action&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;🚀 &lt;strong&gt;SmartGuard is the Future of Women’s Safety&lt;/strong&gt; 🚀  &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;AI-powered safety, eliminating hardware dependency.&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Proven, scalable solution with high impact potential.&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Seeking investors &amp;amp; partners to take it to the next level.&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Join us in making the world safer!&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
📩 Contact: &lt;em&gt;Your Email &amp;amp; Phone Number&lt;/em&gt;  &lt;/p&gt;




&lt;h3&gt;
  
  
  🔥 &lt;strong&gt;Final Notes for Pitching&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Speak &lt;strong&gt;confidently &amp;amp; passionately&lt;/strong&gt; about the problem &amp;amp; solution.
&lt;/li&gt;
&lt;li&gt;Use &lt;strong&gt;real-life cases&lt;/strong&gt; to show why this is needed.
&lt;/li&gt;
&lt;li&gt;Emphasize &lt;strong&gt;AI &amp;amp; ML innovations&lt;/strong&gt; for differentiation.
&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  - End with &lt;strong&gt;a strong call to action&lt;/strong&gt; to investors.  
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;SmartGuard: Revolutionizing Women's Safety with AI &amp;amp; ML-Powered Smartwatch Technology&lt;/strong&gt;  &lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Executive Summary&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;In an era where personal safety remains one of the most pressing concerns for women worldwide, SmartGuard emerges as a &lt;strong&gt;revolutionary AI-powered solution&lt;/strong&gt; that transcends traditional safety measures. Unlike conventional SOS devices or safety apps, SmartGuard &lt;strong&gt;seamlessly integrates with existing smartwatch ecosystems&lt;/strong&gt;, leveraging cutting-edge artificial intelligence, machine learning, and predictive analytics to create an &lt;strong&gt;autonomous, proactive, and fail-proof safety net.&lt;/strong&gt; This billion-dollar innovation aims to redefine women’s safety by merging &lt;strong&gt;biometric distress detection, AI-powered path risk assessment, real-time police alert systems, and deep-learning-driven emergency response mechanisms.&lt;/strong&gt;  &lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Introduction: The Unresolved Crisis of Women’s Safety&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;According to global safety reports, &lt;strong&gt;1 in 3 women&lt;/strong&gt; face violence or harassment in their lifetime. Current emergency response systems are &lt;strong&gt;reactionary rather than proactive&lt;/strong&gt;, relying on the victim to manually trigger an alert—a process that is often impractical during real emergencies. Hardware-based safety devices are bulky, prone to malfunction, and dependent on external accessories that users may forget or lose. &lt;strong&gt;The world needs a smarter, AI-driven, fully autonomous system that can detect threats before they escalate and intervene without requiring user input.&lt;/strong&gt;  &lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;The Birth of SmartGuard: The AI-Driven Safety Paradigm&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;SmartGuard is not just a safety app—it is an &lt;strong&gt;intelligent guardian&lt;/strong&gt; that constantly monitors &lt;strong&gt;vital physiological and environmental parameters&lt;/strong&gt; to detect distress. This innovation &lt;strong&gt;eliminates human error&lt;/strong&gt; by autonomously identifying danger signals and executing a robust, multi-layered emergency protocol. Unlike traditional panic buttons, &lt;strong&gt;SmartGuard requires zero manual intervention, ensuring real-time protection in life-threatening scenarios.&lt;/strong&gt;  &lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Unparalleled Features &amp;amp; Technological Innovations&lt;/strong&gt;
&lt;/h2&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;1. AI-Powered Heart Rate &amp;amp; Motion Anomaly Detection&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;SmartGuard’s state-of-the-art algorithm analyzes real-time heart rate fluctuations and motion patterns via smartwatch sensors. By leveraging a &lt;strong&gt;deep-learning distress recognition model&lt;/strong&gt;, the app can differentiate between normal exertion (such as running) and &lt;strong&gt;panic-induced physiological responses&lt;/strong&gt; (such as rapid heart rate spikes, tremors, and erratic movement). The AI adapts dynamically, improving its accuracy over time using &lt;strong&gt;reinforcement learning.&lt;/strong&gt;  &lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;2. Predictive Path Risk Analysis &amp;amp; Smart Journey Monitoring&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Using &lt;strong&gt;machine learning-trained geospatial intelligence&lt;/strong&gt;, SmartGuard tracks user movement in &lt;strong&gt;real-time&lt;/strong&gt; and cross-references it against crime databases, urban heatmaps, and &lt;strong&gt;historical safety data.&lt;/strong&gt; When a user boards public transport, the AI monitors the journey and &lt;strong&gt;pre-emptively alerts authorities at the next station&lt;/strong&gt; if irregularities (such as abrupt route deviations or unexpected stops) are detected. This &lt;strong&gt;real-time transport security integration&lt;/strong&gt; is a first-of-its-kind innovation in the safety industry.  &lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;3. Three-Layer AI-Driven Emergency Response Protocol&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;SmartGuard’s emergency response follows a &lt;strong&gt;multi-layered escalation model&lt;/strong&gt;, ensuring optimized intervention.  &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Layer 1 – Pre-Distress Alert:&lt;/strong&gt; Detects mild irregularities and sends automated location updates to designated emergency contacts.
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Layer 2 – Critical Threat Detection:&lt;/strong&gt; If distress continues for &lt;strong&gt;30 seconds without cancellation&lt;/strong&gt;, SmartGuard elevates the alert, notifying &lt;strong&gt;close contacts and registered security networks.&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Layer 3 – AI Emergency Dispatch &amp;amp; Police Coordination:&lt;/strong&gt; Upon confirming a high-risk situation, SmartGuard autonomously retrieves &lt;strong&gt;real-time police station contact details&lt;/strong&gt; and &lt;strong&gt;executes an AI-driven emergency call&lt;/strong&gt; that provides officers with an automated report of the threat, including &lt;strong&gt;live GPS location, biometric distress data, and real-time audio capture&lt;/strong&gt; of the environment.
&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;4. Smart Audio &amp;amp; AI-Generated Emergency Calls&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Traditional panic calls often fail due to &lt;strong&gt;shock, speech impairment, or loss of consciousness.&lt;/strong&gt; SmartGuard’s AI-driven voice synthesis technology can &lt;strong&gt;simulate an emergency call&lt;/strong&gt; on behalf of the victim, dynamically adjusting its tone and content based on the scenario. The AI &lt;strong&gt;speaks directly with law enforcement&lt;/strong&gt;, providing structured, legally actionable information to accelerate response times.  &lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;5. Fake Call &amp;amp; Psychological Deterrence System&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;The app incorporates an intelligent &lt;strong&gt;fake call mechanism&lt;/strong&gt; that &lt;strong&gt;triggers a simulated police or emergency contact call&lt;/strong&gt; when the user is in an uncomfortable situation. This psychological deterrence technique has been &lt;strong&gt;proven to reduce escalation in high-risk situations by up to 75%.&lt;/strong&gt;  &lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;6. Advanced Customization &amp;amp; AI Adaptation&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Adaptive AI:&lt;/strong&gt; The more a user interacts with SmartGuard, the better it understands personalized stress patterns.
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Configurable Emergency Contacts:&lt;/strong&gt; Allows users to assign &lt;strong&gt;trusted individuals, private security firms, or NGOs&lt;/strong&gt; as their first line of contact.
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Voice &amp;amp; Gesture-Based Activation:&lt;/strong&gt; Users can activate emergency alerts through specific voice commands or secret gestures for discretion in hostile environments.
&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Market Potential &amp;amp; Global Scalability&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;SmartGuard is positioned as a &lt;strong&gt;billion-dollar disruptor&lt;/strong&gt; in the global safety industry. With over &lt;strong&gt;1 billion smartwatch users worldwide&lt;/strong&gt; and increasing adoption of wearable technology, &lt;strong&gt;our solution has the potential to dominate both consumer and enterprise safety sectors.&lt;/strong&gt;  &lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Potential Market Segments:&lt;/strong&gt;
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Individual Consumers:&lt;/strong&gt; Urban women, students, travelers, professionals.
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Corporate Safety Initiatives:&lt;/strong&gt; Employers integrating SmartGuard into employee safety programs.
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Law Enforcement &amp;amp; Government Collaborations:&lt;/strong&gt; City-wide adoption for police monitoring &amp;amp; rapid intervention.
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;NGO &amp;amp; Social Welfare Partnerships:&lt;/strong&gt; Integrating SmartGuard for high-risk demographics in vulnerable regions.
&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Projected Revenue Streams:&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Freemium Model:&lt;/strong&gt; Basic safety features free, advanced AI-powered security tools available via subscription.
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;B2B Licensing:&lt;/strong&gt; Collaborations with &lt;strong&gt;corporate firms, educational institutions, and law enforcement agencies.&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Data-Driven Safety Insights:&lt;/strong&gt; SmartGuard’s anonymized data analytics will provide governments and urban planners with &lt;strong&gt;real-time insights into crime hotspots and safety trends.&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Investment Opportunity: Funding the Future of Safety&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;SmartGuard is offering &lt;strong&gt;20% equity&lt;/strong&gt; to investors who want to be part of the next &lt;strong&gt;global safety revolution.&lt;/strong&gt; With a &lt;strong&gt;projected valuation exceeding $1 billion within five years&lt;/strong&gt;, this is a prime opportunity to invest in a high-impact, AI-driven, socially transformative venture.  &lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Company Ownership Structure:&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Siddharth (CEO &amp;amp; CTO) – 75%&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Tilak (CFO) – 25%&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Seeking strategic investors to raise capital for expansion, global marketing, and AI advancements.&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Conclusion: A Future Where Safety is Autonomous&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;SmartGuard is not just an app; it is &lt;strong&gt;a paradigm shift&lt;/strong&gt; in personal security. By &lt;strong&gt;eliminating human error, leveraging AI-driven intelligence, and integrating directly into existing smartwatch ecosystems&lt;/strong&gt;, SmartGuard ensures that &lt;strong&gt;women worldwide can move freely, confidently, and securely.&lt;/strong&gt;  &lt;/p&gt;

&lt;p&gt;With &lt;strong&gt;unparalleled technological sophistication, an untapped market, and a socially driven mission&lt;/strong&gt;, SmartGuard is poised to become the &lt;strong&gt;ultimate safety solution of the future.&lt;/strong&gt; Investors, policymakers, and safety organizations must seize this opportunity to be part of &lt;strong&gt;a groundbreaking transformation in global security.&lt;/strong&gt;  &lt;/p&gt;




&lt;p&gt;&lt;strong&gt;Contact Us to Be Part of the SmartGuard Revolution.&lt;/strong&gt; 🚀&lt;/p&gt;

</description>
    </item>
    <item>
      <title>IOT based Parking app(thoery)</title>
      <dc:creator>SIDDHARTH PATIL</dc:creator>
      <pubDate>Tue, 04 Mar 2025 16:05:49 +0000</pubDate>
      <link>https://dev.to/sidatgithubcode/iot-based-parking-app-5h62</link>
      <guid>https://dev.to/sidatgithubcode/iot-based-parking-app-5h62</guid>
      <description>&lt;h1&gt;
  
  
  Parking Lot Monitoring System Project Report
&lt;/h1&gt;

&lt;h2&gt;
  
  
  1. Introduction
&lt;/h2&gt;

&lt;p&gt;The modern urban landscape presents significant challenges in parking management, with limited spaces and increasing vehicle density creating ongoing frustrations for both drivers and parking facility operators. Traditional parking systems often lack real-time information, leading to inefficient space utilization and increased driver stress. Our innovative parking lot monitoring system emerges as a sophisticated technological solution that bridges this critical gap, leveraging cutting-edge sensor technology and intelligent software design to revolutionize how parking spaces are tracked, managed, and utilized.&lt;/p&gt;

&lt;p&gt;At its core, the system represents a convergence of internet of things (IoT) technology, web application development, and data management. By integrating an ESP32 microcontroller with sensor technology, we've created a dynamic platform that provides instantaneous insights into parking slot availability, occupancy duration, and real-time status updates. This approach transforms the mundane task of finding a parking spot into a streamlined, information-rich experience that saves time, reduces frustration, and optimizes urban parking infrastructure.&lt;/p&gt;

&lt;p&gt;The project's significance extends beyond mere convenience, representing a forward-thinking approach to urban mobility challenges. By providing granular, real-time data about parking space utilization, the system offers potential benefits for city planners, parking lot managers, and individual drivers. It demonstrates how intelligent technology can be applied to everyday urban challenges, creating smarter, more efficient urban environments through innovative technological solutions.&lt;/p&gt;

&lt;h2&gt;
  
  
  2. Objectives and Scope
&lt;/h2&gt;

&lt;p&gt;The primary objective of this parking lot monitoring system is to develop a comprehensive, real-time solution for tracking and managing parking slot availability. By creating a robust platform that integrates hardware sensors with a sophisticated software infrastructure, we aim to provide instant, accurate information about parking space status, occupancy duration, and predictive availability. This system seeks to address the fundamental challenges of urban parking: uncertainty, inefficiency, and time wastage associated with traditional parking management approaches.&lt;/p&gt;

&lt;p&gt;The project's scope encompasses multiple interconnected technological domains, including IoT sensor deployment, web application development, and database management. Specifically, the system is designed to capture and process real-time sensor data from an ESP32 microcontroller, translate this information into a user-friendly dashboard, and maintain a persistent record of parking slot interactions. The solution aims to provide comprehensive insights such as current occupancy status, estimated time of slot availability, and historical parking utilization patterns.&lt;/p&gt;

&lt;p&gt;By focusing on a modular and scalable design, the project intentionally creates a flexible framework that can be adapted to various parking environments. Whether implemented in university campuses, commercial parking lots, or municipal parking facilities, the system's core architecture allows for seamless integration and customization. This adaptability ensures that the solution can meet diverse parking management needs while maintaining a consistent, user-centric approach to data presentation and analysis.&lt;/p&gt;

&lt;h2&gt;
  
  
  3. Technologies Used
&lt;/h2&gt;

&lt;p&gt;The project leverages a carefully curated technology stack that combines robust hardware and software technologies to create a seamless parking monitoring experience. At the hardware level, the ESP32 microcontroller serves as the primary sensor interface, providing reliable and precise data collection capabilities. Equipped with advanced sensing technologies, the ESP32 can detect vehicle presence, monitor parking slot status, and transmit real-time information with remarkable accuracy and minimal latency.&lt;/p&gt;

&lt;p&gt;On the software side, Flask, a lightweight and flexible Python web framework, forms the backbone of the application's server-side architecture. Its simplicity and extensibility make it an ideal choice for developing dynamic web applications with complex backend logic. SQLite, a lightweight and serverless relational database, complements the Flask backend by providing efficient data storage and retrieval mechanisms. This combination allows for seamless data management, ensuring that parking slot information is persistently recorded and easily accessible.&lt;/p&gt;

&lt;p&gt;The technology stack is further enhanced by HTML, CSS, and potentially JavaScript for creating an interactive and visually appealing dashboard. These front-end technologies enable the creation of a responsive, user-friendly interface that can display complex parking information in an intuitive manner. The integration of these technologies demonstrates a holistic approach to system design, where hardware and software components work in perfect synchronization to deliver a comprehensive parking monitoring solution.&lt;/p&gt;

&lt;h2&gt;
  
  
  4. Results and Impact
&lt;/h2&gt;

&lt;p&gt;The implemented parking lot monitoring system has demonstrated remarkable effectiveness in providing real-time, accurate parking information. By integrating ESP32 sensor technology with a robust web application, the project successfully creates a dynamic platform that offers instantaneous insights into parking slot availability, occupancy duration, and current status. Initial testing and implementation have shown significant improvements in parking space utilization efficiency, reducing time spent searching for available slots and providing users with precise, actionable information.&lt;/p&gt;

&lt;p&gt;From a data management perspective, the system's ability to store and analyze parking interactions creates valuable insights for facility managers. The SQLite database captures comprehensive information about parking patterns, peak usage times, and slot occupancy rates. This data can be instrumental in making informed decisions about parking lot management, potentially leading to optimized space allocation, improved revenue models, and enhanced user experience. The granular nature of the collected data transforms parking management from a reactive to a proactive discipline.&lt;/p&gt;

&lt;p&gt;Beyond immediate operational benefits, the project showcases the potential of IoT and web technologies in solving urban infrastructure challenges. By demonstrating how intelligent sensor networks can be integrated with user-friendly software platforms, the parking monitoring system serves as a proof of concept for smart city initiatives. The scalability and adaptability of the solution suggest broader applications in urban planning, transportation management, and infrastructure optimization.&lt;/p&gt;

&lt;h2&gt;
  
  
  5. Scope for Startup and Market Potential
&lt;/h2&gt;

&lt;p&gt;The parking lot monitoring system represents a significant market opportunity within the rapidly expanding smart city and urban mobility technologies sector. With increasing urbanization and the persistent challenge of parking management, there is a growing demand for intelligent, data-driven solutions that can optimize parking infrastructure. The project's modular design and comprehensive feature set position it favorably for potential commercialization, targeting diverse markets such as educational institutions, commercial complexes, municipal parking authorities, and private parking lot operators.&lt;/p&gt;

&lt;p&gt;Market research indicates substantial growth potential for IoT-based parking management solutions. Urban centers worldwide are seeking innovative approaches to address parking inefficiencies, making technologies like this system increasingly attractive to potential investors and stakeholders. The solution's ability to provide real-time data, improve user experience, and generate valuable insights creates multiple revenue streams, including direct software licensing, hardware sensor sales, and potential data analytics services.&lt;/p&gt;

&lt;p&gt;The startup potential is further enhanced by the system's scalability and adaptability. By designing a flexible architecture that can be easily customized for different environments, the project opens doors to various market segments. Future development could include advanced features like predictive parking availability, integration with navigation systems, and advanced analytics platforms. The combination of cutting-edge technology, clear market need, and innovative approach makes this parking monitoring system a compelling proposition for entrepreneurial ventures in the smart city technology ecosystem.&lt;/p&gt;

&lt;h2&gt;
  
  
  6. Conclusion
&lt;/h2&gt;

&lt;p&gt;The parking lot monitoring system emerges as a testament to the transformative power of integrating IoT technologies, web development, and intelligent data management. By addressing a universal urban challenge through innovative technological solutions, the project demonstrates how thoughtful engineering can create meaningful improvements in everyday experiences. The system's ability to provide real-time, accurate parking information represents a significant step towards more efficient, user-centric urban mobility infrastructure.&lt;/p&gt;

&lt;p&gt;Looking forward, the project serves as a foundational platform for continued innovation in smart city technologies. The successful integration of ESP32 sensors, Flask web framework, and SQLite database showcases the potential for creating sophisticated, yet accessible technological solutions to complex urban challenges. As cities continue to grow and evolve, such intelligent systems will become increasingly crucial in managing resources, improving user experiences, and creating more responsive urban environments.&lt;/p&gt;

&lt;p&gt;Ultimately, this parking lot monitoring system is more than just a technological project—it is a vision of how intelligent technologies can be leveraged to solve real-world problems. By providing clear, actionable information and creating a framework for continuous improvement, the system embodies the principles of smart, data-driven urban development. It invites further exploration, refinement, and expansion, promising exciting possibilities for future iterations and applications.&lt;/p&gt;

&lt;h1&gt;
  
  
  SHAHID &amp;amp; SANMESH PROJECT
&lt;/h1&gt;

&lt;h1&gt;
  
  
  Smart Parking Monitoring System (PPT) (COnTENT )
&lt;/h1&gt;

&lt;h2&gt;
  
  
  An IoT-Based Solution Using ESP32, Flask and SQLite
&lt;/h2&gt;




&lt;h1&gt;
  
  
  Introduction
&lt;/h1&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Project Overview&lt;/strong&gt;: Smart parking monitoring system that tracks and displays real-time parking slot availability&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Problem Statement&lt;/strong&gt;: Traditional parking systems lead to congestion, wasted time, and inefficient space utilization&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Solution&lt;/strong&gt;: IoT-based monitoring system using ESP32 sensors, Flask web application, and SQLite database&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Purpose&lt;/strong&gt;: To streamline parking experience and optimize parking lot management&lt;/li&gt;
&lt;/ul&gt;




&lt;h1&gt;
  
  
  Technology Stack
&lt;/h1&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Hardware&lt;/strong&gt;:

&lt;ul&gt;
&lt;li&gt;ESP32 microcontrollers with ultrasonic/infrared sensors for slot detection&lt;/li&gt;
&lt;li&gt;Wireless connectivity via WiFi/Bluetooth&lt;/li&gt;
&lt;li&gt;Power management system for sensor longevity&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;

&lt;strong&gt;Backend&lt;/strong&gt;:

&lt;ul&gt;
&lt;li&gt;Flask web framework (Python-based)&lt;/li&gt;
&lt;li&gt;SQLite database for data storage and retrieval&lt;/li&gt;
&lt;li&gt;RESTful API for communication between sensors and application&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;

&lt;strong&gt;Frontend&lt;/strong&gt;:

&lt;ul&gt;
&lt;li&gt;Responsive dashboard using HTML, CSS, JavaScript&lt;/li&gt;
&lt;li&gt;Real-time data visualization and status updates&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;




&lt;h1&gt;
  
  
  System Architecture
&lt;/h1&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Data Collection Layer&lt;/strong&gt;: ESP32 sensors detect vehicle presence/absence&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Communication Layer&lt;/strong&gt;: Data transmitted to server via WiFi&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Processing Layer&lt;/strong&gt;: Flask backend processes incoming sensor data&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Storage Layer&lt;/strong&gt;: SQLite database stores historical and current parking data&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Presentation Layer&lt;/strong&gt;: Dashboard displays real-time information and analytics&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;User Interface&lt;/strong&gt;: Web application accessible from multiple devices&lt;/li&gt;
&lt;/ol&gt;




&lt;h1&gt;
  
  
  Key Features
&lt;/h1&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Real-time Monitoring&lt;/strong&gt;: Instant updates on parking slot availability&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Occupancy Prediction&lt;/strong&gt;: Estimated time for slots to become free&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Historical Data Analysis&lt;/strong&gt;: Usage patterns and peak hours&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;User-friendly Dashboard&lt;/strong&gt;: Visual representation of parking lot status&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Data Persistence&lt;/strong&gt;: All information stored for future reference and analytics&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Low Maintenance&lt;/strong&gt;: Energy-efficient sensor design with minimal upkeep requirements&lt;/li&gt;
&lt;/ul&gt;




&lt;h1&gt;
  
  
  Dashboard Overview
&lt;/h1&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Main View&lt;/strong&gt;: Visual layout of parking lot with color-coded slot status&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Metrics Panel&lt;/strong&gt;: 

&lt;ul&gt;
&lt;li&gt;Current occupancy percentage&lt;/li&gt;
&lt;li&gt;Average parking duration&lt;/li&gt;
&lt;li&gt;Peak hours indicator&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;

&lt;strong&gt;Detail View&lt;/strong&gt;: Information per slot including:

&lt;ul&gt;
&lt;li&gt;Current status (free/occupied)&lt;/li&gt;
&lt;li&gt;Duration of current occupancy&lt;/li&gt;
&lt;li&gt;Estimated availability time&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;

&lt;strong&gt;Admin Panel&lt;/strong&gt;: System management and configuration options&lt;/li&gt;

&lt;/ul&gt;




&lt;h1&gt;
  
  
  Implementation Process
&lt;/h1&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Hardware Setup&lt;/strong&gt;: Strategic placement of ESP32 sensors at each parking slot&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Sensor Calibration&lt;/strong&gt;: Fine-tuning detection thresholds for accuracy&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Database Design&lt;/strong&gt;: Schema creation for efficient data storage and retrieval&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Backend Development&lt;/strong&gt;: Flask application with API endpoints and business logic&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Frontend Development&lt;/strong&gt;: Intuitive dashboard creation with responsive design&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Integration Testing&lt;/strong&gt;: System-wide testing of all components&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Deployment&lt;/strong&gt;: Installation and configuration in actual parking facility&lt;/li&gt;
&lt;/ol&gt;




&lt;h1&gt;
  
  
  Technical Challenges &amp;amp; Solutions
&lt;/h1&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Challenge&lt;/strong&gt;: Power management for remote sensors

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Solution&lt;/strong&gt;: Low-power mode implementation and optimized transmission intervals&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;

&lt;strong&gt;Challenge&lt;/strong&gt;: Reliable detection in varying light/weather conditions

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Solution&lt;/strong&gt;: Multiple sensor types and environmental compensation algorithms&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;

&lt;strong&gt;Challenge&lt;/strong&gt;: Data integrity during connectivity issues

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Solution&lt;/strong&gt;: Local data buffering and synchronization protocols&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;

&lt;strong&gt;Challenge&lt;/strong&gt;: Real-time updates without system overload

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Solution&lt;/strong&gt;: Event-driven architecture and efficient database queries&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;




&lt;h1&gt;
  
  
  Business Impact &amp;amp; Advantages
&lt;/h1&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;For Facility Managers&lt;/strong&gt;:

&lt;ul&gt;
&lt;li&gt;Optimized space utilization&lt;/li&gt;
&lt;li&gt;Data-driven decision making&lt;/li&gt;
&lt;li&gt;Reduced operational costs&lt;/li&gt;
&lt;li&gt;Enhanced security monitoring&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;

&lt;strong&gt;For Users&lt;/strong&gt;:

&lt;ul&gt;
&lt;li&gt;Reduced time finding parking&lt;/li&gt;
&lt;li&gt;Decreased frustration and stress&lt;/li&gt;
&lt;li&gt;Improved parking experience&lt;/li&gt;
&lt;li&gt;Potentially reserved parking options&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;




&lt;h1&gt;
  
  
  Conclusion &amp;amp; Future Enhancements
&lt;/h1&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Achievements&lt;/strong&gt;: Creation of functional, efficient parking monitoring system&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Innovation&lt;/strong&gt;: Integration of IoT, web technologies, and data analytics&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Future Enhancements&lt;/strong&gt;:

&lt;ul&gt;
&lt;li&gt;Mobile application development&lt;/li&gt;
&lt;li&gt;Payment integration&lt;/li&gt;
&lt;li&gt;AI-powered predictive analytics&lt;/li&gt;
&lt;li&gt;Integration with smart city infrastructure&lt;/li&gt;
&lt;li&gt;License plate recognition for automated entry/exit&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;

&lt;h2&gt;
  
  
  - &lt;strong&gt;Next Steps&lt;/strong&gt;: User feedback collection and iterative improvements
&lt;/h2&gt;

&lt;h1&gt;
  
  
  Scripts
&lt;/h1&gt;

&lt;h2&gt;
  
  
  SANMESH - Backend Developer
&lt;/h2&gt;

&lt;p&gt;** Introduction &amp;amp; Technology Stack**&lt;/p&gt;

&lt;p&gt;Good morning everyone. I'm Sanmesh, the backend developer for our Smart Parking Monitoring System. Today, we're excited to present our IoT-based parking solution that uses ESP32 sensors, Flask, and SQLite to revolutionize parking management.&lt;/p&gt;

&lt;p&gt;Our project addresses a common urban challenge: inefficient parking systems that lead to congestion, wasted time, and underutilized spaces. Our solution provides real-time monitoring and intelligent data analysis to optimize parking operations.&lt;/p&gt;

&lt;p&gt;Looking at our technology stack, we've built a robust backend using Flask, a lightweight yet powerful Python web framework. This choice allows us to handle concurrent sensor connections efficiently while maintaining excellent response times. For data storage, we implemented SQLite, which provides a perfect balance of simplicity and performance for our needs.&lt;/p&gt;

&lt;p&gt;I'd now like to pass it over to Shahid who will discuss the electronics aspects of our system.&lt;/p&gt;

&lt;h2&gt;
  
  
  SHAHID - Electronics
&lt;/h2&gt;

&lt;p&gt;** System Architecture &amp;amp; Key Features**&lt;/p&gt;

&lt;p&gt;Thank you, Sanmesh. I'm Shahid, responsible for the electronics in this project. &lt;/p&gt;

&lt;p&gt;Our system architecture consists of five interconnected layers that work together seamlessly. At the foundation, we have the data collection layer, where ESP32 microcontrollers equipped with ultrasonic sensors detect vehicle presence in each parking slot. These sensors are strategically placed to ensure accurate readings regardless of vehicle size or position.&lt;/p&gt;

&lt;p&gt;The communication layer transmits this data to our server via WiFi. We implemented a power-efficient protocol that minimizes battery consumption while maintaining reliable connectivity. The processing layer, built on Flask, handles the incoming sensor data, performing necessary calculations and preparing it for storage and display.&lt;/p&gt;

&lt;p&gt;Our key features include real-time monitoring with instant updates on parking availability. The system also predicts when occupied slots will become free based on historical patterns, allowing users to plan accordingly. The sensors are designed for low maintenance, with battery life optimized to last up to six months under normal usage conditions.&lt;/p&gt;

&lt;p&gt;Now, I'll hand over to Om who will walk you through our frontend development and economic aspects.&lt;/p&gt;

&lt;h2&gt;
  
  
  OM - Frontend Developer &amp;amp; Economics
&lt;/h2&gt;

&lt;p&gt;** Dashboard Overview &amp;amp; Implementation Process**&lt;/p&gt;

&lt;p&gt;Thanks, Shahid. I'm Om, frontend developer and economics analyst for this project.&lt;/p&gt;

&lt;p&gt;Our dashboard is the visual heart of the system, designed with both functionality and user experience in mind. The main view provides an intuitive layout of the parking lot with color-coded slots - green for available, red for occupied, and yellow for slots that will be free within 15 minutes.&lt;/p&gt;

&lt;p&gt;The metrics panel gives users and administrators valuable insights into current occupancy percentage, average parking duration, and identifies peak hours. For each individual slot, we display detailed information including current status, duration of occupancy, and estimated availability time.&lt;/p&gt;

&lt;p&gt;From an implementation perspective, we followed a systematic approach. After the hardware setup and sensor calibration, we developed the frontend using responsive design principles. This ensures our dashboard works perfectly on everything from large monitoring screens to mobile devices. We used modern JavaScript frameworks for real-time updates without page refreshes, creating a smooth user experience.&lt;/p&gt;

&lt;p&gt;From an economic standpoint, our solution offers significant ROI. The initial investment in hardware and development is offset by improved parking efficiency, reduced staffing needs, and the potential for premium pricing for guaranteed spaces.&lt;/p&gt;

&lt;p&gt;I'll now pass it to Shahid Nadaf for system planning insights.&lt;/p&gt;

&lt;h2&gt;
  
  
  SHAHID NADAF - System Planning
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;: Technical Challenges, Business Impact, and Conclusion&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Thank you, Om. I'm Shahid Nadaf, heading the system planning for this project.&lt;/p&gt;

&lt;p&gt;We encountered several technical challenges that required innovative solutions. Power management for remote sensors was addressed through low-power mode implementation and optimized transmission intervals. To ensure reliable detection in varying environmental conditions, we employed multiple sensor types and environmental compensation algorithms.&lt;/p&gt;

&lt;p&gt;Data integrity during connectivity issues was solved with local data buffering and synchronization protocols. And to maintain real-time updates without system overload, we implemented an event-driven architecture with efficient database queries.&lt;/p&gt;

&lt;p&gt;The business impact of our system is substantial. For facility managers, it enables optimized space utilization, data-driven decision making, and reduced operational costs. For users, it significantly reduces time spent finding parking, decreases frustration, and improves the overall parking experience.&lt;/p&gt;

&lt;p&gt;In conclusion, we've created a functional, efficient parking monitoring system that successfully integrates IoT, web technologies, and data analytics. Looking ahead, we plan to enhance the system with mobile application development, payment integration, AI-powered predictive analytics, and potential integration with smart city infrastructure.&lt;/p&gt;

&lt;p&gt;Our next steps include collecting user feedback and implementing iterative improvements to further enhance the system's capabilities and user experience.&lt;/p&gt;

&lt;p&gt;Thank you for your attention. We're now happy to answer any questions about our Smart Parking Monitoring System.&lt;/p&gt;

</description>
    </item>
  </channel>
</rss>
