<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[kinshuk Jain Blogs || Cloud , Web development]]></title><description><![CDATA[My thoughts, opinion, take, and some guides on cloud, building scalable infrastructure, deploying apps, web development, and many other technical and non-technical fields]]></description><link>https://blog.cloudkinshuk.in</link><image><url>https://cdn.hashnode.com/res/hashnode/image/upload/v1749293597717/e848fb29-a075-4742-bcd7-fdbeefc74b9d.png</url><title>kinshuk Jain Blogs || Cloud , Web development</title><link>https://blog.cloudkinshuk.in</link></image><generator>RSS for Node</generator><lastBuildDate>Wed, 15 Apr 2026 20:39:13 GMT</lastBuildDate><atom:link href="https://blog.cloudkinshuk.in/rss.xml" rel="self" type="application/rss+xml"/><language><![CDATA[en]]></language><ttl>60</ttl><item><title><![CDATA[How Instagram works?]]></title><description><![CDATA[Instagram feels simple when you use it. You open the app, scroll through photos, watch a reel, send a message, and move on with your day. But behind that smooth experience is an engineering system built to handle hundreds of millions of people intera...]]></description><link>https://blog.cloudkinshuk.in/how-instagram-works</link><guid isPermaLink="true">https://blog.cloudkinshuk.in/how-instagram-works</guid><category><![CDATA[architecture]]></category><category><![CDATA[Cloud Computing]]></category><category><![CDATA[instagram]]></category><dc:creator><![CDATA[Deactivated User]]></dc:creator><pubDate>Sun, 16 Nov 2025 12:01:13 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1763156743876/da22a279-47d3-4b2e-a68c-206ed9a91ed6.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Instagram feels simple when you use it. You open the app, scroll through photos, watch a reel, send a message, and move on with your day. But behind that smooth experience is an engineering system built to handle hundreds of millions of people interacting at the same time.</p>
<p>In this article, I will explain how Instagram is designed under the hood. My goal is to make it simple enough for anyone to understand, yet deep enough for someone interested in backend systems or cloud engineering.</p>
<h2 id="heading-the-heart-of-instagram">The Heart of Instagram</h2>
<p>At its core, Instagram is a read heavy system. For every photo uploaded, millions of people may view it. This means the architecture must make reading content extremely fast.</p>
<p>Most of Instagram’s speed comes from separating the work into layers. One layer handles user actions, another handles data, and another handles delivery. This separation helps the system scale as more people join.</p>
<h2 id="heading-the-feed-system">The Feed System</h2>
<p>The feed is Instagram’s most important feature. When you open the app, content shows up immediately. To make this possible, Instagram precomputes much of what you see before you even open the app.</p>
<p>Instead of calculating the feed at the moment you refresh it, the system prepares it in the background. This idea is called fan out on write. Whenever someone uploads a post, Instagram starts preparing feed entries for that person’s followers.</p>
<p>This way, the app has almost no waiting time when you open it. The content is already ready to load.</p>
<h2 id="heading-using-caches-for-speed">Using Caches For Speed</h2>
<p>To serve millions of requests every second, Instagram keeps frequently accessed data in memory. Reading from memory is far faster than reading from a database. This is why Instagram uses caching heavily for feed content, user profiles, reels, stories, and even comments.</p>
<p>By serving most requests from cache, Instagram reduces the load on its main database systems and keeps response times low.</p>
<h2 id="heading-storing-data-at-scale">Storing Data At Scale</h2>
<p>Instagram started with a simple relational database. But as the user base grew, the team migrated much of the system to distributed databases.</p>
<p>Images and videos are stored in object storage. Metadata such as captions, comments, likes, followers, and notifications are stored in distributed databases designed for high availability and fast reads.</p>
<p>The key idea is that different types of data need different types of storage. A photo is large and rarely changes. A like count is tiny and can change every second. Each of these needs a different storage strategy.</p>
<h2 id="heading-the-role-of-microservices">The Role of Microservices</h2>
<p>As Instagram expanded, the engineering team moved from a monolithic system to a microservices architecture. Each major feature like feed, stories, search, messaging, notifications, or ads works as a separate service.</p>
<p>This allows teams to build, deploy, and scale each service independently. If the reels service needs more capacity during peak hours, they can scale only that service. The rest of the application continues running smoothly.</p>
<p>Microservices also reduce the risk of system wide failures. If one service has issues, others remain stable.</p>
<h2 id="heading-content-delivery-across-the-world">Content Delivery Across The World</h2>
<p>One of Instagram’s biggest challenges is delivering photos and videos quickly anywhere in the world. The solution is a global content delivery network.</p>
<p>A user in India should not wait for a video stored on a server in the United States. Instead, the video is cached on servers closer to the user. When they open the app, the content loads from the nearest location.</p>
<p>This design keeps Instagram responsive even for users far away from main data centers.</p>
<h2 id="heading-messaging-and-realtime-interactions">Messaging and Realtime Interactions</h2>
<p>Sending a message must feel instant. Seeing a like or comment notification must feel immediate. Instagram relies on real time communication protocols to make this happen.</p>
<p>When a user sends a message, the system routes it through a high performance chat service that maintains connections with millions of devices simultaneously. This service is optimized for low latency and can deliver updates within milliseconds.</p>
<p>Realtime notifications follow a similar pattern. The system maintains lightweight connections and pushes updates the moment something happens.</p>
<h2 id="heading-machine-learning-everywhere">Machine Learning Everywhere</h2>
<p>Machine learning influences almost every part of Instagram. It decides what appears in your feed. It powers recommendations on Explore. It filters spam. It detects harmful content. It ranks reels. It helps the platform personalize what each user sees.</p>
<p>These models run on large clusters of GPUs and specialized infrastructure. They process enormous amounts of data every day and continuously retrain to improve accuracy. ML is one of the hidden engines that keeps Instagram engaging for billions of people.</p>
<h2 id="heading-building-systems-that-grow">Building Systems That Grow</h2>
<p>The most impressive part of Instagram’s engineering is not a single feature. It is the mindset of building systems that can grow continuously.</p>
<p>Every component is designed to scale horizontally. When more users join, more servers can be added. When new features launch, new microservices handle them. When data grows, storage is expanded across regions.</p>
<p>Instagram’s architecture is not static. It is a living system that evolves with user behavior and technological change.</p>
<p>My website : https://cloudkinshuk.in</p>
<p>My LinkedIn : <a target="_blank" href="https://www.linkedin.com/in/kinshukjainn/">https://www.linkedin.com/in/kinshukjainn/</a></p>
<p>My twitter : https://x.com/realkinshuk004</p>
]]></content:encoded></item><item><title><![CDATA[Linux is go to `os` for development]]></title><description><![CDATA[As a student navigating the world of software development, my comfort zone has always been Windows. It's the OS I grew up with. For years, it has served me well as I've dived into technologies like React, TypeScript, and TailwindCSS. I’ve even manage...]]></description><link>https://blog.cloudkinshuk.in/linux-is-go-to-os-for-development</link><guid isPermaLink="true">https://blog.cloudkinshuk.in/linux-is-go-to-os-for-development</guid><category><![CDATA[Linux]]></category><category><![CDATA[Windows]]></category><category><![CDATA[React]]></category><category><![CDATA[TypeScript]]></category><category><![CDATA[AWS]]></category><category><![CDATA[Docker]]></category><category><![CDATA[Kubernetes]]></category><category><![CDATA[WSL]]></category><category><![CDATA[wsl2]]></category><category><![CDATA[Developer]]></category><category><![CDATA[Web Development]]></category><category><![CDATA[Android]]></category><category><![CDATA[operating system]]></category><category><![CDATA[Open Source]]></category><dc:creator><![CDATA[Deactivated User]]></dc:creator><pubDate>Fri, 01 Aug 2025 13:04:42 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1754050784721/7c79288e-ed6c-408a-9c85-df0b82bc23dd.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>As a student navigating the world of software development, my comfort zone has always been Windows. It's the OS I grew up with. For years, it has served me well as I've dived into technologies like React, TypeScript, and TailwindCSS. I’ve even managed cloud services like AWS Amplify and Route 53 straight from my familiar Windows desktop.</p>
<p>But as I started working with more powerful tools like Docker, Kubernetes, and the broader AWS ecosystem, I kept hearing the same advice from seniors and online communities: "You should use Linux." For a long time, I resisted. Why switch when everything works?</p>
<p>My perspective changed when I discovered WSL2 (Windows Subsystem for Linux). It was my first real taste of the Linux world, and it opened my eyes. Without ever leaving Windows, I began to understand why Linux is considered the gold standard for developers. This isn't a <code>Windows vs. Linux</code> debate, but my personal observation on the real, practical advantages Linux offers, especially for students like us.</p>
<h2 id="heading-the-command-line-isnt-scary-its-powerful">The Command Line Isn't Scary, It's Powerful</h2>
<p>On <code>Windows</code>, we often rely on graphical interfaces to get things done. The command line can feel like an afterthought. In Linux, the command line, or <code>shell</code> is the heart of the operating system. When I started using it through <code>WSL2</code> , I realized it wasn't just for running an occasional command; it was for controlling everything.</p>
<p>Simple commands for finding files, managing processes, and connecting to servers are incredibly fast and efficient. Most importantly, the servers where our applications will eventually run <code>(like an AWS EC2 instance)</code> don't have a fancy user interface. They are managed entirely through the command line. Getting comfortable with it early on is a massive advantage for any future developer.</p>
<h2 id="heading-software-installation-is-a-breeze">Software Installation is a Breeze</h2>
<p>Remember the process of installing a new tool on Windows? You search for it online, find the right download page, download a .exe file, and click "Next" through a series of installation windows.</p>
<p>In the Linux world, this is handled by a package manager. For Ubuntu (which is what I use in WSL2), the package manager is called apt. Instead of hunting for software, I can just open my terminal and type a single command:</p>
<pre><code class="lang-bash">sudo apt install nodejs
</code></pre>
<p>That's it. The package manager finds the right version, installs it, and sets it up for me. It's like having an app store for all your development tools. It saves an incredible amount of time and helps avoid the classic "path" configuration headaches that often frustrate beginners on Windows.</p>
<h2 id="heading-develop-in-the-same-environment-your-code-will-run-in">Develop in the Same Environment Your Code Will Run In</h2>
<p>This is perhaps the biggest "aha!" moment I had. Most of the internet from the servers that host websites to the containers managed by Docker and Kubernetes runs on Linux.</p>
<p>When you develop on a non-Linux system, your code runs in an environment that is slightly different from where it will be deployed. This can lead to the dreaded "but it works on my machine!" problem, where code that runs perfectly for you breaks when it's deployed to a server.</p>
<p>By using Linux/ <code>WSL2)</code>, you create a development environment that is nearly identical to the production environment. This consistency means fewer surprises and easier debugging. My work with Docker became so much smoother once I was building and running containers in a native Linux environment right on my Windows machine.</p>
<h2 id="heading-you-are-in-complete-control">You Are in Complete Control</h2>
<p>Linux is open source, which gives you an incredible amount of freedom and control. You can customize almost every aspect of the operating system to fit your workflow perfectly. While this can seem daunting, it means you can build a lightweight, distraction free environment tailored specifically for coding.</p>
<h2 id="heading-personal-advice">⚠️ Personal Advice</h2>
<p>For students, this also has a very practical benefit: Linux can run on almost anything. Have an old laptop that struggles to run Windows 10 or 11? A lightweight Linux distribution can bring it back to life and turn it into a perfectly capable development machine.</p>
<h2 id="heading-my-final-thoughts">⭐ My Final Thoughts</h2>
<p>I'm still a <code>Windows</code> user and love the windows operating system no os can come close to it and love its ecosystem and interface for day-to-day tasks. But incorporating Linux into my workflow through WSL2 has been a game-changer. It has made me a more efficient developer and better prepared me for the environments where my code will ultimately live.</p>
<p>If you're a student developer who, like me, has only ever used Windows, I highly recommend giving WSL2 a try. You don't have to abandon your familiar OS. You can get the best of both worlds and gain a crucial skill that will serve you throughout your career in software.</p>
]]></content:encoded></item><item><title><![CDATA[When Vibes Aren’t Enough: Exploring the Full Stack Needs of SaaS Development]]></title><description><![CDATA[🚀 From Hype to Reality: Can AI Really Build Scalable SaaS Applications?
Over the past few years, Artificial Intelligence has evolved at an incredible pace. It's not just helping people with daily tasks—it’s revolutionizing how we approach problem-so...]]></description><link>https://blog.cloudkinshuk.in/when-vibes-arent-enough-exploring-the-full-stack-needs-of-saas-development</link><guid isPermaLink="true">https://blog.cloudkinshuk.in/when-vibes-arent-enough-exploring-the-full-stack-needs-of-saas-development</guid><category><![CDATA[web dev]]></category><category><![CDATA[vibe coding]]></category><category><![CDATA[Cloud]]></category><category><![CDATA[AWS]]></category><category><![CDATA[student]]></category><category><![CDATA[College]]></category><dc:creator><![CDATA[Deactivated User]]></dc:creator><pubDate>Thu, 05 Jun 2025 06:30:00 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1749215855043/977ff5e9-71a1-4011-84c5-21abfd268738.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<hr />
<h2 id="heading-from-hype-to-reality-can-ai-really-build-scalable-saas-applications">🚀 From Hype to Reality: Can AI Really Build Scalable SaaS Applications?</h2>
<p>Over the past few years, Artificial Intelligence has evolved at an incredible pace. It's not just helping people with daily tasks—it’s revolutionizing how we approach problem-solving, especially in the tech world. Developers are no longer just building basic CRUD apps with AI. They're now using tools like ChatGPT, Cursor, Windsor, and others to attempt real-world solutions.</p>
<p>At first, this shift felt natural. AI was like a helpful tutor—a coding assistant that could unblock you, suggest optimizations, and support small-scale projects. But something changed in 2025.</p>
<hr />
<h3 id="heading-the-new-buzz-ai-can-build-complete-saas-applications">💡 The New Buzz: “AI Can Build Complete SaaS Applications”</h3>
<p>Social media, blogs, and developer communities started pushing a new narrative. Suddenly, AI wasn't just a helper—it was being seen as a full-fledged co-developer. Phrases like <em>“vibe coding with AI”</em> and <em>“AI built my entire SaaS”</em> exploded in popularity. This wave of content created a lot of excitement—and just as much tension—within the developer community.</p>
<p>The upside? It gave non-technical people the confidence to explore AI coding tools. They could now spin up apps, test ideas, and feel empowered in ways they couldn’t before.</p>
<p>But here's where the story gets more complicated.</p>
<hr />
<h3 id="heading-ai-is-powerfulbut-its-not-a-magic-wand">AI Is Powerful—But It’s Not a Magic Wand</h3>
<p>Let’s be honest: these models are <strong>state-of-the-art</strong>. They’ve proven useful across both technical and non-technical domains. But that doesn’t mean they can replace a skilled developer, especially when it comes to building something <strong>scalable</strong>, <strong>secure</strong>, and <strong>production-ready</strong>.</p>
<p>Here's the core issue: many users jump in with <strong>very vague prompts</strong>, without giving the AI proper context about what they want. They expect the model to somehow figure out the app’s architecture, purpose, tech stack, and scalability needs—all from a general request like:</p>
<blockquote>
<p>“Build me a SaaS app that does X.”</p>
</blockquote>
<p>This is where things start to break down.</p>
<hr />
<h3 id="heading-the-reality-of-building-saas-apps-with-ai">The Reality of Building SaaS Apps with AI</h3>
<p>Building a SaaS application requires:</p>
<ul>
<li><p>Clear understanding of the <strong>problem domain</strong></p>
</li>
<li><p>Knowledge of <strong>tech stacks</strong>, <strong>architectures</strong>, and <strong>scalability patterns</strong></p>
</li>
<li><p>Proper <strong>data modeling</strong>, <strong>security best practices</strong>, and <strong>user management</strong></p>
</li>
<li><p>Deep context about the <strong>user journey</strong> and <strong>core features</strong></p>
</li>
</ul>
<p>AI doesn’t <strong>automatically know this</strong> unless you tell it. Even then, it doesn’t always pick the best combination of tools or scalable practices. Most of the time, the code it generates:</p>
<ul>
<li><p><strong>Works at first glance</strong></p>
</li>
<li><p><strong>Lacks deeper structure</strong></p>
</li>
<li><p><strong>Doesn’t scale well under real-world load</strong></p>
</li>
<li><p><strong>Misses edge cases and security layers</strong></p>
</li>
</ul>
<p>In some rare cases, it might get close. But in most, developers will need to <strong>refactor heavily</strong>, rewrite parts, and sometimes even start from scratch.</p>
<h3 id="heading-why-this-happens-its-all-about-the-data">Why This Happens: It’s All About the Data</h3>
<p>These AI models are trained on vast amounts of publicly available code—<strong>including low-quality code</strong>. That means when you ask for a feature, the model might stitch together pieces of code that <em>look right</em> but are actually outdated, insecure, or inefficient.</p>
<p>Unless you're experienced, you might accept that code at face value—only to realize later that:</p>
<ul>
<li><p>It doesn’t meet performance benchmarks</p>
</li>
<li><p>It’s vulnerable to attacks</p>
</li>
<li><p>It becomes unmanageable as the app grows</p>
</li>
</ul>
<p>And that’s where many non-technical users hit a wall. They get stuck, frustrated, and often give up—because they expected the model to handle the entire process without their involvement.</p>
<hr />
<h3 id="heading-my-honest-take-as-a-student-developer">✅ My Honest Take (as a Student Developer)</h3>
<p>As a BTech student from an Electrical Engineering background at a Tier 3 college, I find these tools incredibly exciting. They’ve helped me learn, build, and experiment faster than ever before.</p>
<p>But I also understand their limits. AI isn’t a shortcut to skip learning how web apps actually work. It’s a <strong>power tool</strong>, but you still need to understand the blueprint. Without context, even the smartest AI will struggle to build something meaningful. The future? I believe AI will become an even better coding companion. Maybe one day it <strong>will</strong> build scalable SaaS apps with minimal input. But in 2025, we’re not fully there yet.</p>
<hr />
<h3 id="heading-final-thoughts">🧭 Final Thoughts</h3>
<p>AI is changing how we build. It’s opening doors for more people to create. But let’s not get swept up in the hype. Instead of expecting AI to replace us, we should learn how to <strong>work with it better</strong>—as thoughtful developers, clear communicators, and responsible builders. Because at the end of the day, it’s not just about writing code. It’s about solving real problems—with real understanding.</p>
<h2 id="heading-follow-connect-for-more">Follow / connect for more :</h2>
<p>Twitter / X : <a target="_blank" href="https://x.com/realkinshuk004">@realkinshuk004</a></p>
<p>Instagram : <a target="_blank" href="https://instagram.com/kinshukjain._">kinshukjain._</a></p>
<p>linkedin : <a target="_blank" href="https://linkedin.com/in/kinshukjainn">kinshukjainn</a></p>
<p>_________________________________________________________________________________________</p>
<h3 id="heading-to-know-more-about-me">To know more about me :</h3>
<p>https://cloudkinshuk.in/blog</p>
<p>https://cloudkinshuk.in/</p>
<p>_________________________________________________________________________________________</p>
<h3 id="heading-for-more-blogs">For more Blogs :</h3>
<p>https://blog.cloudkinshuk.in</p>
]]></content:encoded></item><item><title><![CDATA[ZeroLeaks: A Secure, Customizable Password Generator Built with AI and Modern Web Tech]]></title><description><![CDATA[In today’s digital-first world, strong passwords are the first line of defense against unauthorized access. While many people reuse weak passwords or rely on built-in generators, I wanted to build something better—something that puts security, custom...]]></description><link>https://blog.cloudkinshuk.in/passgentool-a-secure-customizable-password-generator-built-with-ai-and-modern-web-tech</link><guid isPermaLink="true">https://blog.cloudkinshuk.in/passgentool-a-secure-customizable-password-generator-built-with-ai-and-modern-web-tech</guid><category><![CDATA[Security]]></category><category><![CDATA[passwords]]></category><category><![CDATA[AWS]]></category><category><![CDATA[aws lambda]]></category><category><![CDATA[aws-route53]]></category><category><![CDATA[Cloud Computing]]></category><category><![CDATA[Cloud]]></category><category><![CDATA[Devops]]></category><dc:creator><![CDATA[Deactivated User]]></dc:creator><pubDate>Wed, 21 May 2025 13:18:03 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1754050554068/4bdf3508-3e12-49c1-aeaf-1edbc2323544.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>In today’s digital-first world, strong passwords are the first line of defense against unauthorized access. While many people reuse weak passwords or rely on built-in generators, I wanted to build something better—something that puts <strong>security, customization, and clarity</strong> in the user’s hands.</p>
<p>That’s how <strong>PassGentoo</strong> was born: an open-source, customizable password generator built using <strong>React</strong>, <strong>TypeScript</strong>, <strong>Tailwind CSS</strong>, and the <strong>Web Crypto API</strong>—and yes, <strong>co-built with AI tools like ChatGPT to speed up development, design secure logic, and write clear documentation</strong>.</p>
<p>ZeroLeaks is now live on a custom domain via <strong>AWS Amplify and Route 53</strong>, offering full HTTPS security and DNS-level control.</p>
<blockquote>
<p>Note : This is the initial stage launch soon there will be login , auth , passoword storing functionality too</p>
</blockquote>
<hr />
<h2 id="heading-tech-stack-overview">🛠️ Tech Stack Overview</h2>
<p>Here’s what powers PassGentoo:</p>
<ul>
<li><p><strong>React + TypeScript</strong>: For building robust, component-based UIs with type safety.</p>
</li>
<li><p><strong>Tailwind CSS</strong>: Utility-first styling for rapid, responsive design.</p>
</li>
<li><p><strong>Vite</strong>: A blazing-fast bundler for development and optimized production builds.</p>
</li>
<li><p><strong>Web Crypto API</strong>: For cryptographically strong random values generated securely.</p>
</li>
<li><p><strong>AWS Amplify + Route 53</strong>: For hosting, DNS, and HTTPS deployment.</p>
</li>
</ul>
<hr />
<h2 id="heading-why-i-chose-to-build-this-with-ai">🤖 Why I Chose to Build This With AI</h2>
<p>I used <strong>AI tools like ChatGPT</strong> throughout the development process—not as a shortcut, but as a collaborator. From brainstorming UI decisions to understanding cryptographic APIs and writing real-time entropy logic, AI helped me:</p>
<ul>
<li><p>Understand best practices in secure random number generation</p>
</li>
<li><p>Structure my frontend for maximum performance and readability</p>
</li>
<li><p>Break down complex concepts like <strong>entropy</strong> and <strong>crack-time estimation</strong></p>
</li>
<li><p>Write this technical blog and improve my documentation quality</p>
</li>
</ul>
<p>Instead of guessing, I could ask AI-specific technical questions and use that knowledge to implement and refine code <strong>on my own terms</strong>. This approach helped me learn faster and build more confidently.</p>
<hr />
<h2 id="heading-true-randomness-with-windowcryptogetrandomvalues">🔐 True Randomness with <code>window.crypto.getRandomValues()</code></h2>
<p>Most people don’t realize how critical <em>true randomness</em> is in password generation. Weak randomness = guessable passwords = broken security.</p>
<p>That’s why PassGentoo uses <code>window.crypto.getRandomValues()</code>—a browser-native method that pulls random bytes from your <strong>device's OS entropy pool</strong>, offering <strong>cryptographically secure</strong> randomness. This is much stronger than <code>Math.random()</code>, which is deterministic and not secure for sensitive applications.</p>
<pre><code class="lang-ts"><span class="hljs-keyword">const</span> entropy = <span class="hljs-keyword">new</span> <span class="hljs-built_in">Uint8Array</span>(<span class="hljs-number">1024</span>);
<span class="hljs-built_in">window</span>.crypto.getRandomValues(entropy);
</code></pre>
<p>This creates an <strong>entropy pool</strong> of 1024 bytes—plenty to securely generate multiple passwords in a single session.</p>
<hr />
<h2 id="heading-why-entropy-matters">🧠 Why Entropy Matters</h2>
<p>Each byte has 256 possible values (0–255), giving us a high level of entropy. High entropy ensures that each password:</p>
<ul>
<li><p>Is <strong>unpredictable</strong> to attackers</p>
</li>
<li><p><strong>Cannot be guessed</strong> or brute-forced easily</p>
</li>
<li><p>Respects <strong>OWASP-recommended</strong> security practices</p>
</li>
</ul>
<p>This client-side implementation means <strong>nothing is ever sent to a server</strong>, and all logic runs locally in the browser for maximum privacy.</p>
<hr />
<h2 id="heading-key-features">🎛️ Key Features</h2>
<ul>
<li><p>Adjustable password <strong>length</strong> (12–64+)</p>
</li>
<li><p>Toggleable <strong>character sets</strong> (uppercase, lowercase, numbers, symbols)</p>
</li>
<li><p><strong>Exclude visually confusing characters</strong> like <code>l</code>, <code>I</code>, <code>0</code>, <code>O</code></p>
</li>
<li><p>Option to generate <strong>pronounceable passwords</strong> for better usability</p>
</li>
</ul>
<hr />
<h2 id="heading-real-time-strength-feedback">📊 Real-Time Strength Feedback</h2>
<p>ZeroLeaks also includes a <strong>real-time password strength analyzer</strong>:</p>
<ul>
<li><p><strong>Shannon entropy calculation</strong> (in bits)</p>
</li>
<li><p><strong>Estimated crack time</strong> based on real-world attack models</p>
</li>
<li><p><strong>Color-coded strength meter</strong> (weak → strong) with live updates</p>
</li>
</ul>
<p>This helps users understand the real-world implications of their password choices instantly.</p>
<hr />
<h2 id="heading-hosting-amp-deployment">🌐 Hosting &amp; Deployment</h2>
<p>I deployed PassGentoo at <a target="_blank" href="https://passgentoo.cloudkinshuk.in/"><strong>zeroleaks.cloudkinshuk.in</strong></a> using:</p>
<ol>
<li><p><code>vite build</code> for production-ready output</p>
</li>
<li><p><strong>AWS Amplify</strong> for fast static hosting</p>
</li>
<li><p>A custom domain purchased via <strong>Hostinger</strong></p>
</li>
<li><p>DNS setup via <strong>AWS Route 53</strong>:</p>
<ul>
<li><p>A records → Amplify endpoint</p>
</li>
<li><p>NS + CNAME → custom subdomains</p>
</li>
</ul>
</li>
<li><p>SSL/TLS enabled via AWS for <strong>HTTPS security</strong></p>
</li>
</ol>
<hr />
<h2 id="heading-what-i-learned">📚 What I Learned</h2>
<ul>
<li><p>How to integrate the <strong>Web Crypto API</strong> securely</p>
</li>
<li><p>How to create a balance between <strong>usability</strong> and <strong>security</strong></p>
</li>
<li><p>How to structure modern frontend apps with <strong>Vite</strong>, <strong>React</strong>, and <strong>Tailwind</strong></p>
</li>
<li><p>How to set up a full <strong>DNS + HTTPS pipeline on AWS</strong></p>
</li>
<li><p>How to document projects cleanly with the help of <strong>AI-generated explanations</strong></p>
</li>
</ul>
<hr />
<h2 id="heading-why-this-matters">💡 Why This Matters ?</h2>
<p>Whether you’re a developer or an everyday user, generating secure passwords shouldn’t be hard—or feel like magic. <strong>With AI as my assistant and mentor, I built a tool that’s both functional and educational</strong>.</p>
<p>🔗 <a target="_blank" href="https://zeroleaks.cloudkinshuk.in/"><strong>Live</strong></a> <a target="_blank" href="https://passgentoo.cloudkinshuk.in/"><strong>Demo</strong></a> | <a target="_blank" href="https://github.com/kinshukjainn/Encrypted-password-genrated"><strong>GitHub Repo</strong></a> <strong>||</strong> <a target="_blank" href="https://cloudkinshuk.in"><strong>Portfolio</strong></a> <strong>||</strong> <a target="_blank" href="https://pagespeed.web.dev/"><strong>CheckSEOHere</strong></a></p>
<p>I invite you to <strong>fork, customize, or extend</strong> PassGentoo in your own way. Use it, learn from it, or just explore how security can be practical and transparent.</p>
<hr />
<h2 id="heading-built-by-me-with-guidance-from-ai">✅ Built by Me — With Guidance from AI</h2>
<p>This project reflects <strong>my evolving journey in tech</strong>, supported by AI tools that helped fill knowledge gaps, explain security principles, and write production-ready code.</p>
<blockquote>
<p>I didn’t use AI to avoid learning—I used it to <strong>learn faster</strong>, <strong>build better</strong>, and <strong>ship smarter</strong>.</p>
</blockquote>
<p>Let’s build more ethical, open, and secure tools for the web. PassGentoo is my small step in that direction.</p>
]]></content:encoded></item><item><title><![CDATA[How i achieved 100% SEO ( Search Engine Optimization Score ) in my Portfolio Website]]></title><description><![CDATA[This article focuses on how you can improve the SEO of your website—not just your portfolio, but any web project you're building.

🔍 What is SEO?
SEO stands for Search Engine Optimization. It’s the process of improving a website to rank higher in se...]]></description><link>https://blog.cloudkinshuk.in/how-i-achieved-100-seo-search-engine-optimization-score-in-my-portfolio-website</link><guid isPermaLink="true">https://blog.cloudkinshuk.in/how-i-achieved-100-seo-search-engine-optimization-score-in-my-portfolio-website</guid><category><![CDATA[Cloud]]></category><category><![CDATA[webdev]]></category><category><![CDATA[Web Development]]></category><category><![CDATA[React]]></category><category><![CDATA[TypeScript]]></category><category><![CDATA[AWS]]></category><category><![CDATA[AWS Amplify]]></category><category><![CDATA[SEO]]></category><category><![CDATA[Google]]></category><category><![CDATA[ranking]]></category><dc:creator><![CDATA[Deactivated User]]></dc:creator><pubDate>Mon, 12 May 2025 03:21:09 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1754110155474/aba6dcf4-0a13-4be0-b17d-68f3d4234224.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>This article focuses on how you can <strong>improve the SEO of your website</strong>—not just your portfolio, but <em>any</em> web project you're building.</p>
<hr />
<h3 id="heading-what-is-seo"><strong>🔍 What is SEO?</strong></h3>
<p><strong>SEO</strong> stands for <strong>Search Engine Optimization</strong>. It’s the process of improving a website to rank higher in search engines like Google, Bing, or Yahoo.</p>
<p>Imagine search engines as librarians. When someone asks, <em>"What’s the best book on dinosaurs?"</em>, the librarian picks the most relevant one. Search engines do the same for websites.</p>
<p>If you search <strong>"how to make chocolate cake"</strong>, you’ll get millions of results—but most users only click on the first 5–10 links. If your website doesn’t rank in that top section, it’s unlikely people will even see it.</p>
<p>That’s why <strong>SEO is crucial</strong>: <strong>Higher rank = More visibility = More traffic = More impact.</strong></p>
<hr />
<h3 id="heading-my-seo-results"><strong>🌟 My SEO Results</strong></h3>
<p>I achieved a <strong>100% SEO score</strong> on Google Lighthouse for my personal portfolio. Here’s a snapshot from my website and you can check google page insights:</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1747678707984/5c136fa8-ac49-4c1a-97f5-e20c9024858e.png" alt class="image--center mx-auto" /></p>
<hr />
<h3 id="heading-tech-stack-used"><strong>🛠️ Tech Stack Used</strong></h3>
<p><strong>Vite :</strong> Fast bundling &amp; dev server</p>
<p><strong>TypeScript :</strong> Type-safe development</p>
<p><strong>React :</strong> Component-based architecture</p>
<p><strong>Framer Motion</strong> :Animations &amp; micro-interactions</p>
<p><strong>Tailwind CSS :</strong> Responsive utility-first CSS framework</p>
<p><strong>React Icons :</strong> Lightweight vector icons</p>
<p><strong>AWS Amplify :</strong> Hosting with CI/CD and free SSL</p>
<p><strong>AWS Route 53 :</strong> DNS and custom domain setup</p>
<p><strong>Hostinger :</strong> Domain name purchase</p>
<hr />
<h3 id="heading-my-complete-seo-optimization-strategy"><strong>✅ My Complete SEO Optimization Strategy</strong></h3>
<hr />
<h3 id="heading-1-page-titles-amp-meta-tags"><strong>1. 📌 Page Titles &amp; Meta Tags</strong></h3>
<ul>
<li><p>Unique &lt;title&gt; and &lt;meta description&gt; for each page.</p>
</li>
<li><p>Focused keywords used naturally (no keyword stuffing).</p>
</li>
<li><p>&lt;meta name="robots" content="index, follow"&gt; added for crawlability.</p>
</li>
</ul>
<p><strong>Tools Used:</strong></p>
<ul>
<li><p>vite-plugin-html for static pages</p>
</li>
<li><p>react-helmet for dynamic pages and routing</p>
</li>
</ul>
<hr />
<h3 id="heading-2-custom-domain-https"><strong>2. 🌐 Custom Domain + HTTPS</strong></h3>
<ul>
<li><p>Domain purchased via <strong>Hostinger</strong>.</p>
</li>
<li><p>Connected to <strong>AWS Route 53</strong> and hosted on <strong>AWS Amplify</strong>.</p>
</li>
<li><p>Free SSL (HTTPS) enabled by Amplify.</p>
</li>
</ul>
<p>✅ Boosts <strong>trust</strong>, <strong>SEO ranking</strong>, and fulfills Google’s <em>secure site</em> requirements.</p>
<hr />
<h3 id="heading-3-mobile-friendly-design"><strong>3. 📱 Mobile-Friendly Design</strong></h3>
<ul>
<li><p>Built a <strong>responsive layout</strong> using <strong>Tailwind CSS</strong>.</p>
</li>
<li><p>Tested on:</p>
</li>
</ul>
<p>Utility classes like sm:, md:, lg: made responsiveness easy.</p>
<hr />
<h3 id="heading-4-performance-core-web-vitals"><strong>4. ⚡ Performance + Core Web Vitals</strong></h3>
<ul>
<li><p><strong>Vite</strong> helped reduce bundle size and improve loading speed.</p>
</li>
<li><p><strong>Optimizations included</strong>:</p>
</li>
</ul>
<p>Verified with <strong>Google Lighthouse</strong>:</p>
<ul>
<li><p>✅ LCP (Largest Contentful Paint)</p>
</li>
<li><p>✅ FID (First Input Delay)</p>
</li>
<li><p>✅ CLS (Cumulative Layout Shift)</p>
</li>
</ul>
<hr />
<h3 id="heading-5-sitemap-amp-robotstxt"><strong>5. 📄 Sitemap &amp; robots.txt</strong></h3>
<p>Created and hosted manually:</p>
<p><strong>How:</strong></p>
<ul>
<li><p>Added in the /dist directory for Amplify builds</p>
</li>
<li><p>Verified via <strong>Google Search Console</strong></p>
</li>
</ul>
<hr />
<h3 id="heading-6-open-graph-amp-twitter-tags"><strong>6. 🔍 Open Graph &amp; Twitter Tags</strong></h3>
<p>Boosts how your site looks when shared on social media.</p>
<pre><code class="lang-cpp">&lt;meta property=<span class="hljs-string">"og:title"</span> content=<span class="hljs-string">"Kinshuk Jain | Cloud &amp; DevOps Enthusiast"</span> /&gt;
&lt;meta property=<span class="hljs-string">"og:description"</span> content=<span class="hljs-string">"Explore my projects, skills, and blogs."</span> /&gt;
&lt;meta property=<span class="hljs-string">"og:image"</span> content=<span class="hljs-string">"https://myportfolio.com/preview.png"</span> /&gt;
&lt;meta property=<span class="hljs-string">"og:url"</span> content=<span class="hljs-string">"https://myportfolio.com"</span> /&gt;
&lt;meta name=<span class="hljs-string">"twitter:card"</span> content=<span class="hljs-string">"summary_large_image"</span> /&gt;
</code></pre>
<hr />
<h3 id="heading-7-canonical-tags-amp-url-structure"><strong>7. 🔗 Canonical Tags &amp; URL Structure</strong></h3>
<ul>
<li><p>Used &lt;link rel="canonical" href="https://myportfolio.com/about" /&gt;</p>
</li>
<li><p>Clean, hyphenated, lowercase URLs (no query strings for static pages)</p>
</li>
</ul>
<hr />
<h3 id="heading-8-semantic-html-amp-accessibility"><strong>8. 🏷️ Semantic HTML &amp; Accessibility</strong></h3>
<ul>
<li><p>Used semantic tags: &lt;header&gt;, &lt;main&gt;, &lt;footer&gt;, etc.</p>
</li>
<li><p>One &lt;h1&gt; per page, followed by logical heading structure.</p>
</li>
<li><p>Added alt tags to all images.</p>
</li>
<li><p>Used aria-labels and ensured full keyboard navigation.</p>
</li>
</ul>
<hr />
<h3 id="heading-9-internal-linking"><strong>9. 🕸️ Internal Linking</strong></h3>
<ul>
<li>Linked pages like:</li>
</ul>
<p>Helps Google bots and users easily navigate the site.</p>
<hr />
<h3 id="heading-10-external-backlinks-amp-social-signals"><strong>10. 🌍 External Backlinks &amp; Social Signals</strong></h3>
<p>Shared the portfolio on:</p>
<ul>
<li><p>LinkedIn bio</p>
</li>
<li><p>GitHub profile</p>
</li>
<li><p><a target="_blank" href="http://dev.to/"><strong>Dev.to</strong></a> / Hashnode blogs</p>
</li>
</ul>
<p>✅ Helps Google discover and crawl your website faster.</p>
<hr />
<h3 id="heading-11-google-analytics"><strong>11. 📈 Google Analytics :</strong></h3>
<ul>
<li>Connected <strong>Google Analytics</strong> to monitor:</li>
</ul>
<hr />
<h3 id="heading-aws-amplify-build-setup-sample"><strong>🧱 AWS Amplify Build Setup (Sample)</strong></h3>
<pre><code class="lang-cpp"><span class="hljs-string">"scripts"</span>: {
  <span class="hljs-string">"build"</span>: <span class="hljs-string">"vite build"</span>
}
</code></pre>
<p>In Amplify Console:</p>
<ul>
<li><p>Source directory: /</p>
</li>
<li><p>Build command: npm run build</p>
</li>
<li><p>Output directory: dist/</p>
</li>
</ul>
<p>✅ Ensure robots.txt and sitemap.xml are inside /dist before build.</p>
<hr />
<h3 id="heading-animations-with-framer-motion-seo-friendly"><strong>🎨 Animations with Framer Motion (SEO Friendly)</strong></h3>
<ul>
<li><p>Used animations like initial, whileInView, animate</p>
</li>
<li><p>Avoided hiding important content during animations</p>
</li>
<li><p>Made sure text and layout appeared early (for good <strong>LCP</strong> score)</p>
</li>
</ul>
<hr />
<h3 id="heading-final-thoughts"><strong>🧠 Final Thoughts</strong></h3>
<p>As a student, this project taught me not just how to build a website—but how to make it visible and optimized for real-world users. Whether you're creating a personal blog, project site, or portfolio, following these SEO techniques will definitely help improve your site’s visibility, performance, and user trust.</p>
<hr />
]]></content:encoded></item><item><title><![CDATA[⚡ Top Certifications Every Electrical & Electronics Engineering (EEE) Student Should Consider in 2025]]></title><description><![CDATA[⚡ Ultimate Guide to Career-Boosting Certifications for Electrical & Electronics Engineers
In an era where engineering boundaries are increasingly overlapping, the key to standing out as an Electrical or Electronics Engineering (EEE) student lies in s...]]></description><link>https://blog.cloudkinshuk.in/top-certifications-every-electrical-and-electronics-engineering-eee-student-should-consider-in-2025</link><guid isPermaLink="true">https://blog.cloudkinshuk.in/top-certifications-every-electrical-and-electronics-engineering-eee-student-should-consider-in-2025</guid><category><![CDATA[electrical engineering]]></category><category><![CDATA[Certification]]></category><category><![CDATA[Blogging]]></category><category><![CDATA[blog]]></category><category><![CDATA[Electronics]]></category><category><![CDATA[embedded systems]]></category><category><![CDATA[Python]]></category><category><![CDATA[C++]]></category><category><![CDATA[AWS]]></category><category><![CDATA[AWS Certified Solutions Architect Associate]]></category><dc:creator><![CDATA[Deactivated User]]></dc:creator><pubDate>Sun, 04 May 2025 00:07:21 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1754110463133/66f1bbae-b583-4fd3-a5ff-47d8f0822e98.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>⚡ <strong>Ultimate Guide to Career-Boosting Certifications for Electrical &amp; Electronics Engineers</strong></p>
<p>In an era where engineering boundaries are increasingly overlapping, the key to standing out as an Electrical or Electronics Engineering (EEE) student lies in strategic upskilling. Whether you aim for core sector jobs, automation, embedded systems, or even a tech-centric path like cloud and IoT, the right certifications can fast-track your journey.</p>
<p>This comprehensive guide dives deep into career-defining certifications that bridge the gap between academic knowledge and industry-ready skills.</p>
<hr />
<h3 id="heading-why-certifications-matter">🎯 Why Certifications Matter</h3>
<p>EEE curriculums often lean heavily on theory. While foundational concepts are crucial, the private sector thrives on practical application and problem-solving.</p>
<p><strong>Certifications help you:</strong></p>
<ul>
<li><p>Validate real-world skills beyond college transcripts</p>
</li>
<li><p>Show recruiters you're serious about continuous learning</p>
</li>
<li><p>Build confidence for interviews and industrial projects</p>
</li>
<li><p>Explore interdisciplinary roles that blend electronics, software, and systems</p>
</li>
</ul>
<hr />
<h2 id="heading-1-plc-scada-automation">🔌 1. PLC / SCADA Automation</h2>
<p><strong>Overview:</strong><br />PLC (Programmable Logic Controllers) and SCADA (Supervisory Control and Data Acquisition) systems are the backbone of modern automation in manufacturing, power plants, and infrastructure.</p>
<p><strong>What You’ll Learn:</strong></p>
<ul>
<li><p>Ladder Logic Programming</p>
</li>
<li><p>Timers, Counters, and Memory functions</p>
</li>
<li><p>SCADA HMI design and control</p>
</li>
<li><p>Communication protocols like Modbus, Profibus</p>
</li>
<li><p>Tools like Siemens TIA Portal, Allen Bradley, Delta DVP</p>
</li>
</ul>
<p><strong>Why It’s Valuable:</strong><br />Every automated plant—from steel to cement, from textiles to energy—uses these systems. Being skilled in them makes you immediately employable.</p>
<p><strong>Recommended Institutes:</strong></p>
<ul>
<li><p>Prolific Systems</p>
</li>
<li><p>Sofcon India</p>
</li>
<li><p>Technologics Global</p>
</li>
<li><p>CETPA Infotech</p>
</li>
</ul>
<p><strong>Career Roles:</strong></p>
<ul>
<li><p>Automation Engineer</p>
</li>
<li><p>Control Systems Engineer</p>
</li>
<li><p>Electrical Maintenance Engineer</p>
</li>
<li><p>Instrumentation Engineer</p>
</li>
</ul>
<p><strong>Bonus:</strong><br />Add an AutoCAD Electrical course to visualize circuits and create professional drawings.</p>
<p><strong>Duration:</strong> 1–3 months</p>
<hr />
<h2 id="heading-2-embedded-systems-with-cc-or-python">🛠️ 2. Embedded Systems with C/C++ or Python</h2>
<p><strong>Overview:</strong><br />Whether it's smart TVs, robots, medical devices, or drones—embedded systems are at the heart of innovation.</p>
<p><strong>What You’ll Learn:</strong></p>
<ul>
<li><p>Microcontroller programming (Arduino, STM32, PIC)</p>
</li>
<li><p>C/C++ or Python for embedded logic</p>
</li>
<li><p>Sensor interfacing (IR, Ultrasonic, PIR, etc.)</p>
</li>
<li><p>Real-time operating systems (RTOS)</p>
</li>
<li><p>Communication protocols (UART, SPI, I2C)</p>
</li>
</ul>
<p><strong>Why It’s Valuable:</strong><br />It opens doors to IoT, robotics, automotive systems, consumer electronics, and more.</p>
<p><strong>Recommended Platforms:</strong></p>
<ul>
<li><p>Coursera: Embedded Systems by University of Colorado</p>
</li>
<li><p>Udemy: Mastering Microcontrollers &amp; Embedded Systems</p>
</li>
<li><p>Pantech Solutions for hands-on kits</p>
</li>
</ul>
<p><strong>Career Roles:</strong></p>
<ul>
<li><p>Embedded Firmware Developer</p>
</li>
<li><p>IoT Engineer</p>
</li>
<li><p>Robotics Engineer</p>
</li>
<li><p>Electronics Product Designer</p>
</li>
</ul>
<p><strong>Project Ideas:</strong></p>
<ul>
<li><p>Smart irrigation system</p>
</li>
<li><p>Line-following robot</p>
</li>
<li><p>Home automation using NodeMCU</p>
</li>
</ul>
<p><strong>Duration:</strong> 1–3 months (project-based learning recommended)</p>
<hr />
<h2 id="heading-3-aws-cloud-certifications">☁️ 3. AWS Cloud Certifications</h2>
<p><strong>Overview:</strong><br />Amazon Web Services (AWS) offers certifications that help you understand cloud computing—essential for IoT, energy analytics, and modern system design.</p>
<p><strong>Certifications to Consider:</strong></p>
<ul>
<li><p>AWS Certified Cloud Practitioner (Beginner)</p>
</li>
<li><p>AWS Certified Solutions Architect – Associate (Intermediate)</p>
</li>
</ul>
<p><strong>What You’ll Learn:</strong></p>
<ul>
<li><p>Cloud computing fundamentals (compute, storage, networking)</p>
</li>
<li><p>Serverless technologies (Lambda, API Gateway)</p>
</li>
<li><p>AWS IoT Core, DynamoDB, S3, IAM</p>
</li>
<li><p>Basic architecture and deployment of apps</p>
</li>
</ul>
<p><strong>Why It’s Valuable:</strong><br />Cloud-enabled energy systems, IoT data processing, and digital twin systems require engineers with cloud understanding.</p>
<p><strong>Recommended Platforms:</strong></p>
<ul>
<li><p>AWS Skill Builder (Free)</p>
</li>
<li><p>Stephane Maarek’s AWS courses on Udemy</p>
</li>
<li><p>Tutorials Dojo Practice Exams</p>
</li>
</ul>
<p><strong>Career Roles:</strong></p>
<ul>
<li><p>Cloud Support Engineer</p>
</li>
<li><p>IoT Integration Engineer</p>
</li>
<li><p>Cloud Developer (Entry-Level)</p>
</li>
<li><p>Site Reliability Engineer (with further learning)</p>
</li>
</ul>
<p><strong>Cost:</strong> ₹7,000–₹10,000</p>
<hr />
<h2 id="heading-4-certified-energy-manager-cem">🌿 4. Certified Energy Manager (CEM)</h2>
<p><strong>Overview:</strong><br />Offered by the Bureau of Energy Efficiency (BEE), India, this is one of the most recognized certifications in the energy efficiency domain.</p>
<p><strong>What You’ll Learn:</strong></p>
<ul>
<li><p>Energy auditing and instrumentation</p>
</li>
<li><p>HVAC system analysis</p>
</li>
<li><p>Lighting, thermal systems, and process integration</p>
</li>
<li><p>Power factor, harmonics, and load management</p>
</li>
</ul>
<p><strong>Why It’s Valuable:</strong><br />As energy costs rise, organizations want to reduce consumption without sacrificing performance. CEMs are specialists in identifying inefficiencies and proposing cost-saving measures.</p>
<p><strong>Eligibility:</strong><br />Usually taken by graduates or final-year students with project experience</p>
<p><strong>Official Site:</strong> <a target="_blank" href="https://beeindia.gov.in/">BEE India - CEM</a></p>
<p><strong>Career Roles:</strong></p>
<ul>
<li><p>Energy Analyst</p>
</li>
<li><p>Power Consultant</p>
</li>
<li><p>Energy Efficiency Auditor</p>
</li>
<li><p>Renewable Energy Planner</p>
</li>
</ul>
<p><strong>Duration:</strong> 2–6 months (Exam cycle based)</p>
<hr />
<h2 id="heading-5-matlab-amp-simulink-associate-certification">📊 5. MATLAB &amp; Simulink Associate Certification</h2>
<p><strong>Overview:</strong><br />MATLAB and Simulink are industry-standard tools used in R&amp;D, control design, simulations, and signal processing.</p>
<p><strong>What You’ll Learn:</strong></p>
<ul>
<li><p>Modeling dynamic systems</p>
</li>
<li><p>Control theory simulations</p>
</li>
<li><p>Signal processing filters and analysis</p>
</li>
<li><p>Power electronics simulation</p>
</li>
</ul>
<p><strong>Why It’s Valuable:</strong><br />This skill is valued in EV development, aerospace, research labs, and industries requiring simulation-heavy work.</p>
<p><strong>Recommended Learning Platforms:</strong></p>
<ul>
<li><p>MathWorks official courses</p>
</li>
<li><p>Udemy’s Simulink/MATLAB tutorials</p>
</li>
<li><p>MATLAB Onramp (Free)</p>
</li>
</ul>
<p><strong>Career Roles:</strong></p>
<ul>
<li><p>Simulation Engineer</p>
</li>
<li><p>Control Design Engineer</p>
</li>
<li><p>R&amp;D Engineer (EV/Defense/Aerospace)</p>
</li>
</ul>
<p><strong>Cost:</strong> ₹7,000–₹9,000 (certification optional, skills more important)</p>
<hr />
<h2 id="heading-6-pcb-design-and-circuit-simulation">📱 6. PCB Design and Circuit Simulation</h2>
<p><strong>Overview:</strong><br />Understanding how to design and test Printed Circuit Boards (PCBs) makes you job-ready for electronics manufacturing and R&amp;D.</p>
<p><strong>What You’ll Learn:</strong></p>
<ul>
<li><p>Schematic design</p>
</li>
<li><p>Component placement</p>
</li>
<li><p>PCB layout and routing</p>
</li>
<li><p>Circuit simulation and testing</p>
</li>
</ul>
<p><strong>Tools:</strong></p>
<ul>
<li><p>KiCAD (Open-source)</p>
</li>
<li><p>Proteus / Multisim</p>
</li>
<li><p>Altium Designer</p>
</li>
<li><p>Autodesk Eagle</p>
</li>
</ul>
<p><strong>Why It’s Valuable:</strong><br />Designing your own circuits and turning them into products is a powerful skill. Hardware startups and electronics OEMs need this.</p>
<p><strong>Career Roles:</strong></p>
<ul>
<li><p>Hardware Design Engineer</p>
</li>
<li><p>PCB Layout Engineer</p>
</li>
<li><p>Testing and Validation Engineer</p>
</li>
</ul>
<p><strong>Project Ideas:</strong></p>
<ul>
<li><p>Arduino clone board</p>
</li>
<li><p>Sensor interfacing PCB for IoT</p>
</li>
</ul>
<p><strong>Duration:</strong> 1–2 months with hands-on practice</p>
<hr />
<h2 id="heading-7-ev-technology-amp-battery-management-systems-bms">🔋 7. EV Technology &amp; Battery Management Systems (BMS)</h2>
<p><strong>Overview:</strong><br />Electric Vehicles are the future—and they run on smart battery and powertrain systems. This field offers cutting-edge opportunities for EEE students.</p>
<p><strong>What You’ll Learn:</strong></p>
<ul>
<li><p>Battery chemistry and cell balancing</p>
</li>
<li><p>EV charging systems</p>
</li>
<li><p>Motor controllers (BLDC, PMSM)</p>
</li>
<li><p>CAN bus communication</p>
</li>
</ul>
<p><strong>Recommended Platforms:</strong></p>
<ul>
<li><p>Skill-Lync EV Specialization</p>
</li>
<li><p>DIYguru EV Tech Courses</p>
</li>
<li><p>Udemy’s Electric Vehicle Design Series</p>
</li>
</ul>
<p><strong>Career Roles:</strong></p>
<ul>
<li><p>EV Powertrain Engineer</p>
</li>
<li><p>Battery System Developer</p>
</li>
<li><p>BMS Algorithm Developer</p>
</li>
<li><p>Power Electronics Engineer</p>
</li>
</ul>
<p><strong>Bonus:</strong><br />Link this with MATLAB/Simulink skills for simulation-heavy design roles.</p>
<p><strong>Duration:</strong> 2–4 months</p>
<hr />
<h2 id="heading-career-mapping-choose-based-on-your-goals">🧠 Career Mapping: Choose Based on Your Goals</h2>
<div class="hn-table">
<table>
<thead>
<tr>
<td><strong>Career Goal</strong></td><td><strong>Recommended Certifications</strong></td></tr>
</thead>
<tbody>
<tr>
<td>Industrial Automation</td><td>PLC/SCADA + AutoCAD Electrical</td></tr>
<tr>
<td>Embedded &amp; IoT</td><td>Embedded Systems + C/C++ + PCB Design</td></tr>
<tr>
<td>Cloud-Enabled Engineering</td><td>AWS + Python + IoT Integration</td></tr>
<tr>
<td>Energy &amp; Sustainability</td><td>Certified Energy Manager + MATLAB</td></tr>
<tr>
<td>EV Sector &amp; R&amp;D</td><td>EV Tech + BMS + Power Electronics + Simulink</td></tr>
<tr>
<td>All-Round Engineering Profile</td><td>Embedded + AWS + MATLAB + PLC</td></tr>
</tbody>
</table>
</div><hr />
<h3 id="heading-final-thoughts-skills-gt-college-tag">💡 Final Thoughts: Skills &gt; College Tag</h3>
<p>The engineering world rewards those who take initiative. Certifications are your fast track to skills that matter—ones that open doors, spark ideas, and create job opportunities.</p>
<p>✅ Pick one certification that excites you<br />✅ Complete at least one project alongside it<br />✅ Document it on GitHub or a portfolio site<br />✅ Add it to your LinkedIn with a write-up<br />✅ Apply confidently—skills speak louder than college names</p>
<blockquote>
<p>"Certifications are not just a stamp—they’re a shortcut to skills, and skills are currency in the engineering world."</p>
</blockquote>
<p>Now go ahead—explore, upskill, and engineer your dream career path.</p>
]]></content:encoded></item><item><title><![CDATA[How me and team Built a Smart Parking System using ESP32-CAM – A Student's Journey]]></title><description><![CDATA[Hey Everyone !I'm Kinshuk, and in this blog, I want to take you through me and my team journey of building a Smart Parking System using an ESP32-CAM. This project combines IoT, image processing, real-time updates, and a bit of creativity.
It started ...]]></description><link>https://blog.cloudkinshuk.in/how-me-and-team-built-a-smart-parking-system-using-esp32-cam-a-students-journey</link><guid isPermaLink="true">https://blog.cloudkinshuk.in/how-me-and-team-built-a-smart-parking-system-using-esp32-cam-a-students-journey</guid><category><![CDATA[iot]]></category><category><![CDATA[electrical engineering]]></category><category><![CDATA[Electronics]]></category><category><![CDATA[cpp]]></category><category><![CDATA[AI]]></category><category><![CDATA[automation]]></category><category><![CDATA[Cloud]]></category><category><![CDATA[Blogging]]></category><dc:creator><![CDATA[Deactivated User]]></dc:creator><pubDate>Sun, 20 Apr 2025 18:42:29 GMT</pubDate><content:encoded><![CDATA[<p>Hey Everyone !<br />I'm Kinshuk, and in this blog, I want to take you through me and my team journey of building a <strong>Smart Parking System</strong> using an <strong>ESP32-CAM</strong>. This project combines <strong>IoT, image processing, real-time updates</strong>, and a bit of creativity.</p>
<p>It started as a simple idea – automate parking with a camera and make it cool enough to recognize number plates, update a web page, and even control a barrier gate. Sounds fun? Let me walk you through it, step-by-step – the way I’d explain it to any of you over a chai break. ☕</p>
<p>Team of the Project :</p>
<ol>
<li><p>kinshuk Jain</p>
</li>
<li><p>Kumar Arnim</p>
</li>
<li><p>Pranav singh</p>
</li>
<li><p>Himanshu sharma</p>
</li>
</ol>
<hr />
<h2 id="heading-the-idea">🧠 The Idea</h2>
<p>Imagine you enter a parking lot – the system detects your vehicle, recognizes your number plate, opens the barrier if you're authorized, and logs your entry time. No human needed. That's what I wanted to build!</p>
<p><code>original repository:</code> <a target="_blank" href="https://github.com/Circuit-Digest/Smart-Parking-System-with-Number-Plate-Recognition-using-ESP32-CAM">repo</a> ( credit : circuit digest )</p>
<p><code>Forked repository</code> : <a target="_blank" href="https://github.com/kinshukjainn/Smart-Parking-System-with-Number-Plate-Recognition-using-ESP32-CAM/tree/main">repo</a> ( Build the project with the code base )</p>
<hr />
<h2 id="heading-what-we-used">🛒 What we Used</h2>
<ul>
<li><p><strong>ESP32-CAM</strong>: The hero of the project. Tiny, cheap, and powerful.</p>
</li>
<li><p><strong>Servo Motor</strong>: To open and close the parking barrier.</p>
</li>
<li><p><strong>IR Sensor / Ultrasonic Sensor</strong>: For vehicle detection.</p>
</li>
<li><p><strong>Arduino IDE</strong>: For programming.</p>
</li>
<li><p><strong>Web Server (hosted or local)</strong>: To store images and logs.</p>
</li>
<li><p><strong>NTP (Network Time Protocol)</strong>: For real-time clock syncing.</p>
</li>
<li><p><strong>Breadboard, jumper wires, and basic electronics gear</strong>.</p>
</li>
</ul>
<hr />
<h2 id="heading-code-base">Code Base :</h2>
<pre><code class="lang-cpp">
<span class="hljs-keyword">const</span> <span class="hljs-keyword">char</span>* ssid = <span class="hljs-string">"xxx"</span>;             
<span class="hljs-keyword">const</span> <span class="hljs-keyword">char</span>* password = <span class="hljs-string">"xxx"</span>;         
String serverName = <span class="hljs-string">"www.circuitdigest.cloud"</span>;  
String serverPath = <span class="hljs-string">"/readnumberplate"</span>;        
<span class="hljs-keyword">const</span> <span class="hljs-keyword">int</span> serverPort = <span class="hljs-number">443</span>;                     <span class="hljs-comment">// HTTPS port</span>
String apiKey = <span class="hljs-string">"xxx"</span>;                 <span class="hljs-comment">// Replace xxx with your API key</span>
String imageViewLink = <span class="hljs-string">"https://www.circuitdigest.cloud/static/"</span> + apiKey + <span class="hljs-string">".jpeg"</span>;

<span class="hljs-keyword">int</span> count = <span class="hljs-number">0</span>;        

WiFiClientSecure client;  


<span class="hljs-comment">// Network Time Protocol (NTP) setup</span>
<span class="hljs-keyword">const</span> <span class="hljs-keyword">char</span>* ntpServer = <span class="hljs-string">"pool.ntp.org"</span>;  <span class="hljs-comment">// NTP server</span>
<span class="hljs-keyword">const</span> <span class="hljs-keyword">long</span> utcOffsetInSeconds = <span class="hljs-number">19800</span>;   <span class="hljs-comment">// IST offset (UTC + 5:30)</span>
<span class="hljs-keyword">int</span> servoPin = <span class="hljs-number">14</span>;                      <span class="hljs-comment">// GPIO pin for the servo motor</span>
<span class="hljs-keyword">int</span> inSensor = <span class="hljs-number">13</span>;                     <span class="hljs-comment">// GPIO pin for the entry sensor</span>
<span class="hljs-keyword">int</span> outSensor = <span class="hljs-number">15</span>;                    <span class="hljs-comment">// GPIO pin for the exit sensor</span>
Servo myservo;                         <span class="hljs-comment">// Servo object</span>
<span class="hljs-keyword">int</span> pos = <span class="hljs-number">0</span>;                           <span class="hljs-comment">// Variable to hold servo position</span>

<span class="hljs-comment">// Initialize the NTPClient</span>
WiFiUDP ntpUDP;
<span class="hljs-function">NTPClient <span class="hljs-title">timeClient</span><span class="hljs-params">(ntpUDP, ntpServer, utcOffsetInSeconds)</span></span>;
String currentTime = <span class="hljs-string">""</span>;

<span class="hljs-comment">// Web server on port 80</span>
<span class="hljs-function">WebServer <span class="hljs-title">server</span><span class="hljs-params">(<span class="hljs-number">80</span>)</span></span>;

<span class="hljs-comment">// Variables to hold recognized data, current status, and history</span>
String recognizedPlate = <span class="hljs-string">""</span>;          <span class="hljs-comment">// Variable to store the recognized plate number</span>
String imageLink = <span class="hljs-string">""</span>;                <span class="hljs-comment">// Variable to store the image link</span>
String currentStatus = <span class="hljs-string">"Idle"</span>;        <span class="hljs-comment">// Variable to store the current status of the system</span>
<span class="hljs-keyword">int</span> availableSpaces = <span class="hljs-number">4</span>;             <span class="hljs-comment">// Total parking spaces available</span>
<span class="hljs-keyword">int</span> vehicalCount = <span class="hljs-number">0</span>;                <span class="hljs-comment">// Number of vehicles currently parked</span>
<span class="hljs-keyword">int</span> barrierDelay = <span class="hljs-number">3000</span>;             <span class="hljs-comment">// Delay for barrier operations</span>
<span class="hljs-keyword">int</span> siteRefreshTime = <span class="hljs-number">1</span>;             <span class="hljs-comment">// Web page refresh time in seconds</span>

<span class="hljs-comment">// History of valid number plates and their entry times</span>
<span class="hljs-class"><span class="hljs-keyword">struct</span> <span class="hljs-title">PlateEntry</span> {</span>
  String plateNumber;  <span class="hljs-comment">// Plate number of the vehicle</span>
  String time;        <span class="hljs-comment">// Entry time of the vehicle</span>
};

<span class="hljs-built_in">std</span>::<span class="hljs-built_in">vector</span>&lt;PlateEntry&gt; plateHistory;  <span class="hljs-comment">// Vector to store the history of valid plates</span>

<span class="hljs-comment">// Function to extract a JSON string value by key</span>
<span class="hljs-function">String <span class="hljs-title">extractJsonStringValue</span><span class="hljs-params">(<span class="hljs-keyword">const</span> String&amp; jsonString, <span class="hljs-keyword">const</span> String&amp; key)</span> </span>{
  <span class="hljs-keyword">int</span> keyIndex = jsonString.indexOf(key);
  <span class="hljs-keyword">if</span> (keyIndex == <span class="hljs-number">-1</span>) {
    <span class="hljs-keyword">return</span> <span class="hljs-string">""</span>;
  }

  <span class="hljs-keyword">int</span> startIndex = jsonString.indexOf(<span class="hljs-string">':'</span>, keyIndex) + <span class="hljs-number">2</span>;
  <span class="hljs-keyword">int</span> endIndex = jsonString.indexOf(<span class="hljs-string">'"'</span>, startIndex);

  <span class="hljs-keyword">if</span> (startIndex == <span class="hljs-number">-1</span> || endIndex == <span class="hljs-number">-1</span>) {
    <span class="hljs-keyword">return</span> <span class="hljs-string">""</span>;
  }

  <span class="hljs-keyword">return</span> jsonString.substring(startIndex, endIndex);
}

<span class="hljs-comment">// Function to handle the root web page</span>
<span class="hljs-function"><span class="hljs-keyword">void</span> <span class="hljs-title">handleRoot</span><span class="hljs-params">()</span> </span>{
  String html = <span class="hljs-string">"&lt;!DOCTYPE html&gt;&lt;html lang='en'&gt;&lt;head&gt;"</span>;
  html += <span class="hljs-string">"&lt;meta charset='UTF-8'&gt;"</span>;
  html += <span class="hljs-string">"&lt;meta name='viewport' content='width=device-width, initial-scale=1.0'&gt;"</span>;
  html += <span class="hljs-string">"&lt;title&gt;Smart Parking System&lt;/title&gt;"</span>;
  html += <span class="hljs-string">"&lt;style&gt;"</span>;
  html += <span class="hljs-string">"body { font-family: Arial, sans-serif; background-color: #f4f4f9; margin: 0; padding: 0; color: #333; }"</span>;
  html += <span class="hljs-string">".container { max-width: 1200px; margin: 0 auto; padding: 20px; box-sizing: border-box; }"</span>;
  html += <span class="hljs-string">"header { text-align: center; padding: 15px; background-color: #0e3d79; color: white; }"</span>;
  html += <span class="hljs-string">"h1, h2 { text-align: center; margin-bottom: 20px; }"</span>;  <span class="hljs-comment">// Center align all headers</span>
  html += <span class="hljs-string">"p { margin: 10px 0; }"</span>;
  html += <span class="hljs-string">"table { width: 100%; border-collapse: collapse; margin: 20px 0; }"</span>;
  html += <span class="hljs-string">"th, td { padding: 10px; text-align: left; border: 1px solid #ddd; }"</span>;
  html += <span class="hljs-string">"tr:nth-child(even) { background-color: #f9f9f9; }"</span>;
  html += <span class="hljs-string">"form { text-align: center; margin: 20px 0; }"</span>;
  html += <span class="hljs-string">"input[type='submit'] { background-color: #007bff; color: white; border: none; padding: 10px 20px; font-size: 16px; cursor: pointer; border-radius: 5px; }"</span>;
  html += <span class="hljs-string">"input[type='submit']:hover { background-color: #0056b3; }"</span>;
  html += <span class="hljs-string">"a { color: #007bff; text-decoration: none; }"</span>;
  html += <span class="hljs-string">"a:hover { text-decoration: underline; }"</span>;
  html += <span class="hljs-string">"img { max-width: 100%; height: auto; margin: 20px 0; display: none; }"</span>;  <span class="hljs-comment">// Initially hide the image</span>
  html += <span class="hljs-string">"@media (max-width: 768px) { table { font-size: 14px; } }"</span>;
  html += <span class="hljs-string">"&lt;/style&gt;"</span>;
  html += <span class="hljs-string">"&lt;meta http-equiv='refresh' content='"</span> + String(siteRefreshTime) + <span class="hljs-string">"'&gt;"</span>;  <span class="hljs-comment">// Refresh every x second</span>
  html += <span class="hljs-string">"&lt;/head&gt;&lt;body&gt;"</span>;
  html += <span class="hljs-string">"&lt;header&gt;&lt;h1&gt;Circuit Digest&lt;/h1&gt;&lt;/header&gt;"</span>;
  html += <span class="hljs-string">"&lt;div class='container'&gt;"</span>;
  html += <span class="hljs-string">"&lt;h1&gt;Smart Parking System using ESP32-CAM&lt;/h1&gt;"</span>;
  html += <span class="hljs-string">"&lt;p&gt;&lt;strong&gt;Time:&lt;/strong&gt; "</span> + currentTime + <span class="hljs-string">"&lt;/p&gt;"</span>;
  html += <span class="hljs-string">"&lt;p&gt;&lt;strong&gt;Status:&lt;/strong&gt; "</span> + currentStatus + <span class="hljs-string">"&lt;/p&gt;"</span>;
  html += <span class="hljs-string">"&lt;p&gt;&lt;strong&gt;Last Recognized Plate:&lt;/strong&gt; "</span> + recognizedPlate + <span class="hljs-string">"&lt;/p&gt;"</span>;
  html += <span class="hljs-string">"&lt;p&gt;&lt;strong&gt;Last Captured Image:&lt;/strong&gt; &lt;a href=\""</span> + imageViewLink + <span class="hljs-string">"\" target=\"_blank\"&gt;View Image&lt;/a&gt;&lt;/p&gt;"</span>;

  <span class="hljs-comment">// html += "&lt;form action=\"/trigger\" method=\"POST\"&gt;";</span>
  <span class="hljs-comment">// html += "&lt;input type=\"submit\" value=\"Capture Image\"&gt;";</span>
  <span class="hljs-comment">// html += "&lt;/form&gt;";</span>

  html += <span class="hljs-string">"&lt;p&gt;&lt;strong&gt;Spaces available:&lt;/strong&gt; "</span> + String(availableSpaces - vehicalCount) + <span class="hljs-string">"&lt;/p&gt;"</span>;

  html += <span class="hljs-string">"&lt;h2&gt;Parking Database&lt;/h2&gt;"</span>;
  <span class="hljs-keyword">if</span> (plateHistory.empty()) {
    html += <span class="hljs-string">"&lt;p&gt;No valid number plates recognized yet.&lt;/p&gt;"</span>;
  } <span class="hljs-keyword">else</span> {
    html += <span class="hljs-string">"&lt;table&gt;&lt;tr&gt;&lt;th&gt;Plate Number&lt;/th&gt;&lt;th&gt;Time&lt;/th&gt;&lt;/tr&gt;"</span>;
    <span class="hljs-keyword">for</span> (<span class="hljs-keyword">const</span> <span class="hljs-keyword">auto</span>&amp; entry : plateHistory) {
      html += <span class="hljs-string">"&lt;tr&gt;&lt;td&gt;"</span> + entry.plateNumber + <span class="hljs-string">"&lt;/td&gt;&lt;td&gt;"</span> + entry.time + <span class="hljs-string">"&lt;/td&gt;&lt;/tr&gt;"</span>;
    }
    html += <span class="hljs-string">"&lt;/table&gt;"</span>;
  }

  html += <span class="hljs-string">"&lt;script&gt;"</span>;
  html += <span class="hljs-string">"function toggleImage() {"</span>;
  html += <span class="hljs-string">"  var img = document.getElementById('capturedImage');"</span>;
  html += <span class="hljs-string">"  if (img.style.display === 'none') {"</span>;
  html += <span class="hljs-string">"    img.style.display = 'block';"</span>;
  html += <span class="hljs-string">"  } else {"</span>;
  html += <span class="hljs-string">"    img.style.display = 'none';"</span>;
  html += <span class="hljs-string">"  }"</span>;
  html += <span class="hljs-string">"}"</span>;
  html += <span class="hljs-string">"&lt;/script&gt;"</span>;

  html += <span class="hljs-string">"&lt;/div&gt;&lt;/body&gt;&lt;/html&gt;"</span>;


  server.send(<span class="hljs-number">200</span>, <span class="hljs-string">"text/html"</span>, html);
}

<span class="hljs-comment">// Function to handle image capture trigger</span>
<span class="hljs-function"><span class="hljs-keyword">void</span> <span class="hljs-title">handleTrigger</span><span class="hljs-params">()</span> </span>{
  currentStatus = <span class="hljs-string">"Capturing Image"</span>;
  server.handleClient();
  <span class="hljs-comment">// server.sendHeader("Location", "/");  // Redirect to root to refresh status</span>
  <span class="hljs-comment">// server.send(303);                    // Send redirect response to refresh the page</span>

  <span class="hljs-comment">// Perform the image capture and upload</span>
  <span class="hljs-keyword">int</span> status = sendPhoto();

  <span class="hljs-comment">// Update status based on sendPhoto result</span>
  <span class="hljs-keyword">if</span> (status == <span class="hljs-number">-1</span>) {
    currentStatus = <span class="hljs-string">"Image Capture Failed"</span>;
  } <span class="hljs-keyword">else</span> <span class="hljs-keyword">if</span> (status == <span class="hljs-number">-2</span>) {
    currentStatus = <span class="hljs-string">"Server Connection Failed"</span>;
  } <span class="hljs-keyword">else</span> <span class="hljs-keyword">if</span> (status == <span class="hljs-number">1</span>) {
    currentStatus = <span class="hljs-string">"No Parking Space Available"</span>;
  } <span class="hljs-keyword">else</span> <span class="hljs-keyword">if</span> (status == <span class="hljs-number">2</span>) {
    currentStatus = <span class="hljs-string">"Invalid Plate Recognized [No Entry]"</span>;
  } <span class="hljs-keyword">else</span> {
    currentStatus = <span class="hljs-string">"Idle"</span>;
  }
  server.handleClient();  <span class="hljs-comment">// Update status on webpage</span>
}

<span class="hljs-function"><span class="hljs-keyword">void</span> <span class="hljs-title">openBarrier</span><span class="hljs-params">()</span> </span>{
  currentStatus = <span class="hljs-string">"Barrier Opening"</span>;
  server.handleClient();  <span class="hljs-comment">// Update status on webpage</span>
  Serial.println(<span class="hljs-string">"Barrier Opens"</span>);
  myservo.write(<span class="hljs-number">0</span>);
  delay(barrierDelay);
}
<span class="hljs-function"><span class="hljs-keyword">void</span> <span class="hljs-title">closeBarrier</span><span class="hljs-params">()</span> </span>{
  currentStatus = <span class="hljs-string">"Barrier Closing"</span>;
  server.handleClient();  <span class="hljs-comment">// Update status on webpage</span>
  Serial.println(<span class="hljs-string">"Barrier Closes"</span>);
  myservo.write(<span class="hljs-number">180</span>);
  delay(barrierDelay);
}

<span class="hljs-comment">// Function to capture and send photo to the server</span>
<span class="hljs-function"><span class="hljs-keyword">int</span> <span class="hljs-title">sendPhoto</span><span class="hljs-params">()</span> </span>{
  <span class="hljs-keyword">camera_fb_t</span>* fb = <span class="hljs-literal">NULL</span>;

  <span class="hljs-comment">// Turn on flashlight and capture image</span>
  <span class="hljs-comment">// digitalWrite(flashLight, HIGH);</span>

  delay(<span class="hljs-number">300</span>);
  fb = esp_camera_fb_get();
  delay(<span class="hljs-number">300</span>);

  <span class="hljs-comment">// digitalWrite(flashLight, LOW);</span>
  <span class="hljs-keyword">if</span> (!fb) {
    Serial.println(<span class="hljs-string">"Camera capture failed"</span>);
    currentStatus = <span class="hljs-string">"Image Capture Failed"</span>;
    server.handleClient();  <span class="hljs-comment">// Update status on webpage</span>
    <span class="hljs-keyword">return</span> <span class="hljs-number">-1</span>;
  }

  <span class="hljs-comment">// Connect to server</span>
  Serial.println(<span class="hljs-string">"Connecting to server:"</span> + serverName);
  client.setInsecure();  <span class="hljs-comment">// Skip certificate validation for simplicity</span>

  <span class="hljs-keyword">if</span> (client.connect(serverName.c_str(), serverPort)) {
    Serial.println(<span class="hljs-string">"Connection successful!"</span>);

    <span class="hljs-comment">// Increment count and prepare file name</span>
    count++;
    Serial.println(count);
    String filename = apiKey + <span class="hljs-string">".jpeg"</span>;

    <span class="hljs-comment">// Prepare HTTP POST request</span>
    String head = <span class="hljs-string">"--CircuitDigest\r\nContent-Disposition: form-data; name=\"imageFile\"; filename=\""</span> + filename + <span class="hljs-string">"\"\r\nContent-Type: image/jpeg\r\n\r\n"</span>;
    String tail = <span class="hljs-string">"\r\n--CircuitDigest--\r\n"</span>;
    <span class="hljs-keyword">uint32_t</span> imageLen = fb-&gt;len;
    <span class="hljs-keyword">uint32_t</span> extraLen = head.length() + tail.length();
    <span class="hljs-keyword">uint32_t</span> totalLen = imageLen + extraLen;

    client.println(<span class="hljs-string">"POST "</span> + serverPath + <span class="hljs-string">" HTTP/1.1"</span>);
    client.println(<span class="hljs-string">"Host: "</span> + serverName);
    client.println(<span class="hljs-string">"Content-Length: "</span> + String(totalLen));
    client.println(<span class="hljs-string">"Content-Type: multipart/form-data; boundary=CircuitDigest"</span>);
    client.println(<span class="hljs-string">"Authorization:"</span> + apiKey);
    client.println();
    client.print(head);

    <span class="hljs-comment">// Send the image</span>
    currentStatus = <span class="hljs-string">"Uploading Image"</span>;
    server.handleClient();  <span class="hljs-comment">// Update status on webpage</span>

    <span class="hljs-comment">// Send image data in chunks</span>
    <span class="hljs-keyword">uint8_t</span>* fbBuf = fb-&gt;buf;
    <span class="hljs-keyword">size_t</span> fbLen = fb-&gt;len;
    <span class="hljs-keyword">for</span> (<span class="hljs-keyword">size_t</span> n = <span class="hljs-number">0</span>; n &lt; fbLen; n += <span class="hljs-number">1024</span>) {
      <span class="hljs-keyword">if</span> (n + <span class="hljs-number">1024</span> &lt; fbLen) {
        client.write(fbBuf, <span class="hljs-number">1024</span>);
        fbBuf += <span class="hljs-number">1024</span>;
      } <span class="hljs-keyword">else</span> {
        <span class="hljs-keyword">size_t</span> remainder = fbLen % <span class="hljs-number">1024</span>;
        client.write(fbBuf, remainder);
      }
    }
    client.print(tail);

    <span class="hljs-comment">// Release the frame buffer</span>
    esp_camera_fb_return(fb);
    Serial.println(<span class="hljs-string">"Image sent successfully"</span>);
    <span class="hljs-comment">// Waiting for server response</span>
    currentStatus = <span class="hljs-string">"Waiting for Server Response"</span>;
    server.handleClient();  <span class="hljs-comment">// Update status on webpage</span>
    String response = <span class="hljs-string">""</span>;
    <span class="hljs-keyword">long</span> startTime = millis();
    <span class="hljs-keyword">while</span> (client.connected() &amp;&amp; millis() - startTime &lt; <span class="hljs-number">10000</span>) {
      <span class="hljs-keyword">if</span> (client.available()) {
        <span class="hljs-keyword">char</span> c = client.read();
        response += c;
      }
    }
    <span class="hljs-comment">// Extract data from response</span>
    recognizedPlate = extractJsonStringValue(response, <span class="hljs-string">"\"number_plate\""</span>);
    imageLink = extractJsonStringValue(response, <span class="hljs-string">"\"view_image\""</span>);
    currentStatus = <span class="hljs-string">"Response Recieved Successfully"</span>;
    server.handleClient();  <span class="hljs-comment">// Update status on webpage</span>


    <span class="hljs-comment">// Add valid plate to history</span>
    <span class="hljs-keyword">if</span> (vehicalCount &gt; availableSpaces) {

      <span class="hljs-comment">// Log response and return</span>
      Serial.print(<span class="hljs-string">"Response: "</span>);
      Serial.println(response);
      client.stop();
      esp_camera_fb_return(fb);
      <span class="hljs-keyword">return</span> <span class="hljs-number">1</span>;

    } <span class="hljs-keyword">else</span> <span class="hljs-keyword">if</span> (recognizedPlate.length() &gt; <span class="hljs-number">4</span> &amp;&amp; recognizedPlate.length() &lt; <span class="hljs-number">11</span>) {
      <span class="hljs-comment">// Valid plate</span>
      PlateEntry newEntry;
      newEntry.plateNumber = recognizedPlate + <span class="hljs-string">"-Entry"</span>;
      newEntry.time = currentTime;  <span class="hljs-comment">// Use the current timestamp</span>
      plateHistory.push_back(newEntry);
      vehicalCount++;

      openBarrier();
      delay(barrierDelay);
      closeBarrier();

      <span class="hljs-comment">// Log response and return</span>
      Serial.print(<span class="hljs-string">"Response: "</span>);
      Serial.println(response);
      client.stop();
      esp_camera_fb_return(fb);
      <span class="hljs-keyword">return</span> <span class="hljs-number">0</span>;

    } <span class="hljs-keyword">else</span> {
      currentStatus = <span class="hljs-string">"Invalid Plate Recognized '"</span> + recognizedPlate + <span class="hljs-string">"' "</span> + <span class="hljs-string">"[No Entry]"</span>;
      server.handleClient();  <span class="hljs-comment">// Update status on webpage</span>
      <span class="hljs-comment">// Log response and return</span>
      Serial.print(<span class="hljs-string">"Response: "</span>);
      Serial.println(response);
      client.stop();
      esp_camera_fb_return(fb);
      <span class="hljs-keyword">return</span> <span class="hljs-number">2</span>;
    }
  } <span class="hljs-keyword">else</span> {
    Serial.println(<span class="hljs-string">"Connection to server failed"</span>);
    esp_camera_fb_return(fb);
    <span class="hljs-keyword">return</span> <span class="hljs-number">-2</span>;
  }
}

<span class="hljs-function"><span class="hljs-keyword">void</span> <span class="hljs-title">setup</span><span class="hljs-params">()</span> </span>{
  <span class="hljs-comment">// Disable brownout detector</span>
  WRITE_PERI_REG(RTC_CNTL_BROWN_OUT_REG, <span class="hljs-number">0</span>);
  Serial.begin(<span class="hljs-number">115200</span>);
  pinMode(flashLight, OUTPUT);
  pinMode(inSensor, INPUT_PULLUP);
  pinMode(outSensor, INPUT_PULLUP);
  digitalWrite(flashLight, LOW);

  <span class="hljs-comment">// Connect to WiFi</span>
  WiFi.mode(WIFI_STA);
  Serial.println();
  Serial.print(<span class="hljs-string">"Connecting to "</span>);
  Serial.println(ssid);
  WiFi.begin(ssid, password);
  <span class="hljs-keyword">while</span> (WiFi.status() != WL_CONNECTED) {
    Serial.print(<span class="hljs-string">"."</span>);
    delay(<span class="hljs-number">500</span>);
  }
  Serial.println();
  Serial.print(<span class="hljs-string">"ESP32-CAM IP Address: "</span>);
  Serial.println(WiFi.localIP());

  <span class="hljs-comment">// Initialize NTPClient</span>
  timeClient.begin();
  timeClient.update();

  <span class="hljs-comment">// Start the web server</span>
  server.on(<span class="hljs-string">"/"</span>, handleRoot);
  server.on(<span class="hljs-string">"/trigger"</span>, HTTP_POST, handleTrigger);
  server.begin();
  Serial.println(<span class="hljs-string">"Web server started"</span>);

  <span class="hljs-comment">// Configure camera</span>
  <span class="hljs-keyword">camera_config_t</span> config;
  config.ledc_channel = LEDC_CHANNEL_0;
  config.ledc_timer = LEDC_TIMER_0;
  config.pin_d0 = Y2_GPIO_NUM;
  config.pin_d1 = Y3_GPIO_NUM;
  config.pin_d2 = Y4_GPIO_NUM;
  config.pin_d3 = Y5_GPIO_NUM;
  config.pin_d4 = Y6_GPIO_NUM;
  config.pin_d5 = Y7_GPIO_NUM;
  config.pin_d6 = Y8_GPIO_NUM;
  config.pin_d7 = Y9_GPIO_NUM;
  config.pin_xclk = XCLK_GPIO_NUM;
  config.pin_pclk = PCLK_GPIO_NUM;
  config.pin_vsync = VSYNC_GPIO_NUM;
  config.pin_href = HREF_GPIO_NUM;
  config.pin_sscb_sda = SIOD_GPIO_NUM;
  config.pin_sscb_scl = SIOC_GPIO_NUM;
  config.pin_pwdn = PWDN_GPIO_NUM;
  config.pin_reset = RESET_GPIO_NUM;
  config.xclk_freq_hz = <span class="hljs-number">20000000</span>;
  config.pixel_format = PIXFORMAT_JPEG;

  <span class="hljs-comment">// Adjust frame size and quality based on PSRAM availability</span>
  <span class="hljs-keyword">if</span> (psramFound()) {
    config.frame_size = FRAMESIZE_SVGA;
    config.jpeg_quality = <span class="hljs-number">5</span>;  <span class="hljs-comment">// Lower number means higher quality (0-63)</span>
    config.fb_count = <span class="hljs-number">2</span>;
    Serial.println(<span class="hljs-string">"PSRAM found"</span>);
  } <span class="hljs-keyword">else</span> {
    config.frame_size = FRAMESIZE_CIF;
    config.jpeg_quality = <span class="hljs-number">12</span>;  <span class="hljs-comment">// Lower number means higher quality (0-63)</span>
    config.fb_count = <span class="hljs-number">1</span>;
  }

  <span class="hljs-comment">// Initialize camera</span>
  <span class="hljs-keyword">esp_err_t</span> err = esp_camera_init(&amp;config);
  <span class="hljs-keyword">if</span> (err != ESP_OK) {
    Serial.<span class="hljs-built_in">printf</span>(<span class="hljs-string">"Camera init failed with error 0x%x"</span>, err);
    delay(<span class="hljs-number">1000</span>);
    ESP.restart();
  }

  <span class="hljs-comment">// Allow allocation of all timers</span>
  ESP32PWM::allocateTimer(<span class="hljs-number">0</span>);
  ESP32PWM::allocateTimer(<span class="hljs-number">1</span>);
  ESP32PWM::allocateTimer(<span class="hljs-number">2</span>);
  ESP32PWM::allocateTimer(<span class="hljs-number">3</span>);
  myservo.setPeriodHertz(<span class="hljs-number">50</span>);            <span class="hljs-comment">// standard 50 hz servo</span>
  myservo.attach(servoPin, <span class="hljs-number">1000</span>, <span class="hljs-number">2000</span>);  <span class="hljs-comment">// attaches the servo on pin 18 to the servo object</span>
    <span class="hljs-comment">// Set the initial position of the servo (barrier closed)</span>
  myservo.write(<span class="hljs-number">180</span>);
}

<span class="hljs-function"><span class="hljs-keyword">void</span> <span class="hljs-title">loop</span><span class="hljs-params">()</span> </span>{
  <span class="hljs-comment">// Update the NTP client to get the current time</span>
  timeClient.update();
  currentTime = timeClient.getFormattedTime();

  <span class="hljs-comment">// Check the web server for any incoming client requests</span>
  server.handleClient();

  <span class="hljs-comment">// Monitor sensor states for vehicle entry/exit</span>
  <span class="hljs-keyword">if</span> (digitalRead(inSensor) == LOW &amp;&amp; vehicalCount &lt; availableSpaces) {
    delay(<span class="hljs-number">2000</span>);      <span class="hljs-comment">// delay for vehicle need to be in a position</span>
    handleTrigger();  <span class="hljs-comment">// Trigger image capture for entry</span>
  }

  <span class="hljs-keyword">if</span> (digitalRead(outSensor) == LOW &amp;&amp; vehicalCount &gt; <span class="hljs-number">0</span>) {
    delay(<span class="hljs-number">2000</span>);  <span class="hljs-comment">// delay for vehicle need to be in a position</span>

    openBarrier();
    PlateEntry newExit;
    newExit.plateNumber = <span class="hljs-string">"NULL-Exit"</span>;
    newExit.time = currentTime;  <span class="hljs-comment">// Use the current timestamp</span>
    plateHistory.push_back(newExit);
    delay(barrierDelay);
    vehicalCount--;
    closeBarrier();

    currentStatus = <span class="hljs-string">"Idle"</span>;
    server.handleClient();  <span class="hljs-comment">// Update status on webpage</span>
  }
}
</code></pre>
<h2 id="heading-step-by-step-guide">🛠️ Step-by-Step Guide</h2>
<h3 id="heading-step-1-setting-up-the-esp32-cam">🔌 Step 1: Setting Up the ESP32-CAM</h3>
<ul>
<li><p>First, my team connected the ESP32-CAM to my PC using a <strong>FTDI programmer</strong>.</p>
</li>
<li><p>In the <strong>Arduino IDE</strong>, we installed the <strong>ESP32 board package</strong>.</p>
</li>
<li><p>Selected the right board: <code>AI Thinker ESP32-CAM</code>.</p>
</li>
<li><p>Wrote a simple camera test sketch to check if the camera works. Spoiler: it did! 😎</p>
</li>
</ul>
<pre><code class="lang-cpp"><span class="hljs-meta">#<span class="hljs-meta-keyword">include</span> <span class="hljs-meta-string">"esp_camera.h"</span></span>
<span class="hljs-comment">// Camera config here...</span>
</code></pre>
<hr />
<h3 id="heading-step-2-wifi-configuration">📶 Step 2: WiFi Configuration</h3>
<pre><code class="lang-cpp"><span class="hljs-keyword">const</span> <span class="hljs-keyword">char</span>* ssid = <span class="hljs-string">"YourWiFiName"</span>;
<span class="hljs-keyword">const</span> <span class="hljs-keyword">char</span>* password = <span class="hljs-string">"YourWiFiPassword"</span>;
</code></pre>
<ul>
<li><p>we set up WiFi so the ESP32-CAM can communicate with my server.</p>
</li>
<li><p>Made sure to test on a 2.4 GHz network (ESP32 doesn’t like 5 GHz).</p>
</li>
</ul>
<hr />
<h3 id="heading-step-3-camera-initialization">📷 Step 3: Camera Initialization</h3>
<ul>
<li><p>Used the default config for <strong>AI Thinker ESP32-CAM</strong>.</p>
</li>
<li><p>Adjusted resolution and quality for number plate clarity.</p>
</li>
<li><p>Pro tip: Lower resolution gives faster uploads, but too low = unreadable plates.</p>
</li>
</ul>
<hr />
<h3 id="heading-step-4-web-server-setup">🌐 Step 4: Web Server Setup</h3>
<ul>
<li><p>we created a simple <strong>web interface</strong> hosted on the ESP32 itself.</p>
</li>
<li><p>It shows the current parking status, a live snapshot, and logs.</p>
</li>
</ul>
<pre><code class="lang-cpp">server.on(<span class="hljs-string">"/"</span>, HTTP_GET, [](AsyncWebServerRequest *request){
  request-&gt;send_P(<span class="hljs-number">200</span>, <span class="hljs-string">"text/html"</span>, index_html);
});
</code></pre>
<ul>
<li>Used the <strong>ESPAsyncWebServer</strong> library for better performance.</li>
</ul>
<hr />
<h3 id="heading-step-5-real-time-clock-with-ntp">🕒 Step 5: Real-Time Clock with NTP</h3>
<ul>
<li><p>Synced the time with <strong>Indian Standard Time (IST)</strong> using an NTP server.</p>
</li>
<li><p>This helped log accurate timestamps for vehicle entries and exits.</p>
</li>
</ul>
<pre><code class="lang-cpp">configTime(<span class="hljs-number">19800</span>, <span class="hljs-number">0</span>, <span class="hljs-string">"pool.ntp.org"</span>); <span class="hljs-comment">// IST = UTC + 5:30</span>
</code></pre>
<hr />
<h3 id="heading-step-6-image-capture-and-upload">📤 Step 6: Image Capture and Upload</h3>
<ul>
<li><p>Captured an image whenever a vehicle was detected.</p>
</li>
<li><p>Uploaded the image to my remote server using an HTTP POST request.</p>
</li>
</ul>
<pre><code class="lang-cpp">client.POST(imageData);
</code></pre>
<ul>
<li>The server then processed the image (number plate recognition can be done here with OpenCV or a simple ML model – but for this version, I just stored the images).</li>
</ul>
<hr />
<h3 id="heading-step-7-vehicle-detection-barrier-control">🚗 Step 7: Vehicle Detection + Barrier Control</h3>
<ul>
<li><p>Used an <strong>IR sensor</strong> to detect vehicles at the gate.</p>
</li>
<li><p>When a vehicle is detected:</p>
<ol>
<li><p>Take a photo.</p>
</li>
<li><p>Check number plate (manually or using API).</p>
</li>
<li><p>If valid, <strong>servo motor rotates</strong> to open the gate.</p>
</li>
<li><p>Log the event.</p>
</li>
</ol>
</li>
</ul>
<pre><code class="lang-cpp">servo.write(<span class="hljs-number">90</span>); <span class="hljs-comment">// Open</span>
delay(<span class="hljs-number">3000</span>);
servo.write(<span class="hljs-number">0</span>);  <span class="hljs-comment">// Close</span>
</code></pre>
<hr />
<h3 id="heading-step-8-real-time-web-updates">🔁 Step 8: Real-Time Web Updates</h3>
<ul>
<li><p>Updated the web page with:</p>
<ul>
<li><p>Available parking slots</p>
</li>
<li><p>Vehicle entry/exit logs</p>
</li>
<li><p>Live image feed</p>
</li>
</ul>
</li>
<li><p>Used AJAX-style refreshing to update content without reloading the page.</p>
</li>
</ul>
<hr />
<h2 id="heading-final-touches">📋 Final Touches</h2>
<ul>
<li><p>Added a clean and responsive <strong>web UI</strong>.</p>
</li>
<li><p>Secured the HTTP requests with an <code>apiKey</code> (basic level, for now).</p>
</li>
<li><p>Deployed it in my room (LOL) for testing with a toy car. It worked surprisingly well!</p>
</li>
</ul>
<hr />
<h2 id="heading-things-to-improve-future-scope">⚠️ Things to Improve (Future Scope)</h2>
<ul>
<li><p>Integrate <strong>OCR</strong> (Optical Character Recognition) using Python/OpenCV for automatic number plate recognition.</p>
</li>
<li><p>Add <strong>Firebase or MQTT</strong> for real-time remote updates.</p>
</li>
<li><p>Use a proper <strong>SSL certificate</strong> for HTTPS.</p>
</li>
<li><p>Make a mobile app or dashboard for parking managers.</p>
</li>
</ul>
<hr />
<h2 id="heading-demo-time">📸 Demo Time!</h2>
<p>Here’s a sneak peek of how it looks when it’s working (GIF or photo link here if available).</p>
<hr />
<h2 id="heading-why-you-should-try-it-too">🤝 Why You Should Try It Too</h2>
<p>Whether you're from electrical, CS, or even mechanical – this project touches all the cool stuff: <strong>IoT, automation, web dev, and embedded systems</strong>. And it's super fun when it all comes together.</p>
<hr />
]]></content:encoded></item><item><title><![CDATA[From Zero to Deployment: How I Created a Scalable Portfolio Website on AWS with Hostinger Domain]]></title><description><![CDATA[In today’s tech-driven world, having a standout portfolio website isn't just a bonus—it’s essential. With the rise of AI tools and competition in every field, I realized it was time for me to build something that would reflect my skills, personality,...]]></description><link>https://blog.cloudkinshuk.in/from-zero-to-deployment-how-i-created-a-scalable-portfolio-website-on-aws-with-hostinger-domain</link><guid isPermaLink="true">https://blog.cloudkinshuk.in/from-zero-to-deployment-how-i-created-a-scalable-portfolio-website-on-aws-with-hostinger-domain</guid><category><![CDATA[Blogging]]></category><category><![CDATA[Cloud]]></category><category><![CDATA[AWS]]></category><dc:creator><![CDATA[Deactivated User]]></dc:creator><pubDate>Sat, 19 Apr 2025 15:34:15 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1754126129223/e7ceeb37-5765-45da-bf4f-2be2ba058155.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<hr />
<p>In today’s tech-driven world, having a <strong>standout portfolio website</strong> isn't just a bonus—it’s essential. With the rise of AI tools and competition in every field, I realized it was time for me to build something that would reflect my skills, personality, and projects. So I started my journey, and now, <strong>I have my very own portfolio website</strong>—hosted with a custom domain and powered by modern web technologies.</p>
<p>In this blog, I’ll guide you step-by-step on:</p>
<ul>
<li><p>What tools and technologies I used</p>
</li>
<li><p>How I deployed it on AWS</p>
</li>
<li><p>Folder structure &amp; configuration</p>
</li>
<li><p>How YOU can clone or replicate it with zero prior experience</p>
</li>
</ul>
<hr />
<h2 id="heading-my-portfolio">🌐 My Portfolio:</h2>
<p>I purchased the domain from Hostinger and deployed the project using AWS services. Here's everything I used and how I used it.</p>
<p>Link : https://cloudkinshuk.in</p>
<hr />
<h2 id="heading-an-overview">An Overview :</h2>
<p>If you're not very familiar with programming and don't want to create a separate project from scratch using React and TypeScript, you can directly jump to the <strong>“Cloning the Project”</strong> section using the navigation menu. This will simplify the setup process and allow you to easily customize the UI, code, and data to fit your needs.</p>
<hr />
<h2 id="heading-tech-stack-amp-tools">🧠 Tech Stack &amp; Tools</h2>
<h3 id="heading-development-environment">⚙️ Development Environment</h3>
<ul>
<li><p><strong>IDE</strong>: VS Code</p>
</li>
<li><p><strong>Package Manager</strong>: npm (primary), bun/yarn/pnpm (optional)</p>
</li>
</ul>
<h3 id="heading-core-technologies">📦 Core Technologies</h3>
<div class="hn-table">
<table>
<thead>
<tr>
<td><strong>Tool</strong></td><td><strong>Version</strong></td></tr>
</thead>
<tbody>
<tr>
<td>React</td><td><code>19.0.0</code></td></tr>
<tr>
<td>TypeScript</td><td><code>5.7.2</code></td></tr>
<tr>
<td>React Router DOM</td><td><code>7.3.0</code></td></tr>
<tr>
<td>Tailwind CSS</td><td><code>4.0.14</code></td></tr>
<tr>
<td>Framer Motion</td><td><code>12.5.0</code></td></tr>
<tr>
<td>React Icons</td><td><code>5.5.0</code></td></tr>
<tr>
<td>Lucide React</td><td><code>0.482.0</code></td></tr>
</tbody>
</table>
</div><h3 id="heading-fonts">🎨 Fonts</h3>
<ul>
<li><strong>Poppins</strong> from Google Fonts</li>
</ul>
<hr />
<h2 id="heading-deployment-amp-cloud-setup">☁️ Deployment &amp; Cloud Setup</h2>
<h3 id="heading-cloud-amp-hosting">🧭 Cloud &amp; Hosting</h3>
<ul>
<li><p><strong>Frontend Hosting</strong>: <a target="_blank" href="https://aws.amazon.com/amplify/">AWS Amplify</a> (Serverless, scalable, easy CI/CD)</p>
</li>
<li><p><strong>DNS &amp; SSL</strong>: AWS Route 53</p>
</li>
<li><p><strong>Domain Provider</strong>: Hostinger (<code>.in</code> domain for ₹1000 / 2 years)</p>
</li>
<li><p><strong>Version Control</strong>: Git &amp; GitHub</p>
</li>
</ul>
<blockquote>
<p>🔗 GitHub Repo: <a target="_blank" href="https://github.com/kinshukjainn/kinshukkportfolio">kinshukjainn/kinshukkportfolio</a></p>
</blockquote>
<hr />
<h2 id="heading-flow-diagram-of-architecture">Flow Diagram of Architecture :</h2>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1746539838362/6165b174-4b75-4676-b453-d750d526dce7.png" alt class="image--center mx-auto" /></p>
<h2 id="heading-beginner-friendly-alternatives-for-deployment">Beginner-Friendly Alternatives for Deployment</h2>
<p>If you’re new to cloud deployments, these platforms are perfect starting points:</p>
<ul>
<li><p><strong>Vercel</strong></p>
</li>
<li><p><strong>Netlify</strong></p>
</li>
<li><p><strong>Railway</strong></p>
</li>
<li><p><strong>Heroku</strong></p>
</li>
</ul>
<h3 id="heading-for-intermediateadvanced-users">For Intermediate/Advanced Users:</h3>
<ul>
<li><p><strong>Google Cloud Platform (GCP)</strong> — great if you like Google’s ecosystem</p>
</li>
<li><p><strong>Microsoft Azure</strong> — ideal for Microsoft fans</p>
</li>
</ul>
<hr />
<h2 id="heading-building-process-from-scratch">Building Process (From Scratch)</h2>
<blockquote>
<p>💡 Tip: <strong>Only use one package manager</strong> — npm or bun or yarn or pnpm. Using more than one can cause conflicts during deployment.</p>
</blockquote>
<h3 id="heading-step-1-create-your-react-app">Step 1: Create Your React App</h3>
<h4 id="heading-using-npm-recommended-for-beginners">Using <code>npm</code> (Recommended for beginners):</h4>
<pre><code class="lang-bash">npm create vite@latest my-project-name
</code></pre>
<h4 id="heading-using-bun">Using <code>bun</code>:</h4>
<p>run this command in your terminal before running <code>bun create vite</code> in your project directory in vscode :</p>
<pre><code class="lang-bash">bun install
</code></pre>
<pre><code class="lang-bash">
bun create vite
</code></pre>
<h4 id="heading-using-yarn-if-you-know-yarn-installation-well-then-only-use-it">Using <code>yarn</code>: ( if you know yarn installation well then only use it )</h4>
<pre><code class="lang-bash">yarn create vite my-project-name
</code></pre>
<hr />
<h3 id="heading-step-2-install-project-dependencies">✅ Step 2: Install Project Dependencies</h3>
<p>Navigate to your project directory:</p>
<pre><code class="lang-bash"><span class="hljs-built_in">cd</span> kinshukkportfolio <span class="hljs-comment"># your project directory can be different</span>
</code></pre>
<p>Then install packages:</p>
<pre><code class="lang-bash">npm install
</code></pre>
<p>If using yarn or bun:</p>
<pre><code class="lang-bash">yarn install
<span class="hljs-comment"># OR</span>
bun install
</code></pre>
<hr />
<h2 id="heading-folder-structure">📁 Folder Structure</h2>
<p>Here’s what my folder structure looks like:</p>
<pre><code class="lang-bash">REACTPORTFOLIO/
├── kinshukportfolio/
├── node_modules/
├── public/
├── src/
│   ├── assets/
│   ├── components/
│   ├── socialmedia/
│   ├── App.tsx
│   ├── index.css
│   ├── main.tsx
│   └── vite-env.d.ts
├── .gitignore
├── package.json
├── tailwind.config.js
├── vite.config.ts
├── tsconfig.json
└── README.md
</code></pre>
<hr />
<h2 id="heading-tailwind-css-setup">🎨 Tailwind CSS Setup</h2>
<h3 id="heading-install-tailwind-css">Install Tailwind CSS:</h3>
<pre><code class="lang-bash">npm install tailwindcss @tailwindcss/vite
</code></pre>
<h3 id="heading-configure-viteconfigts">Configure <code>vite.config.ts</code>:</h3>
<pre><code class="lang-ts"><span class="hljs-keyword">import</span> { defineConfig } <span class="hljs-keyword">from</span> <span class="hljs-string">'vite'</span>
<span class="hljs-keyword">import</span> react <span class="hljs-keyword">from</span> <span class="hljs-string">'@vitejs/plugin-react'</span>
<span class="hljs-keyword">import</span> tailwindcss <span class="hljs-keyword">from</span> <span class="hljs-string">'@tailwindcss/vite'</span>

<span class="hljs-keyword">export</span> <span class="hljs-keyword">default</span> defineConfig({
  plugins: [react(), tailwindcss()],
})
</code></pre>
<h3 id="heading-add-tailwind-imports-in-indexcss">Add Tailwind Imports in <code>index.css</code>:</h3>
<pre><code class="lang-css"><span class="hljs-keyword">@import</span> <span class="hljs-string">"tailwindcss"</span>;
</code></pre>
<hr />
<h2 id="heading-other-dependencies-setup">🔌 Other Dependencies Setup</h2>
<h3 id="heading-react-icons">React Icons</h3>
<pre><code class="lang-bash">npm install react-icons
</code></pre>
<h3 id="heading-framer-motion">Framer Motion</h3>
<pre><code class="lang-bash">npm install framer-motion
</code></pre>
<h3 id="heading-lucide-react-icon-library">Lucide React (Icon Library)</h3>
<pre><code class="lang-bash">npm install lucide-react
</code></pre>
<hr />
<h2 id="heading-running-the-app-locally">▶️ Running the App Locally</h2>
<p>After everything is set up, run:</p>
<pre><code class="lang-bash">npm run dev
</code></pre>
<p>You should see your site running at <code>localhost:5173</code> (or similar).</p>
<hr />
<h2 id="heading-my-packagejson-for-reference">📜 My <code>package.json</code> (For Reference)</h2>
<pre><code class="lang-json">{
  <span class="hljs-attr">"name"</span>: <span class="hljs-string">"portweb"</span>,
  <span class="hljs-attr">"private"</span>: <span class="hljs-literal">true</span>,
  <span class="hljs-attr">"version"</span>: <span class="hljs-string">"0.0.0"</span>,
  <span class="hljs-attr">"type"</span>: <span class="hljs-string">"module"</span>,
  <span class="hljs-attr">"scripts"</span>: {
    <span class="hljs-attr">"dev"</span>: <span class="hljs-string">"vite"</span>,
    <span class="hljs-attr">"build"</span>: <span class="hljs-string">"tsc -b &amp;&amp; vite build"</span>,
    <span class="hljs-attr">"lint"</span>: <span class="hljs-string">"eslint ."</span>,
    <span class="hljs-attr">"preview"</span>: <span class="hljs-string">"vite preview"</span>
  },
  <span class="hljs-attr">"dependencies"</span>: {
    <span class="hljs-attr">"@headlessui/react"</span>: <span class="hljs-string">"^2.2.0"</span>,
    <span class="hljs-attr">"@mui/icons-material"</span>: <span class="hljs-string">"^6.4.7"</span>,
    <span class="hljs-attr">"@mui/material"</span>: <span class="hljs-string">"^6.4.7"</span>,
    <span class="hljs-attr">"@tailwindcss/vite"</span>: <span class="hljs-string">"^4.0.14"</span>,
    <span class="hljs-attr">"framer-motion"</span>: <span class="hljs-string">"^12.5.0"</span>,
    <span class="hljs-attr">"lucide-react"</span>: <span class="hljs-string">"^0.482.0"</span>,
    <span class="hljs-attr">"react"</span>: <span class="hljs-string">"^19.0.0"</span>,
    <span class="hljs-attr">"react-dom"</span>: <span class="hljs-string">"^19.0.0"</span>,
    <span class="hljs-attr">"react-icons"</span>: <span class="hljs-string">"^5.5.0"</span>,
    <span class="hljs-attr">"react-router-dom"</span>: <span class="hljs-string">"^7.3.0"</span>,
    <span class="hljs-attr">"react-syntax-highlighter"</span>: <span class="hljs-string">"^15.6.1"</span>,
    <span class="hljs-attr">"tailwindcss"</span>: <span class="hljs-string">"^4.0.14"</span>,
    <span class="hljs-attr">"uuid"</span>: <span class="hljs-string">"^11.1.0"</span>
  },
  <span class="hljs-attr">"devDependencies"</span>: {
    <span class="hljs-attr">"@eslint/js"</span>: <span class="hljs-string">"^9.21.0"</span>,
    <span class="hljs-attr">"@types/react"</span>: <span class="hljs-string">"^19.0.12"</span>,
    <span class="hljs-attr">"@types/react-dom"</span>: <span class="hljs-string">"^19.0.4"</span>,
    <span class="hljs-attr">"@vitejs/plugin-react"</span>: <span class="hljs-string">"^4.3.4"</span>,
    <span class="hljs-attr">"eslint"</span>: <span class="hljs-string">"^9.21.0"</span>,
    <span class="hljs-attr">"eslint-plugin-react-hooks"</span>: <span class="hljs-string">"^5.1.0"</span>,
    <span class="hljs-attr">"eslint-plugin-react-refresh"</span>: <span class="hljs-string">"^0.4.19"</span>,
    <span class="hljs-attr">"globals"</span>: <span class="hljs-string">"^15.15.0"</span>,
    <span class="hljs-attr">"typescript"</span>: <span class="hljs-string">"~5.7.2"</span>,
    <span class="hljs-attr">"typescript-eslint"</span>: <span class="hljs-string">"^8.24.1"</span>,
    <span class="hljs-attr">"vite"</span>: <span class="hljs-string">"^6.2.0"</span>
  }
}
</code></pre>
<hr />
<h2 id="heading-cloning-the-project-for-beginners">🧪 Cloning the Project (For Beginners)</h2>
<p>Want to replicate this exact setup? Here’s how:</p>
<ol>
<li><p><strong>Create a GitHub account</strong> (if you don’t already have one)</p>
</li>
<li><p>Visit my repo: <a target="_blank" href="https://github.com/kinshukjainn/kinshukkportfolio">github.com/kinshukjainn/kinshukkportfolio</a></p>
</li>
<li><p>Click <strong>"Fork"</strong></p>
</li>
<li><p>Clone your forked version:</p>
<pre><code class="lang-bash"> git <span class="hljs-built_in">clone</span> https://github.com/yourusername/reponame.git
 <span class="hljs-built_in">cd</span> kinshukkportfolio
 npm install
 npm run dev
</code></pre>
</li>
</ol>
<h2 id="heading-here-is-a-video-of-how-to-clone-a-forked-repo">Here is a video of how to clone a forked repo :</h2>
<div class="embed-wrapper"><div class="embed-loading"><div class="loadingRow"></div><div class="loadingRow"></div></div><a class="embed-card" href="https://youtu.be/isZ2FG8dXbQ">https://youtu.be/isZ2FG8dXbQ</a></div>
<p> </p>
<p>Customize the content, styles, and animations to make it your own!</p>
<p>If you have proceed till here you are very near to deploy your own portfolio website on the cloud and also would be able to host it :</p>
<p>Alright Kinshuk! Here's a <strong>step-by-step beginner-friendly guide</strong> to help you:</p>
<h2 id="heading-buy-a-domain-on-hostinger-amp-connect-it-to-aws-amplify-route-53">Buy a Domain on Hostinger &amp; Connect It to AWS (Amplify + Route 53)</h2>
<hr />
<h3 id="heading-part-1-buying-a-domain-from-hostinger">Part 1: Buying a Domain from Hostinger</h3>
<ol>
<li><p><strong>Go to</strong> <a target="_blank" href="https://www.hostinger.in/"><strong>Hostinger</strong></a></p>
<ul>
<li><p>Create an account if you don’t have one.</p>
</li>
<li><p>Login to your dashboard.</p>
</li>
</ul>
</li>
<li><p><strong>Buy a Domain</strong></p>
<ul>
<li><p>Click on <strong>"Domains"</strong> in the top navbar.</p>
</li>
<li><p>Search for your desired domain (e.g., <code>cloudkinshuk.dev</code>).</p>
</li>
<li><p>Click <strong>Buy Now</strong> and proceed with the payment.</p>
</li>
</ul>
</li>
<li><p><strong>Access Domain Settings</strong></p>
<ul>
<li><p>After purchase, go to <strong>“Domains” → “Manage”</strong>.</p>
</li>
<li><p>You’ll see options like DNS, Nameservers, WHOIS, etc.</p>
</li>
</ul>
</li>
</ol>
<hr />
<h3 id="heading-part-2-set-up-an-aws-account">Part 2: Set Up an AWS Account</h3>
<ol>
<li><p><strong>Go to</strong> <a target="_blank" href="https://aws.amazon.com/console/"><strong>AWS Console</strong></a></p>
<ul>
<li><p>Click <strong>"Create an AWS account"</strong>.</p>
</li>
<li><p>Fill in your name, email, and password.</p>
</li>
<li><p>Add billing info (₹2 might be deducted for card verification).</p>
</li>
</ul>
</li>
<li><p><strong>Sign In to AWS Console</strong></p>
<ul>
<li>Go to the <a target="_blank" href="https://console.aws.amazon.com/">AWS Console</a>, sign in as a <strong>root user</strong> (with your email).</li>
</ul>
</li>
</ol>
<hr />
<h3 id="heading-part-3-create-route-53-hosted-zone">Part 3: Create Route 53 Hosted Zone</h3>
<ol>
<li><p><strong>Search for “Route 53”</strong> in the AWS Console.</p>
</li>
<li><p>On the left panel, go to <strong>"Hosted Zones"</strong> → <strong>Create Hosted Zone</strong></p>
<ul>
<li><p><strong>Domain Name:</strong> your domain (e.g., <code>cloudkinshuk.dev</code>)</p>
</li>
<li><p><strong>Type:</strong> Public Hosted Zone</p>
</li>
<li><p>Click <strong>Create</strong></p>
</li>
</ul>
</li>
<li><p><strong>Note Down the NS Records (Nameservers)</strong></p>
<ul>
<li>AWS will generate <strong>4 NS records</strong> (like <code>ns-123.awsdns-xyz.com</code>).</li>
</ul>
</li>
</ol>
<hr />
<h3 id="heading-part-4-update-nameservers-in-hostinger">Part 4: Update Nameservers in Hostinger</h3>
<ol>
<li><p>Go back to <strong>Hostinger &gt; Domains &gt; Manage</strong></p>
</li>
<li><p>Scroll to <strong>"Nameservers"</strong></p>
</li>
<li><p>Choose <strong>"Use custom nameservers"</strong></p>
</li>
</ol>
<p>Paste the <strong>4 NS records</strong> you got from Route 53</p>
<pre><code class="lang-bash">ns-1962.awsdns-53.co.uk  
ns-897.awsdns-47.net  
ns-1136.awsdns-14.org  
ns-200.awsdns-25.com
</code></pre>
<blockquote>
<p><strong>Note:</strong> These are <strong>just examples</strong> and won’t work for your domain. You must use the exact NS records that AWS gives you after creating a hosted zone in Route 53. Always copy-paste from your actual AWS dashboard.</p>
</blockquote>
<ol>
<li>Save the changes<br /> ⏳ It might take 5 minutes to a few hours to reflect.</li>
</ol>
<hr />
<h3 id="heading-part-5-deploy-your-project-with-aws-amplify">Part 5: Deploy Your Project with AWS Amplify</h3>
<ol>
<li><p><strong>Go to AWS Console → Search for “Amplify”</strong></p>
</li>
<li><p>Click on <strong>“Get Started”</strong> under <strong>Host a web app</strong></p>
</li>
<li><p>Connect your <strong>GitHub Repository</strong></p>
<ul>
<li>Authorize GitHub → Select your repo (e.g., portfolio or blog)</li>
</ul>
</li>
<li><p>Choose branch (e.g., <code>main</code>)</p>
</li>
<li><p>Click <strong>Next</strong>, then <strong>Deploy</strong></p>
</li>
</ol>
<p>🔄 Amplify will now:</p>
<ul>
<li><p>Build</p>
</li>
<li><p>Deploy</p>
</li>
<li><p>Host your site at a temporary domain like: <code>main.abcd123.amplifyapp.com</code></p>
</li>
</ul>
<hr />
<h3 id="heading-part-6-connect-custom-domain-from-hostinger">Part 6: Connect Custom Domain (from Hostinger)</h3>
<ol>
<li><p>In Amplify → Click on your deployed app → Go to <strong>“Domain Management”</strong></p>
</li>
<li><p>Click <strong>“Add Domain”</strong></p>
<ul>
<li>Enter your domain name (e.g., <code>cloudkinshuk.dev</code>)</li>
</ul>
</li>
<li><p>Choose subdomains:</p>
<ul>
<li><p><code>www.cloudkinshuk.dev</code></p>
</li>
<li><p><code>cloudkinshuk.dev</code></p>
</li>
</ul>
</li>
<li><p>Click <strong>Save</strong><br /> Amplify will show you <strong>CNAME</strong> and <strong>A records</strong> to be added in Route 53.</p>
</li>
</ol>
<hr />
<h3 id="heading-part-7-add-domain-records-in-route-53">Part 7: Add Domain Records in Route 53 →</h3>
<ol>
<li><p>Go back to <strong>Route 53 → Hosted Zones → Select your domain</strong></p>
</li>
<li><p>Click <strong>“Create Record”</strong></p>
<ul>
<li><p>Choose type <strong>A – IPv4 address</strong></p>
</li>
<li><p>Select <strong>Alias</strong> = Yes → Choose <strong>Alias Target</strong> = Amplify target (will be shown)</p>
</li>
<li><p>Click <strong>Create</strong></p>
</li>
</ul>
</li>
<li><p>For www:</p>
<ul>
<li><p>Create a <strong>CNAME record</strong></p>
</li>
<li><p>Name = <code>www</code></p>
</li>
<li><p>Value = Amplify's <code>www.cloudkinshuk.dev</code> target</p>
</li>
</ul>
</li>
</ol>
<hr />
<h3 id="heading-part-8-enable-redirection-from-www-non-www">Part 8: Enable Redirection from www → non-www</h3>
<ol>
<li><p>In Amplify &gt; Domain Management</p>
</li>
<li><p>Click on <strong>"Edit"</strong> for domain settings</p>
</li>
<li><p>Check the box for <strong>Redirect www to root domain</strong> (<code>www.cloudkinshuk.dev</code> → <code>cloudkinshuk.dev</code>)</p>
</li>
</ol>
<hr />
<h3 id="heading-done">Done!</h3>
<p>Now visiting your domain like <code>https://cloudkinshuk.dev</code> will open your Amplify-hosted project.</p>
<hr />
<h3 id="heading-pro-tips">Pro Tips →</h3>
<ul>
<li><p>DNS changes may take 5–60 minutes to propagate globally.</p>
</li>
<li><p>Make sure your project has a proper <code>build</code> script in <code>package.json</code> (like <code>next build</code> or <code>vite build</code>).</p>
</li>
<li><p>You can also enable <strong>HTTPS (SSL)</strong> from Amplify automatically.</p>
</li>
</ul>
<hr />
<h2 id="heading-final-thoughts">Final Thoughts →</h2>
<p>Creating this portfolio site helped me improve my React and cloud skills while giving me a central place to showcase my projects and resume. Whether you're a beginner or an experienced dev, building your own portfolio is the best investment in your career.</p>
<p>If you liked this guide or found it helpful, give the repo a ⭐ on GitHub and feel free to connect!</p>
<hr />
<h2 id="heading-connect-with-me">Connect With Me :</h2>
<p>My social Links : →</p>
<ul>
<li><p><strong>Portfolio</strong>: <a target="_blank" href="https://cloudkinshuk.in">cloudkinshuk</a></p>
</li>
<li><p><strong>GitHub</strong>: <a target="_blank" href="https://github.com/kinshukjainn">kinshukjainn</a></p>
</li>
<li><p><strong>LinkedIn</strong>: <a target="_blank" href="https://linkedin.com/in/kinshukjainn">kinshukjainn</a></p>
</li>
<li><p><strong>Instagram</strong>: <a target="_blank" href="https://instagram.com/kinshukjain._">kinshukjain</a>._</p>
</li>
<li><p>twitter(X) : <a target="_blank" href="https://x.com/realkinshuk004">kinshukjainn</a></p>
</li>
</ul>
]]></content:encoded></item><item><title><![CDATA[Best way to understand AWS Well Archietected Framework]]></title><description><![CDATA[Imagine you're running a school where you serve as the principal. As the principal, you are the main operator of the school. However, you can't handle everything alone—so you hire teachers and staff to manage various tasks. Each of them has their own...]]></description><link>https://blog.cloudkinshuk.in/best-way-to-understand-aws-well-archietected-framework</link><guid isPermaLink="true">https://blog.cloudkinshuk.in/best-way-to-understand-aws-well-archietected-framework</guid><dc:creator><![CDATA[Deactivated User]]></dc:creator><pubDate>Thu, 17 Apr 2025 04:04:28 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1744862104557/ece9cf1b-e2b9-4a17-ba10-ed6be8673f94.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Imagine you're running a school where you serve as the principal. As the principal, you are the main operator of the school. However, you can't handle everything alone—so you hire teachers and staff to manage various tasks. Each of them has their own set of responsibilities to follow, and there are rules and laws in place to maintain the decorum of the school.</p>
<p>While you're in charge of the school's overall operations, it's not realistic to place all the responsibility for growth and management solely on yourself or the staff. Instead, responsibilities are shared. As a principal, you delegate certain duties to both staff and students, ensuring that each group does its part. This distribution of responsibilities is key to the smooth functioning and success of the school.</p>
<p>Similarly, in the <strong>AWS Shared Responsibility Model</strong>, both AWS and the customer have their own roles. AWS takes care of the <strong>security</strong> of the cloud (like <strong>infrastructure</strong>, <strong>networking</strong>, and <strong>hardware</strong>), while the customer is responsible for <strong>security</strong> <strong>in the cloud</strong> (like data, access management, and configurations).</p>
<p>Just like a school cannot function properly without shared responsibility, cloud environments remain secure and efficient only when both AWS and the customer understand and fulfill their respective roles.</p>
<p>This analogy helps us clearly understand how the AWS Shared Responsibility Model works.</p>
<h2 id="heading-some-important-principle-of-aws-customer-responsibility-model">Some important principle of AWS customer responsibility model :</h2>
<p>List of important principles of the AWS Customer Responsibility Model explained in simple English with a slight sarcastic touch, while still sounding like you know your stuff and respect AWS:</p>
<h1 id="heading-aws-customer-responsibility-model-the-you-handle-this-edition">AWS Customer Responsibility Model – The "You Handle This" Edition</h1>
<h3 id="heading-1-your-data-your-drama">1. Your Data, Your Drama</h3>
<p>AWS isn’t your babysitter. You put your data on the cloud? You better make sure it’s encrypted, backed up, and not publicly exposed unless you want a front-row seat to a data leak scandal.</p>
<h3 id="heading-2-you-control-access-so-dont-give-the-keys-to-everyone">2. You Control Access, So Don’t Give the Keys to Everyone</h3>
<p>IAM (Identity and Access Management) is your responsibility. If your intern has admin access to your production server—congrats, you played yourself.</p>
<h3 id="heading-3-patching-your-os-isnt-awss-job">3. Patching Your OS Isn’t AWS’s Job</h3>
<p>If you’re using EC2 or managing your own environment, patch it regularly. AWS won’t come knocking on your door with a “Hey, update available!” reminder.</p>
<h3 id="heading-4-security-groups-are-not-suggestions">4. Security Groups Are Not Suggestions</h3>
<p>Leaving all ports open "just to test something" is like leaving your house unlocked because you’re “only going out for five minutes.” Guess what? Hackers don’t need five minutes.</p>
<h3 id="heading-5-you-pick-the-services-so-dont-blame-aws-when-you-mess-up">5. You Pick the Services, So Don’t Blame AWS When You Mess Up</h3>
<p>Chose the wrong storage class or made an S3 bucket public by accident? That’s on you. AWS gives you powerful tools, but with great power comes great... yeah, you know the drill.</p>
<h3 id="heading-6-logs-exist-for-a-reason-read-them-before-the-fire-starts">6. Logs Exist for a Reason – Read Them Before the Fire Starts</h3>
<p>Cloud trail , CloudWatch, and other logs are your eyes in the cloud. Ignoring them is like driving blindfolded and acting shocked when you crash.</p>
<h3 id="heading-7-shared-responsibility-doesnt-mean-shared-blame">7. Shared Responsibility Doesn’t Mean Shared Blame</h3>
<p>Just because AWS handles the infrastructure doesn’t mean you get a free pass. If you mis configure something, it’s your circus, your monkeys.</p>
]]></content:encoded></item><item><title><![CDATA[AWS Infrastructure that is scalable and cost efficient]]></title><description><![CDATA[Why AWS Infrastructure is Ideal for Scalable and Large Applications
Explore how each component of AWS architecture contributes to building scalable, secure, and reliable applications, whether for startups or large enterprises.

1. Amazon EC2 with Aut...]]></description><link>https://blog.cloudkinshuk.in/aws-infrastructure-that-is-scalable-and-cost-efficient</link><guid isPermaLink="true">https://blog.cloudkinshuk.in/aws-infrastructure-that-is-scalable-and-cost-efficient</guid><category><![CDATA[Cloud]]></category><category><![CDATA[AWS]]></category><category><![CDATA[scalability]]></category><dc:creator><![CDATA[Deactivated User]]></dc:creator><pubDate>Mon, 14 Apr 2025 09:16:01 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1744622042629/5c1d9b2a-806a-4717-a25a-9aef11657f33.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<h3 id="heading-why-aws-infrastructure-is-ideal-for-scalable-and-large-applications"><strong>Why AWS Infrastructure is Ideal for Scalable and Large Applications</strong></h3>
<p>Explore how each component of AWS architecture contributes to building scalable, secure, and reliable applications, whether for startups or large enterprises.</p>
<hr />
<h3 id="heading-1-amazon-ec2-with-auto-scaling-group-asg"><strong>1. Amazon EC2 with Auto Scaling Group (ASG)</strong></h3>
<p>Amazon EC2 (Elastic Compute Cloud) provides virtual servers for your applications, while Auto Scaling Groups dynamically adjust the number of servers based on demand.</p>
<p><strong>Scalability Benefits:</strong><br />During high-traffic events, such as sales or viral campaigns, additional servers are automatically provisioned. Conversely, when demand decreases, surplus servers are decommissioned, optimizing costs and maintaining seamless performance.</p>
<hr />
<h3 id="heading-2-aws-elastic-load-balancer-elb"><strong>2. AWS Elastic Load Balancer (ELB)</strong></h3>
<p>The Elastic Load Balancer efficiently distributes incoming traffic across multiple EC2 instances.</p>
<p><strong>Scalability Benefits:</strong><br />By balancing the load, ELB prevents any single server from becoming overwhelmed. It also ensures traffic is directed to healthy instances during deployments or outages, enhancing reliability.</p>
<hr />
<h3 id="heading-3-amazon-s3-with-versioning"><strong>3. Amazon S3 with Versioning</strong></h3>
<p>Amazon S3 offers robust storage solutions for files, backups, static websites, and media, with versioning to maintain multiple file versions.</p>
<p><strong>Scalability Benefits:</strong><br />With the capability to store unlimited data and support millions of users, S3 ensures data integrity and recovery from accidental deletions or overwrites through versioning.</p>
<hr />
<h3 id="heading-4-aws-waf-guardduty-and-kms"><strong>4. AWS WAF, GuardDuty, and KMS</strong></h3>
<ul>
<li><p><strong>WAF (Web Application Firewall):</strong> Shields your application from common threats like SQL injection and XSS.</p>
</li>
<li><p><strong>GuardDuty:</strong> Monitors for suspicious activities, such as unauthorized access attempts.</p>
</li>
<li><p><strong>KMS (Key Management Service):</strong> Provides encryption for data at rest and in transit.</p>
</li>
</ul>
<p><strong>Security and Scalability Benefits:</strong><br />AWS integrates security at every level, automatically scaling protection as your user base expands, eliminating the need for manual management.</p>
<hr />
<h3 id="heading-5-cloudfront-and-cloudformation"><strong>5. CloudFront and CloudFormation</strong></h3>
<p>CloudFront, a Content Delivery Network (CDN), caches content closer to users globally, while CloudFormation automates infrastructure deployment using templates (Infrastructure as Code).</p>
<p><strong>Scalability Benefits:</strong><br />CloudFront reduces server load and accelerates content delivery by serving it from nearby locations. CloudFormation enables rapid environment scaling and recovery, ideal for disaster recovery and global expansion.</p>
<hr />
<h3 id="heading-6-amazon-rds-relational-database-service"><strong>6. Amazon RDS (Relational Database Service)</strong></h3>
<p>Amazon RDS offers managed database services supporting MySQL, PostgreSQL, and more.</p>
<p><strong>Scalability Benefits:</strong><br />RDS allows for increased storage and performance as your application grows, with features like read replicas, backups, and automatic failover to efficiently handle millions of queries.</p>
<hr />
<h3 id="heading-7-ecs-and-ecr-optional-kubernetes"><strong>7. ECS and ECR (Optional: Kubernetes)</strong></h3>
<ul>
<li><p><strong>ECS (Elastic Container Service):</strong> Manages application containers.</p>
</li>
<li><p><strong>ECR (Elastic Container Registry):</strong> Stores container images.</p>
</li>
<li><p><strong>Optional Kubernetes (EKS):</strong> Provides advanced container orchestration.</p>
</li>
</ul>
<p><strong>Scalability Benefits:</strong><br />Containers enhance application portability and efficiency. ECS and EKS automate scaling, container restarts, and cluster management, ideal for microservices and modern distributed applications.</p>
<hr />
<h3 id="heading-final-thoughts"><strong>Final Thoughts</strong></h3>
<p>This AWS architecture is designed for scalability, reliability, and security, making it suitable for everything from small websites to global enterprise applications. It offers:</p>
<ul>
<li><p>Automatic scaling during peak loads,</p>
</li>
<li><p>High availability across regions,</p>
</li>
<li><p>Built-in robust security,</p>
</li>
<li><p>Simplified automation and recovery with CloudFormation.</p>
</li>
</ul>
<p>Whether you're developing a social network, e-commerce platform, or internal tool, this setup is engineered to grow alongside your business.</p>
<hr />
<p><a class="user-mention" href="https://hashnode.com/@kinshukjainn">kinshuk Jain</a> : Management of blogs</p>
]]></content:encoded></item><item><title><![CDATA[Reasons why you should start blogging to build you career!!]]></title><description><![CDATA[Reason 1 :
See blogging is a great way of expressing your thoughts in public not only thoughts also the ideas . Your social media cannot make you ideas or thoughts to express everything .See you have some limitation on social media platforms and due ...]]></description><link>https://blog.cloudkinshuk.in/reasons-why-you-should-start-blogging-to-build-you-career</link><guid isPermaLink="true">https://blog.cloudkinshuk.in/reasons-why-you-should-start-blogging-to-build-you-career</guid><category><![CDATA[Blogging]]></category><category><![CDATA[Blogs]]></category><category><![CDATA[BlogsWithCC]]></category><category><![CDATA[Cloud]]></category><dc:creator><![CDATA[Deactivated User]]></dc:creator><pubDate>Sun, 13 Apr 2025 21:33:47 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1744578066538/3b3ff896-c951-47ee-b689-f11ebc631da2.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<h2 id="heading-reason-1"><strong>Reason 1 :</strong></h2>
<p>See blogging is a great way of expressing your thoughts in public not only thoughts also the ideas . Your social media cannot make you ideas or thoughts to express everything .See you have some limitation on social media platforms and due to that you cannot express everything , until and unless you have a greate crediblity and impressive presence on social media platforms like instagram or twitter ( now X)</p>
<h2 id="heading-reason-2">Reason 2 :</h2>
<p>Through blogging your ideas get into public which is visible to mostly everyone until and unless you make it private or limit it to certain access . This can increase your chances of getting some opportunities towards you . This is making you a potential candidate for someone to hire you or who wants to collab / work with you .</p>
<h2 id="heading-reason-3">Reason 3:</h2>
<p>The blogging can make your skills represent in a different way for example: there are many skill set which cannot be shown on social media directly . There is a way but its not feasable enough make it possible or even if you do it it might not gain that much attention on social media platforms. So you can do that by blogging , its flexible, free and with single link you can represent all your ideas. These ideas and thoughts would be visible to everyone without any restriction</p>
<pre><code class="lang-bash">Like how you 
are reading my blog right now and 
enjoying !!! 😆
</code></pre>
<h2 id="heading-reason-4">Reason 4 :</h2>
<p>This also represents that you are not only serious about the work or skills, you are leveraging right now. As you are sharing thoughts in blogs that means , you are confident to share your thoughts / opinion on that particular skills and thats something which can make you stand out. That also shows the collaboration and open mindset for learning and growth. I think thats something which is absolutely game changer in your career and proffesional profile building .</p>
]]></content:encoded></item><item><title><![CDATA[5 AWS services that every beginner should know !!]]></title><description><![CDATA[5 Essential AWS Services for Beginners: Real-Life Applications
Embarking on your cloud computing journey can be daunting, especially with the vast array of services offered by Amazon Web Services (AWS). However, AWS is quite approachable once you bre...]]></description><link>https://blog.cloudkinshuk.in/5-aws-services-that-every-beginner-should-know</link><guid isPermaLink="true">https://blog.cloudkinshuk.in/5-aws-services-that-every-beginner-should-know</guid><category><![CDATA[Cloud]]></category><category><![CDATA[AWS]]></category><category><![CDATA[services]]></category><category><![CDATA[aws lambda]]></category><category><![CDATA[AWS Certified Solutions Architect Associate]]></category><dc:creator><![CDATA[Deactivated User]]></dc:creator><pubDate>Sun, 13 Apr 2025 20:52:13 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1744577452995/264f788c-516e-4890-b5db-9b79d6f4a8ff.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<h2 id="heading-5-essential-aws-services-for-beginners-real-life-applications">5 Essential AWS Services for Beginners: Real-Life Applications</h2>
<p>Embarking on your cloud computing journey can be daunting, especially with the vast array of services offered by Amazon Web Services (AWS). However, AWS is quite approachable once you break it down into manageable parts. In this article, I will introduce you to five AWS services that are crucial for beginners, complete with real-world examples explained in straightforward terms.</p>
<ol>
<li><strong>Amazon S3 (Simple Storage Service)</strong></li>
</ol>
<p><strong>Overview:</strong><br />Amazon S3 functions like Google Drive for developers, allowing you to store files such as images, videos, and documents in the cloud, accessible from anywhere.</p>
<p><strong>Use Case:</strong><br />If you're developing a personal portfolio website and need a place to host your images and project screenshots, you can upload them to S3 and link them directly. Additionally, you can host an entire static website (HTML/CSS/JS) on S3 at little to no cost.</p>
<p><strong>Benefits:</strong></p>
<ul>
<li><p>Cost-effective cloud storage</p>
</li>
<li><p>Simplified file sharing and backups</p>
</li>
<li><p>Capability to host static websites</p>
</li>
</ul>
<ol start="2">
<li><strong>Amazon EC2 (Elastic Compute Cloud)</strong></li>
</ol>
<p><strong>Overview:</strong><br />EC2 is akin to renting a virtual computer on the internet, where you can install software, run websites, or even train machine learning models.</p>
<p><strong>Use Case:</strong><br />If you're learning Linux or developing a web application like a resume builder, you can launch an EC2 instance (a virtual machine), install Linux/Ubuntu, set up Apache or Nginx, and deploy your application.</p>
<p><strong>Benefits:</strong></p>
<ul>
<li><p>Complete control over your virtual server</p>
</li>
<li><p>Ideal for hosting applications or learning Linux</p>
</li>
<li><p>Easily scalable as your project grows</p>
</li>
</ul>
<ol start="3">
<li><strong>AWS Lambda</strong></li>
</ol>
<p><strong>Overview:</strong><br />AWS Lambda allows you to run your code without managing servers. Simply write your function, and AWS handles the rest.</p>
<p><strong>Use Case:</strong><br />Suppose you want to automatically send a thank-you email whenever someone submits a form on your site. With Lambda, you can write a small Python or Node.js script to accomplish this, running only when the form is submitted—eliminating the need for a server to run continuously.</p>
<p><strong>Benefits:</strong></p>
<ul>
<li><p>No server management required</p>
</li>
<li><p>Pay only when your code executes</p>
</li>
<li><p>Excellent for automation and backend logic</p>
</li>
</ul>
<ol start="4">
<li><strong>Amazon RDS (Relational Database Service)</strong></li>
</ol>
<p><strong>Overview:</strong><br />RDS simplifies the setup and management of databases like MySQL, PostgreSQL, or SQL Server in the cloud.</p>
<p><strong>Use Case:</strong><br />If you're creating a to-do list app and need a database to store user tasks, you can launch an RDS instance, connect it to your app, and let AWS manage updates, backups, and scaling.</p>
<p><strong>Benefits:</strong></p>
<ul>
<li><p>Simplified database setup</p>
</li>
<li><p>Reliable and secure</p>
</li>
<li><p>Automatic handling of backups and maintenance</p>
</li>
</ul>
<ol start="5">
<li><strong>AWS IAM (Identity and Access Management)</strong></li>
</ol>
<p><strong>Overview:</strong><br />IAM enables you to manage who can access your AWS resources and what actions they can perform, similar to setting up roles and permissions for your team or applications.</p>
<p><strong>Use Case:</strong><br />In a group project, if you want a colleague to assist in deploying a site, you can create an IAM user with limited access—perhaps only to EC2—ensuring they cannot accidentally delete your S3 files or database.</p>
<p><strong>Benefits:</strong></p>
<ul>
<li><p>Robust security control</p>
</li>
<li><p>Best practice for team or multi-service environments</p>
</li>
<li><p>Prevents accidental or unauthorized access</p>
</li>
</ul>
<p><strong>Conclusion</strong></p>
<p>Starting with AWS doesn't have to be overwhelming. These five services—S3, EC2, Lambda, RDS, and IAM—are foundational to many cloud applications today. Mastering these will give you a significant advantage!</p>
<p><strong>Pro Tip:</strong> Begin with AWS's free-tier eligible services and try building a small project using a few of these services—such as a blog site hosted on S3 with form submissions powered by Lambda.</p>
<p>Feel free to reach out if you'd like this content transformed into a Canva post or a carousel for LinkedIn/Instagram!</p>
]]></content:encoded></item><item><title><![CDATA[How can someone start with aws cloud ??]]></title><description><![CDATA[🌥️ What is Cloud Computing? (In Layman's Terms)
Imagine you own a small shop, and you want to start selling products online. You need:

A website

A place to store your data (like product info, photos, prices)

Servers to handle people visiting your...]]></description><link>https://blog.cloudkinshuk.in/how-can-someone-start-with-aws-cloud</link><guid isPermaLink="true">https://blog.cloudkinshuk.in/how-can-someone-start-with-aws-cloud</guid><category><![CDATA[Cloud]]></category><category><![CDATA[Devops]]></category><category><![CDATA[AWS]]></category><category><![CDATA[Developer]]></category><dc:creator><![CDATA[Deactivated User]]></dc:creator><pubDate>Sun, 13 Apr 2025 20:00:12 GMT</pubDate><content:encoded><![CDATA[<hr />
<h2 id="heading-what-is-cloud-computing-in-laymans-terms">🌥️ What is Cloud Computing? (In Layman's Terms)</h2>
<p>Imagine you own a small shop, and you want to start selling products online. You need:</p>
<ul>
<li><p>A website</p>
</li>
<li><p>A place to store your data (like product info, photos, prices)</p>
</li>
<li><p>Servers to handle people visiting your website</p>
</li>
</ul>
<p>Now, buying your own servers and hiring experts to manage them is <strong>expensive and complicated</strong>.</p>
<p><strong>Cloud computing is like renting all of this from a big company instead of buying it yourself.</strong></p>
<p>Just like you rent an apartment instead of building a house, you <strong>rent computing power, storage, databases, and more</strong> from companies like <strong>Amazon (AWS)</strong>, <strong>Microsoft (Azure)</strong>, or <strong>Google (GCP)</strong>.</p>
<hr />
<h2 id="heading-why-is-cloud-so-important-today">🚀 Why is Cloud So Important Today?</h2>
<ol>
<li><p><strong>No Need to Buy Hardware</strong></p>
<ul>
<li><p>You don’t have to buy or maintain expensive servers.</p>
</li>
<li><p>You just pay for what you use, like an electricity bill.</p>
</li>
</ul>
</li>
<li><p><strong>Highly Scalable</strong></p>
<ul>
<li><p>If you suddenly get 1 million users, the cloud can handle it.</p>
</li>
<li><p>You can scale up or down instantly.</p>
</li>
</ul>
</li>
<li><p><strong>Global Reach</strong></p>
<ul>
<li>Your app or website can be accessible worldwide within minutes.</li>
</ul>
</li>
<li><p><strong>Safe and Reliable</strong></p>
<ul>
<li><p>Top security, backups, and recovery are handled by experts.</p>
</li>
<li><p>Less chance of data loss.</p>
</li>
</ul>
</li>
<li><p><strong>Saves Time and Money</strong></p>
<ul>
<li><p>Start projects faster and cheaper.</p>
</li>
<li><p>Perfect for startups, students, and large companies alike.</p>
</li>
</ul>
</li>
</ol>
<hr />
<h2 id="heading-why-start-with-aws-amazon-web-services">☁️ Why Start with AWS (Amazon Web Services)?</h2>
<ol>
<li><p><strong>AWS is the Most Popular Cloud Platform</strong></p>
<ul>
<li><p>It has the <strong>largest market share</strong> globally.</p>
</li>
<li><p>Used by Netflix, LinkedIn, NASA, and even the Indian Government.</p>
</li>
</ul>
</li>
<li><p><strong>Tons of Learning Resources</strong></p>
<ul>
<li><p>AWS provides <strong>free courses</strong>, <strong>documentation</strong>, and <strong>hands-on labs</strong>.</p>
</li>
<li><p>There's even a <strong>Free Tier</strong> to practice without getting charged.</p>
</li>
</ul>
</li>
<li><p><strong>Jobs and Internships</strong></p>
<ul>
<li>Knowing AWS increases your chances of getting into internships, especially in cloud, DevOps, or backend roles.</li>
</ul>
</li>
<li><p><strong>Certifications</strong></p>
<ul>
<li>AWS certifications like <strong>Cloud Practitioner</strong> or <strong>Solutions Architect</strong> are globally recognized and can boost your resume.</li>
</ul>
</li>
</ol>
<hr />
<h2 id="heading-how-can-someone-start-with-aws">🧭 How Can Someone Start with AWS?</h2>
<h3 id="heading-1-create-a-free-aws-account">1. <strong>Create a Free AWS Account</strong></h3>
<ul>
<li><p>Go to <a target="_blank" href="https://aws.amazon.com/">aws.amazon.com</a></p>
</li>
<li><p>Sign up with a debit/credit card (₹2 is deducted temporarily for verification)</p>
</li>
<li><p>You’ll get <strong>12 months of free services</strong> (EC2, S3, Lambda, etc.)</p>
</li>
</ul>
<h3 id="heading-2-learn-the-basics">2. <strong>Learn the Basics</strong></h3>
<ul>
<li><p>Start with:</p>
<ul>
<li><p>What is Cloud Computing?</p>
</li>
<li><p>What is AWS?</p>
</li>
<li><p>What are services like EC2 (virtual machine), S3 (storage), RDS (database), and Lambda (serverless)?</p>
</li>
</ul>
</li>
</ul>
<h3 id="heading-3-free-learning-resources">3. <strong>Free Learning Resources</strong></h3>
<ul>
<li><p><strong>AWS Skill Builder</strong>: <a target="_blank" href="https://skillsbuilder.aws/">skillsbuilder.aws</a></p>
</li>
<li><p><strong>AWS Educate</strong>: Great for students (you get badges too!)</p>
</li>
<li><p><strong>YouTube channels</strong> like <em>freeCodeCamp</em>, <em>AWS Tutorials</em>, <em>TechWorld with Nana</em> (for Kubernetes too)</p>
</li>
<li><p><strong>LinkedIn Learning</strong>, <strong>Cloud Academy</strong>, <strong>A Cloud Guru</strong></p>
</li>
</ul>
<h3 id="heading-4-build-small-projects">4. <strong>Build Small Projects</strong></h3>
<ul>
<li><p>Host a static website on S3.</p>
</li>
<li><p>Launch a virtual machine (EC2).</p>
</li>
<li><p>Create a simple serverless function with Lambda.</p>
</li>
</ul>
<h3 id="heading-5-understand-billing">5. <strong>Understand Billing</strong></h3>
<ul>
<li><p>Use the <strong>AWS Billing Dashboard</strong> to monitor charges.</p>
</li>
<li><p>Set up <strong>Billing Alerts</strong> to stay safe.</p>
</li>
</ul>
<h3 id="heading-6-join-communities">6. <strong>Join Communities</strong></h3>
<ul>
<li><p>Discord groups, Reddit (<code>r/aws</code>), LinkedIn, or GitHub projects.</p>
</li>
<li><p>Follow AWS Heroes and Developers on Twitter/LinkedIn.</p>
</li>
</ul>
<hr />
<h2 id="heading-summary-why-cloud-amp-why-aws">🎯 Summary: Why Cloud &amp; Why AWS?</h2>
<div class="hn-table">
<table>
<thead>
<tr>
<td>🔍 Reason</td><td>🌥️ Cloud</td><td>☁️ AWS</td></tr>
</thead>
<tbody>
<tr>
<td>✅ Easy Start</td><td>No hardware needed</td><td>Free Tier, Student friendly</td></tr>
<tr>
<td>📈 Career Scope</td><td>In-demand skill</td><td>Certifications, Jobs</td></tr>
<tr>
<td>🌎 Real-World Use</td><td>Used by all industries</td><td>Used by top tech giants</td></tr>
<tr>
<td>🔐 Secure</td><td>Safe by design</td><td>Top security and compliance</td></tr>
</tbody>
</table>
</div><hr />
<h2 id="heading-real-life-analogy">📌 Real-Life Analogy</h2>
<p>Think of the cloud like <strong>Netflix for computing</strong>:</p>
<ul>
<li><p>You don’t buy CDs anymore, right?</p>
</li>
<li><p>You just stream what you want when you need it.</p>
</li>
</ul>
<p>In the same way, companies now <strong>"stream" computing power</strong> from cloud providers instead of buying bulky machines. This makes everything faster, cheaper, and smarter.</p>
]]></content:encoded></item></channel></rss>