<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: blessingtutka</title>
    <description>The latest articles on DEV Community by blessingtutka (@blessingtutka).</description>
    <link>https://dev.to/blessingtutka</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1118049%2F43f44570-393b-4a28-8363-29614a1f36bd.png</url>
      <title>DEV Community: blessingtutka</title>
      <link>https://dev.to/blessingtutka</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/blessingtutka"/>
    <language>en</language>
    <item>
      <title>Metatron: Building a Living, AI-Powered Chemistry Lab with Gemini</title>
      <dc:creator>blessingtutka</dc:creator>
      <pubDate>Mon, 09 Feb 2026 14:29:41 +0000</pubDate>
      <link>https://dev.to/blessingtutka/metatron-building-a-living-ai-powered-chemistry-lab-with-gemini-2l4p</link>
      <guid>https://dev.to/blessingtutka/metatron-building-a-living-ai-powered-chemistry-lab-with-gemini-2l4p</guid>
      <description>&lt;p&gt;Chemistry is often taught through static diagrams and abstract equations. That works—up to a point. But once molecules start reacting, shifting states, or releasing energy, those flat representations fall short.&lt;/p&gt;

&lt;p&gt;I wanted to build &lt;strong&gt;Metatron&lt;/strong&gt; to change that.&lt;/p&gt;

&lt;p&gt;Metatron is a &lt;strong&gt;“living” chemical intelligence platform&lt;/strong&gt; that bridges the gap between theoretical representations like SMILES strings and tangible, visual lab experiences. The idea was inspired by the concept of an &lt;em&gt;“Archangel of Data”&lt;/em&gt;—an AI entity capable of overseeing complex research and making advanced chemistry accessible through a natural, agentic interface.&lt;/p&gt;




&lt;h2&gt;
  
  
  What Metatron Does
&lt;/h2&gt;

&lt;p&gt;Metatron is an &lt;strong&gt;AI-powered chemistry lab and research assistant&lt;/strong&gt; designed for both learning and experimentation.&lt;/p&gt;

&lt;h3&gt;
  
  
  🧪 Virtual Lab
&lt;/h3&gt;

&lt;p&gt;Users can mix chemicals and instantly observe:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Balanced chemical equations
&lt;/li&gt;
&lt;li&gt;Color changes
&lt;/li&gt;
&lt;li&gt;Phase transitions
&lt;/li&gt;
&lt;li&gt;Reactions like precipitates or explosions
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;All rendered visually in real time.&lt;/p&gt;

&lt;h3&gt;
  
  
  🤖 Agentic Research
&lt;/h3&gt;

&lt;p&gt;The &lt;strong&gt;Chemistry Research Agent&lt;/strong&gt; takes a molecule and autonomously:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Plans a research workflow
&lt;/li&gt;
&lt;li&gt;Executes the steps
&lt;/li&gt;
&lt;li&gt;Verifies results
&lt;/li&gt;
&lt;li&gt;Assesses environmental impact
&lt;/li&gt;
&lt;li&gt;Generates a structured report
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;It’s not just answering questions—it’s running a full research pipeline.&lt;/p&gt;

&lt;h3&gt;
  
  
  🎙️ Voice-Enabled Assistance
&lt;/h3&gt;

&lt;p&gt;Metatron supports hands-free interaction. Users can speak naturally, and the system translates voice commands into precise application actions using AI-powered intent parsing.&lt;/p&gt;

&lt;h3&gt;
  
  
  🎓 Interactive Learning
&lt;/h3&gt;

&lt;p&gt;The platform also includes:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A &lt;strong&gt;“Guess the Tool”&lt;/strong&gt; game
&lt;/li&gt;
&lt;li&gt;An interactive &lt;strong&gt;Periodic Table&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;An &lt;strong&gt;AI Tutor&lt;/strong&gt; that provides molecule-specific explanations and insights
&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  How I Built It
&lt;/h2&gt;

&lt;p&gt;Metatron is built with a modern &lt;strong&gt;TypeScript stack&lt;/strong&gt; using &lt;strong&gt;Vite + React&lt;/strong&gt;, with &lt;strong&gt;Gemini 3 Flash&lt;/strong&gt; acting as the core reasoning engine.&lt;/p&gt;

&lt;h3&gt;
  
  
  Core Logic &amp;amp; Visualization
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Zod&lt;/strong&gt; for schema validation, converted into JSON Schemas for Gemini’s structured output mode
&lt;/li&gt;
&lt;li&gt;Molecular data from &lt;strong&gt;PubChem&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;RDKit&lt;/strong&gt; for 2D molecular rendering
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;NGL&lt;/strong&gt; for interactive 3D molecular visualization
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Three.js&lt;/strong&gt; for the virtual lab environment and reaction effects
&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Agent Architecture
&lt;/h3&gt;

&lt;p&gt;The autonomous research agent uses &lt;strong&gt;Gemini’s function calling&lt;/strong&gt; to manage a multi-phase workflow:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Planning → Execution → Verification → Emissions Assessment → Reporting&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;This allows the AI to reason across steps, maintain state, and produce structured scientific output.&lt;/p&gt;

&lt;h3&gt;
  
  
  Voice NLP
&lt;/h3&gt;

&lt;p&gt;The &lt;code&gt;VoiceCommandManager&lt;/code&gt; leverages Gemini to interpret spoken commands and map them directly to application functions, enabling smooth voice-driven interaction.&lt;/p&gt;




&lt;h2&gt;
  
  
  What Gemini Enabled
&lt;/h2&gt;

&lt;p&gt;Gemini isn’t just used for text generation—it’s the &lt;strong&gt;core orchestration layer&lt;/strong&gt; of the app.&lt;/p&gt;

&lt;p&gt;Key capabilities include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Real-time chemical analysis from SMILES notation
&lt;/li&gt;
&lt;li&gt;Reaction outcome prediction in the virtual lab
&lt;/li&gt;
&lt;li&gt;Dynamic educational content generation
&lt;/li&gt;
&lt;li&gt;Voice-controlled navigation and research
&lt;/li&gt;
&lt;li&gt;Structured JSON outputs for reliable simulations
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Gemini features used&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Structured JSON Output
&lt;/li&gt;
&lt;li&gt;Function Calling
&lt;/li&gt;
&lt;li&gt;System Instructions
&lt;/li&gt;
&lt;li&gt;Thinking Mode (&lt;code&gt;includeThoughts&lt;/code&gt;)
&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Challenges Along the Way
&lt;/h2&gt;

&lt;p&gt;Building Metatron wasn’t easy.&lt;/p&gt;

&lt;p&gt;As a &lt;strong&gt;master’s student&lt;/strong&gt;, I had to balance exams and multiple academic projects, which meant limited development time and working completely solo.&lt;/p&gt;

&lt;p&gt;I also faced a steep learning curve with &lt;strong&gt;3D rendering&lt;/strong&gt;, as this was my first time using &lt;strong&gt;NGL&lt;/strong&gt; and &lt;strong&gt;Three.js&lt;/strong&gt;. While I initially planned to ship a full VR lab experience, time constraints made that impossible for the first version.&lt;/p&gt;

&lt;p&gt;Voice control introduced another challenge: the &lt;strong&gt;SpeechRecognition Web API&lt;/strong&gt; behaves inconsistently across browsers, making testing and debugging difficult.&lt;/p&gt;

&lt;p&gt;Despite all this, I managed to deliver a functional, visually rich, and AI-powered chemistry platform that lays a solid foundation for future expansion.&lt;/p&gt;




&lt;h2&gt;
  
  
  What I’m Proud Of
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;A fully autonomous chemistry research agent
&lt;/li&gt;
&lt;li&gt;Reliable structured AI outputs using Gemini + Zod
&lt;/li&gt;
&lt;li&gt;Real-time reaction simulation and visualization
&lt;/li&gt;
&lt;li&gt;Seamless 2D and 3D molecular rendering
&lt;/li&gt;
&lt;li&gt;Natural voice control powered by Gemini function calling
&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  What I Learned
&lt;/h2&gt;

&lt;p&gt;This project pushed me to deeply understand how AI can be integrated into complex systems.&lt;/p&gt;

&lt;p&gt;I learned how to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Enforce structure in AI outputs using Zod and JSON Schemas
&lt;/li&gt;
&lt;li&gt;Build multi-phase autonomous agents with Gemini
&lt;/li&gt;
&lt;li&gt;Design voice-controlled interfaces using function calling
&lt;/li&gt;
&lt;li&gt;Work with 3D rendering tools like Three.js and NGL
&lt;/li&gt;
&lt;li&gt;Balance solo development with academic responsibilities
&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  What’s Next for Metatron
&lt;/h2&gt;

&lt;p&gt;Metatron is just getting started.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Multimodal Safety Audits&lt;/strong&gt;: Users will be able to upload photos of real-world lab setups and receive instant AI-powered safety feedback using Gemini’s multimodal capabilities.
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Self-Driving Lab&lt;/strong&gt;: Integration with IoT devices and VR lab equipment to transform Metatron into a real physical research partner.
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Augmented Reality (AR)&lt;/strong&gt;: Overlay molecular visualizations, step-by-step experiment guidance, and real-time safety warnings directly onto physical lab environments.
&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;Thanks for reading 🧠🧪&lt;br&gt;&lt;br&gt;
If you’re curious, feedback and ideas are always welcome.&lt;/p&gt;

</description>
      <category>stem</category>
      <category>gemini</category>
      <category>chemistry</category>
      <category>react</category>
    </item>
    <item>
      <title>Building Gitcom: How Kiro's AI Pair-Programmer Helped Me Ship My First Kiro/VS Code Extension</title>
      <dc:creator>blessingtutka</dc:creator>
      <pubDate>Mon, 15 Sep 2025 10:06:24 +0000</pubDate>
      <link>https://dev.to/blessingtutka/building-gitcom-how-kiros-ai-pair-programmer-helped-me-ship-my-first-kirovs-code-extension-4l9d</link>
      <guid>https://dev.to/blessingtutka/building-gitcom-how-kiros-ai-pair-programmer-helped-me-ship-my-first-kirovs-code-extension-4l9d</guid>
      <description>&lt;p&gt;Let's be honest. We've all been there right:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Forgot to split changes into separate commits, ending up with a "mega-commit" that fixed a bug, added a feature, and updated the README all at once.&lt;/li&gt;
&lt;li&gt;Write vague, useless commit messages like "update files" or "fix stuff" that meant nothing to my future self or my team.&lt;/li&gt;
&lt;li&gt;Waste time staging and committing manually, breaking my flow state and turning version history into a chore rather than a helpful log.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;It's a bad habit I wanted to break, so I decided to build Gitcom—an AI-powered commit assistant extension for Kiro. The twist? I used Kiro itself as my pair programmer, design partner, and project manager throughout the entire journey.&lt;/p&gt;

&lt;p&gt;Here’s the story of how I built it and how Kiro’s unique features transformed my development process.&lt;/p&gt;

&lt;h2&gt;
  
  
  How Kiro Helped Me Build Gitcom
&lt;/h2&gt;

&lt;p&gt;One of the best parts of this project was learning to build with Kiro as my co-pilot. I didn’t just code—I collaborated with Kiro’s tools and agents at every stage:&lt;/p&gt;

&lt;p&gt;🔗 Automate Tasks with Agent Hooks&lt;/p&gt;

&lt;p&gt;I used agent hooks to log my conversations with Kiro. This provided me with a timeline of my decisions, the ideas we discussed, and the project's evolution.&lt;/p&gt;

&lt;p&gt;💬 Vibe with the Kiro Chat&lt;/p&gt;

&lt;p&gt;Kiro’s chat-first approach was like brainstorming with a teammate. I started by exploring the idea of a commit assistant, discussing:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Technologies I might need&lt;/li&gt;
&lt;li&gt;Dependencies like simple-git&lt;/li&gt;
&lt;li&gt;How to structure the extension&lt;/li&gt;
&lt;li&gt;This back-and-forth clarified my vision and guided the stack I chose.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;📜 Tame Complexity with Spec-Driven Development&lt;/p&gt;

&lt;p&gt;Here’s where Kiro really shone. It generated a spec for me called “intelligent-commit-generator”. The spec included:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A design overview&lt;/li&gt;
&lt;li&gt;Requirements&lt;/li&gt;
&lt;li&gt;Tasks broken into steps&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;From there, I followed the tasks one by one. By the end, Kiro had essentially generated the entire project. It even suggested performance augmentation tasks later to refine the codebase.&lt;/p&gt;

&lt;h2&gt;
  
  
  My Self-Imposed Challenge: The Great TypeScript Migration
&lt;/h2&gt;

&lt;p&gt;I wanted to test how well Kiro could adapt. So I challenged it to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Generate Gitcom in JavaScript&lt;/li&gt;
&lt;li&gt;Migrate Gitcom to TypeScript&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Kiro handled both, but in different ways—sometimes by mapping JS to TS files automatically. Instead of relying fully on that, I decided to manually transform the JS project into TypeScript. Adding proper interfaces and enforcing strict types, I was forced to understand the purpose of every variable and function. This deep dive meant I owned the code and could now fix my own "update files" problem with a truly robust tool.&lt;br&gt;
This challenge wasn’t just about the code—it helped me understand:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;How Kiro cleaned up files (sometimes leaving unused code)&lt;/li&gt;
&lt;li&gt;Where I needed to step in and refine things&lt;/li&gt;
&lt;li&gt;How to evaluate AI-generated code critically&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The cleanup part was tricky—Kiro did attempt it when asked, but not always in the way I expected. Doing it manually became a great learning experience and gave me deeper insight into the project’s structure.&lt;/p&gt;

&lt;h3&gt;
  
  
  What I Built: Gitcom
&lt;/h3&gt;

&lt;p&gt;At the end of this journey, I had a working Kiro extension: Gitcom – AI-Powered Commit Assistant.&lt;/p&gt;

&lt;p&gt;✨ Key Features&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Git diff analysis with simple-git&lt;/li&gt;
&lt;li&gt;Interactive UI for reviewing and editing commits&lt;/li&gt;
&lt;li&gt;Batch commit operations for grouped staging&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  What's next for gitcom
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Continue developing Gitcom beyond the hackathon&lt;/li&gt;
&lt;li&gt;Add an &lt;strong&gt;interactive CLI&lt;/strong&gt; that works seamlessly across platforms.&lt;/li&gt;
&lt;li&gt;Multiple commit styles: Conventional, Semantic, or Custom&lt;/li&gt;
&lt;li&gt;AI commit suggestions at 3 detail levels (concise/normal/verbose)&lt;/li&gt;
&lt;li&gt;GitHub/GitLab PR integration.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  What I Learned
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Kiro is more than a tool&lt;/strong&gt;: It’s like a co-developer that helps you explore, design, and build projects faster.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Specs keep you focused&lt;/strong&gt;: The spec-driven workflow broke down complexity into manageable tasks.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;AI isn’t perfect (yet)&lt;/strong&gt;: Code cleanups and updates left some unused code, which meant I had to step in. But this turned out to be a blessing—it pushed me to understand the generated project more deeply.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Challenging the AI helps you grow&lt;/strong&gt;: By asking Kiro to regenerate in different languages and comparing results, I learned more than I would have just by coding manually.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Final Thoughts
&lt;/h3&gt;

&lt;p&gt;Building Gitcom was an amazing journey, not only because of what I built but because of how I built it—with Kiro by my side.&lt;/p&gt;

&lt;p&gt;Kiro helped me brainstorm, plan, and even generate large parts of the project. But it also challenged me, especially when cleanup and refinement were needed. That’s where I grew the most as a developer.&lt;/p&gt;

&lt;h3&gt;
  
  
  Links
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://github.com/blessingtutka/gitcom.git" rel="noopener noreferrer"&gt;Github Repo&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Extension ID
&lt;/h3&gt;

&lt;p&gt;&lt;a class="mentioned-user" href="https://dev.to/id"&gt;@id&lt;/a&gt;:blessingtutka.smart-gitcom&lt;/p&gt;

</description>
      <category>kiro</category>
      <category>git</category>
      <category>hackathon</category>
      <category>kirodotdev</category>
    </item>
    <item>
      <title>Data Organisation: Ensuring data quality in backend systems</title>
      <dc:creator>blessingtutka</dc:creator>
      <pubDate>Tue, 02 Jul 2024 13:46:57 +0000</pubDate>
      <link>https://dev.to/blessingtutka/data-organisation-ensuring-data-quality-in-backend-systems-380b</link>
      <guid>https://dev.to/blessingtutka/data-organisation-ensuring-data-quality-in-backend-systems-380b</guid>
      <description>&lt;p&gt;When it comes to backend development, one of the biggest challenges we face is managing the issues that arise from disorganized data. In the world of backend development, data is king. It's the fuel that powers our applications, providing the information that drives the user experience. This data before it becomes the quality output our users can easily interact with must be carefully handled.&lt;br&gt;
One of the main roles of a backend developer is data processing which involves building and maintaining the mechanisms that process data and perform actions on websites. &lt;br&gt;
&lt;strong&gt;Challenge&lt;/strong&gt;: Ensuring data quality in backend systems. Disorganized data, characterized by inconsistencies, missing values, and incorrect formats, can significantly impact application performance and user experience.&lt;/p&gt;

&lt;h2&gt;
  
  
  What is back-end development?
&lt;/h2&gt;

&lt;p&gt;Back-end development means working on server-side software, which focuses on everything you can’t see on a website page. This work is done by backend developers who use code that helps browsers or any other application communicate with servers (computers or software programs/applications that provide services or resources to other computers or applications) or/and with databases(organized collection of data).&lt;/p&gt;

&lt;h2&gt;
  
  
  The Importance of Data Quality
&lt;/h2&gt;

&lt;p&gt;Poorly organized and inconsistent data can lead to a cascade of problems:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Bugs and Errors&lt;/strong&gt;: Inconsistent data can cause unexpected errors and crashes in applications, leading to a bad user experience.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Inaccurate Insights&lt;/strong&gt;: If data is unreliable, the insights we derive from it will also be unreliable.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Security Risks&lt;/strong&gt;: Unstructured data can create vulnerabilities, making systems more susceptible to security breaches.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Wasted Time and Resources&lt;/strong&gt;: Cleaning and organizing data takes time and resources. You solve problems that you wouldn't have to solve if your data were organized.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Poor Performance&lt;/strong&gt;: Disorganized data can degrade application performance, resulting in a negative user experience.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Investing in data organization provides numerous benefits:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Improved Application Performance&lt;/strong&gt;: Clean and well-organized data leads to faster and more efficient data processing, resulting in a smoother user experience.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Enhanced Data Accuracy&lt;/strong&gt;: Data validation and cleaning ensure data accuracy, leading to more reliable insights.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Increased Security&lt;/strong&gt;: Organized data makes it easier to implement security measures and protect sensitive information.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Reduced Development Costs&lt;/strong&gt;: By eliminating data-related issues, you can reduce development time and costs associated with debugging and fixing errors.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Ensuring data quality with well-organized data?
&lt;/h2&gt;

&lt;p&gt;Maintaining well-organized data is one of the keys to ensuring high data quality in backend systems. One of the most used tools to organize and store your data is a &lt;strong&gt;database management system&lt;/strong&gt; (&lt;strong&gt;DBMS&lt;/strong&gt;). The are many DBMSs out there each with its pros and cons to have more info you can read this &lt;a href=""&gt;DBMS comparison article&lt;/a&gt;. &lt;br&gt;
Here are some tips to well organizing your data  for ensuring data quality in backend system:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Data Normalization&lt;/strong&gt;: Use database normalization techniques to reduce data redundancy and improve data consistency. To have more info you can read this &lt;a href=""&gt;data normalization blog&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Efficient Data Storage&lt;/strong&gt;: Use appropriate database management systems (DBMS) according to your needs.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Data Validation&lt;/strong&gt;: Implement validation rules to enforce data integrity. This includes type checking, range checks, and format validation.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Data Cleaning&lt;/strong&gt;: Develop routines to identify and correct errors in data, such as missing values, duplicate entries, and inconsistent formats.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Data Transformation&lt;/strong&gt;: Convert data into a format that is suitable for your specific application and use case.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Data Governance&lt;/strong&gt;: Establish clear policies and procedures for data management, including access control, data retention, and data security.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  My first Experience with backend development
&lt;/h2&gt;

&lt;p&gt;For my final year project in computer science, I chose to learn Python and Django, a web development framework for backend applications. I started learning these new technologies six months before the deadline while also taking my degree courses. This self-learning helped me complete my project in three months. I faced many challenges, one of them was transforming facts and problems into computerized and organized data accessible through digital technologies, such as websites, as this was my first practical project. My final year project, an attendance management system, required research and practice. I overcame these difficulties by reading articles and books, following tutorials, and engaging in practical projects and exercises.&lt;/p&gt;

&lt;h2&gt;
  
  
  Expectations for HNG Internship
&lt;/h2&gt;

&lt;p&gt;As a participant in the HNG internship program, I'm looking forward to improving my backend development skills, collaborating with skilled developers, and contributing to exciting projects. This internship provides a valuable platform to assimilate industry best practices from seasoned professionals and apply them to practical projects. I'm looking forward to working with you and creating innovative solutions together.&lt;/p&gt;

&lt;p&gt;If you’re interested in learning more about the HNG Internship, check out these links:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href=""&gt;HNG Internship&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=""&gt;HNG Hire&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That's a wrap!; we've come to the end. There's so much more, but we've covered the essential key points about ensuring data quality. It's up to you to continue your research. If you have any questions or suggestions feel free to drop a comment below. We're all in this together to learn and grow!&lt;/p&gt;

&lt;p&gt;SURPASS YOUR LIMITS 😎😎&lt;/p&gt;

&lt;p&gt;THANKS, AND GOOD LUCK 😊💪&lt;/p&gt;

</description>
      <category>backend</category>
      <category>data</category>
      <category>database</category>
      <category>performance</category>
    </item>
    <item>
      <title>Introduction aux formulaires HTML</title>
      <dc:creator>blessingtutka</dc:creator>
      <pubDate>Thu, 13 Jul 2023 10:39:16 +0000</pubDate>
      <link>https://dev.to/kadea-academy/formulaires-html-creation-et-lutilisation-les-elements-dun-formulaire-input-text-area-buttons-checkbox-radio-bcm</link>
      <guid>https://dev.to/kadea-academy/formulaires-html-creation-et-lutilisation-les-elements-dun-formulaire-input-text-area-buttons-checkbox-radio-bcm</guid>
      <description>&lt;p&gt;Je vais parler de la balise HTML "&lt;strong&gt;form&lt;/strong&gt;" et de toutes les balises qui s'y rapportent. Mais avant tout, voyons ce qu'est un formulaire et à quoi il sert dans le monde numérique.&lt;/p&gt;

&lt;h2&gt;
  
  
  Qu'est-ce qu'un formulaire (form)
&lt;/h2&gt;

&lt;p&gt;Un formulaire est une fenêtre ou un document qui contient plusieurs champs (fields) ou espaces dans lesquelles nous pouvons saisir des données. Chaque champ contient une étiquette de champ (label) afin que tout utilisateur qui visualise le formulaire ait une idée de son contenu et du genre de contenu que chaque champ va contenir. Un formulaire sert principalement à collecter des données. Dans le monde numérique, nous pouvons trouver des formulaires à de nombreux endroits dans des documents (comme pdf), dans des applications desktop (de bureau), dans des applications mobiles, dans des pages Web, etc.&lt;br&gt;
Parlons maintenant de certains champs de formulaire :&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;nous avons un champ où nous pouvons ajouter du texte(input, text area).&lt;/li&gt;
&lt;li&gt;Nous avons des champs où vous pouvez faire un seul choix parmi une list des choix (radio).&lt;/li&gt;
&lt;li&gt;Nous avons des champs où vous pouvez faire plusieurs choix parmi une list des choix (checkbox).&lt;/li&gt;
&lt;li&gt;Nous avons des champs où vous pouvez télécharger des images et des fichiers (file input).&lt;/li&gt;
&lt;li&gt;Nous avons des champs où vous pouvez ajouter des liens&lt;/li&gt;
&lt;li&gt;nous avons un champ où nous pouvons envoyer des données d'autres champs ou réinitialiser toutes les données des champs (Buttons).
Passons maintenant à notre sujet qui est les formulaires dans les développements web plus spécifiquement les formulaires en HTML.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;
  
  
  Formulaires HTML (FORMS)
&lt;/h2&gt;

&lt;p&gt;Comme nous le savons, HTML est un langage de balisage (qui contient des balises) où chaque balise (qui sont des mots-clés entre crochets  la plupart du temps suivis de sa balise fermante) donne une structure et une fonctionnalité spécifiques sur le texte ou les éléments qu'elle contient.&lt;br&gt;
Parmi les nombreuses balises qu'une page html peut contenir, nous avons la balise de &lt;strong&gt;formulaire&lt;/strong&gt; représentée par la balise &lt;code&gt;&amp;lt;form&amp;gt;&amp;lt;/form&amp;gt;&lt;/code&gt; avec une balise ouvrante et fermante. Un formulaire HTML est utilisé pour collecter les entrées des utilisateurs. L'entrée de l'utilisateur est le plus souvent envoyée à un serveur pour traitement(&lt;a href="https://www.w3schools.com/html/html_forms.asp"&gt;W3School&lt;/a&gt;).&lt;br&gt;
Example d'une balise form:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;form&amp;gt;&lt;/span&gt;
/* ...
éléments de formulaire
... */
&lt;span class="nt"&gt;&amp;lt;/form&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;L'élément &lt;code&gt;&amp;lt;form&amp;gt;&lt;/code&gt; est un conteneur pour différents types d'éléments d'entrée, tels que : champs de texte (input, text area), cases à cocher (checkbox), boutons radio (radio), boutons d'envoi (input submit), etc. Chacun élément a également une balise représentative pour les introduire dans le formulaire &lt;code&gt;&amp;lt;form&amp;gt;&lt;/code&gt;.&lt;br&gt;
l'element &lt;code&gt;&amp;lt;form&amp;gt;&lt;/code&gt; a de nombreux attributs; les principaux sont:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;action&lt;/strong&gt;: C'est un attribut qui spécifie quelle action sera effectuée une fois les données du formulaire envoyées. Il fait parfois référence à une URL (le lien de redirection après l'envoi des données).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;method&lt;/strong&gt;: C'est un attribut qui spécifie la méthode de requête que nous utiliserons une fois les données des formulaires envoyées. Il determine si nous devons "publier (post)" des données ou "obtenir (get)" des données. Les valeurs les plus utilisées sont &lt;strong&gt;post&lt;/strong&gt; et &lt;strong&gt;get&lt;/strong&gt;. Pour en savoir plus visitez 👉 &lt;a href="https://developer.mozilla.org/fr/docs/Learn/Forms/Sending_and_retrieving_form_data"&gt;MDN DOC FORM&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;form&lt;/span&gt; &lt;span class="na"&gt;action=&lt;/span&gt;&lt;span class="s"&gt;"/url"&lt;/span&gt; &lt;span class="na"&gt;method=&lt;/span&gt;&lt;span class="s"&gt;"get"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
/* ...
éléments de formulaire
... */
&lt;span class="nt"&gt;&amp;lt;/form&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;Plongeons maintenant dans chaque élément tag de la balise &lt;code&gt;&amp;lt;form&amp;gt;&lt;/code&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  L'élément &lt;code&gt;&amp;lt;label&amp;gt;&lt;/code&gt;
&lt;/h2&gt;

&lt;p&gt;La balise &lt;code&gt;&amp;lt;label&amp;gt;&lt;/code&gt; définit une étiquette pour de nombreux éléments de formulaire. Il permet à tous les utilisateurs qui visualise le formulaire d'avoir une idée de son contenu et du genre de contenu que chaque champ va contenir. Il est souvent suivi de l'élément &lt;code&gt;&amp;lt;input&amp;gt;&lt;/code&gt;.L'attribut "&lt;strong&gt;for&lt;/strong&gt;" d'une étiquette est utilisé pour sélectionner une entrée spécifique. Et pour cela, nous devons donner un nom à cette entrée avec l'attribut "&lt;strong&gt;name&lt;/strong&gt;". Cela signifie que cette étiquette est pour cette entrée.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;label&lt;/span&gt; &lt;span class="na"&gt;for=&lt;/span&gt;&lt;span class="s"&gt;"example"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;Ceci est une étiquette pour l'entrée ci-dessous&lt;span class="nt"&gt;&amp;lt;/label&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;input&lt;/span&gt; &lt;span class="na"&gt;type=&lt;/span&gt;&lt;span class="s"&gt;"text"&lt;/span&gt; &lt;span class="na"&gt;name=&lt;/span&gt;&lt;span class="s"&gt;"exemple"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  L'élément &lt;code&gt;&amp;lt;input&amp;gt;&lt;/code&gt;
&lt;/h2&gt;

&lt;p&gt;&lt;code&gt;&amp;lt;input&amp;gt;&lt;/code&gt; est l'élément le plus utilisé. C'est une balise qui nous aide à créer un champ de saisie où nous pouvons saisir le texte mais sur une seule ligne. C'est une balise singleton qui signifie qu'elle n'a pas de balise fermante.&lt;br&gt;
L'élément &lt;code&gt;&amp;lt;input&amp;gt;&lt;/code&gt; possède de nombreux attributs. L'un d'eux et le plus utilisé est l'attribut "&lt;strong&gt;type&lt;/strong&gt;", nous pouvons déterminer quel type de texte nous pouvons mettre dans notre champ avec cet attribut. Il peut s'agir d'un simple texte, d'une heure, d'une date, d'un e-mail, d'un mot de passe, d'une case à cocher, etc.&lt;br&gt;
Il y a aussi l'attribut "name" qui donne un nom à l'élément  et qui sera utilisé par l'élément  pour étiqueter cet élément . Ex: &lt;code&gt;&amp;lt;input type="text" name="nom"&amp;gt;&lt;/code&gt;.&lt;br&gt;
Quelques exemples de valeurs d'attributs &lt;strong&gt;type&lt;/strong&gt; et le type de texte qu'ils nous permettent d'entrer:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;&amp;lt;input type="text"&amp;gt;&lt;/code&gt; :Affiche un champ de saisie de texte sur une seule ligne&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;&amp;lt;input type="date"&amp;gt;&lt;/code&gt; :Affiche un champ de saisie pour une date avec la possibilité de sélectionner la date à partir d'un sélecteur de date.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;&amp;lt;input type="radio"&amp;gt;&lt;/code&gt; :Affiche un bouton radio pour sélectionner l'un des nombreux choix. Pour un groupe d'entrée radio, nous devons mettre la même valeur de nom pour l'attribut "name" pour l'identifier en tant que groupe. Cela permet de ne faire qu'un seul choix parmi le groupe d'entrée radio !! attention !! qui porte le même nom (avec l'attribut "name").&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;&amp;lt;input type="checkbox"&amp;gt;&lt;/code&gt; :Affiche une case à cocher pour sélectionner zéro ou plusieurs choix.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;&amp;lt;input type="submit"&amp;gt;&lt;/code&gt; :Affiche un bouton de soumission pour soumettre le formulaire. Cela signifie que nous envoyons des données du formulaire quelque part ; cela peut être dans une base de données (généralement) ou pour envoyer un e-mail avec des données collectées, etc.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;&amp;lt;input type="button"&amp;gt;&lt;/code&gt; :Affiche un bouton cliquable.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;
  
  
  L'élément &lt;code&gt;&amp;lt;textarea&amp;gt;&lt;/code&gt;
&lt;/h2&gt;

&lt;p&gt;la balise &lt;code&gt;&amp;lt;textarea&amp;gt;&lt;/code&gt; nous aide à créer un champ de saisie où nous pouvons saisir le texte sur plusieurs ligne. Il a de nombreux attributs dont deux d'entre eux: "cols" pour déterminer le nombre de colonnes et "rows" pour déterminer le nombre de lignes que le champ aura.&lt;br&gt;
&lt;code&gt;&amp;lt;textarea rows="3" cols="100"&amp;gt;&amp;lt;/textarea&amp;gt;&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;Voici un exemple qui couvre tous les éléments que nous avons parcourus avec une image de démonstration:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="c"&gt;&amp;lt;!-- Il s'agit d'une balise de formulaire avec un attribut "action" 
qui contient une URL pour envoyer un e-mail et un attribut "method" 
pour publier (post) des données (envoyer des données quelque part dans notre cas un e-mail) --&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;form&lt;/span&gt; &lt;span class="na"&gt;action=&lt;/span&gt;&lt;span class="s"&gt;"/envoyer-un-e-mail"&lt;/span&gt; &lt;span class="na"&gt;method=&lt;/span&gt;&lt;span class="s"&gt;"post"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;

&lt;span class="nt"&gt;&amp;lt;label&lt;/span&gt; &lt;span class="na"&gt;for=&lt;/span&gt;&lt;span class="s"&gt;"nom"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;1:Nom&lt;span class="nt"&gt;&amp;lt;/label&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;input&lt;/span&gt; &lt;span class="na"&gt;type=&lt;/span&gt;&lt;span class="s"&gt;"text"&lt;/span&gt; &lt;span class="na"&gt;name=&lt;/span&gt;&lt;span class="s"&gt;"nom"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&amp;lt;br&amp;gt;&lt;/span&gt;

&lt;span class="nt"&gt;&amp;lt;label&lt;/span&gt; &lt;span class="na"&gt;for=&lt;/span&gt;&lt;span class="s"&gt;"pnom"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;2:Post Nom&lt;span class="nt"&gt;&amp;lt;/label&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;input&lt;/span&gt; &lt;span class="na"&gt;type=&lt;/span&gt;&lt;span class="s"&gt;"text"&lt;/span&gt; &lt;span class="na"&gt;name=&lt;/span&gt;&lt;span class="s"&gt;"pnom"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&amp;lt;br&amp;gt;&lt;/span&gt;

&lt;span class="nt"&gt;&amp;lt;label&lt;/span&gt; &lt;span class="na"&gt;for=&lt;/span&gt;&lt;span class="s"&gt;"date"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;3:Date de naissance&lt;span class="nt"&gt;&amp;lt;/label&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;input&lt;/span&gt; &lt;span class="na"&gt;type=&lt;/span&gt;&lt;span class="s"&gt;"date"&lt;/span&gt; &lt;span class="na"&gt;name=&lt;/span&gt;&lt;span class="s"&gt;"date"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&amp;lt;br&amp;gt;&lt;/span&gt;

&lt;span class="nt"&gt;&amp;lt;label&lt;/span&gt; &lt;span class="na"&gt;for=&lt;/span&gt;&lt;span class="s"&gt;"bio"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;4:Biographie&lt;span class="nt"&gt;&amp;lt;/label&amp;gt;&amp;lt;br&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;textarea&lt;/span&gt; &lt;span class="na"&gt;rows=&lt;/span&gt;&lt;span class="s"&gt;"3"&lt;/span&gt; &lt;span class="na"&gt;cols=&lt;/span&gt;&lt;span class="s"&gt;"100"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&amp;lt;/textarea&amp;gt;&amp;lt;br&amp;gt;&lt;/span&gt;

&lt;span class="c"&gt;&amp;lt;!-- Vous n'avez qu'un seul choix 
parmi un groupe de choix avec &amp;lt;input&amp;gt; de type "radio" avec le même nom"sex" --&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;label&lt;/span&gt; &lt;span class="na"&gt;for=&lt;/span&gt;&lt;span class="s"&gt;"sex"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;5:Sex&lt;span class="nt"&gt;&amp;lt;/label&amp;gt;&amp;lt;br&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;label&amp;gt;&lt;/span&gt;Male&lt;span class="nt"&gt;&amp;lt;/label&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;input&lt;/span&gt; &lt;span class="na"&gt;type=&lt;/span&gt;&lt;span class="s"&gt;"radio"&lt;/span&gt; &lt;span class="na"&gt;name=&lt;/span&gt;&lt;span class="s"&gt;"sex"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&amp;lt;br&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;label&amp;gt;&lt;/span&gt; Female&lt;span class="nt"&gt;&amp;lt;/label&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;input&lt;/span&gt; &lt;span class="na"&gt;type=&lt;/span&gt;&lt;span class="s"&gt;"radio"&lt;/span&gt; &lt;span class="na"&gt;name=&lt;/span&gt;&lt;span class="s"&gt;"sex"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&amp;lt;br&amp;gt;&lt;/span&gt;

&lt;span class="c"&gt;&amp;lt;!-- Vous pouvez en choisir aucun ou plusieurs
parmi un groupe de choix avec &amp;lt;input&amp;gt; de type "checkbox"  --&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;label&amp;gt;&lt;/span&gt;6:Passe-temps&lt;span class="nt"&gt;&amp;lt;/label&amp;gt;&amp;lt;br&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;label&lt;/span&gt; &lt;span class="na"&gt;for=&lt;/span&gt;&lt;span class="s"&gt;"sport"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;Sport&lt;span class="nt"&gt;&amp;lt;/label&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;input&lt;/span&gt; &lt;span class="na"&gt;type=&lt;/span&gt;&lt;span class="s"&gt;"checkbox"&lt;/span&gt; &lt;span class="na"&gt;name=&lt;/span&gt;&lt;span class="s"&gt;"sport"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&amp;lt;br&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;label&lt;/span&gt; &lt;span class="na"&gt;for=&lt;/span&gt;&lt;span class="s"&gt;"dessin"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;Dessin&lt;span class="nt"&gt;&amp;lt;/label&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;input&lt;/span&gt; &lt;span class="na"&gt;type=&lt;/span&gt;&lt;span class="s"&gt;"checkbox"&lt;/span&gt; &lt;span class="na"&gt;name=&lt;/span&gt;&lt;span class="s"&gt;"dessin"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&amp;lt;br&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;label&lt;/span&gt; &lt;span class="na"&gt;for=&lt;/span&gt;&lt;span class="s"&gt;"lecture"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;Lecture&lt;span class="nt"&gt;&amp;lt;/label&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;input&lt;/span&gt; &lt;span class="na"&gt;type=&lt;/span&gt;&lt;span class="s"&gt;"checkbox"&lt;/span&gt; &lt;span class="na"&gt;name=&lt;/span&gt;&lt;span class="s"&gt;"lecture"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&amp;lt;br&amp;gt;&lt;/span&gt;

&lt;span class="nt"&gt;&amp;lt;/form&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h1&gt;
  
  
  DEMO
&lt;/h1&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--8UyrCZfO--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/xb0vmiu160i46q0gw5a6.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--8UyrCZfO--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/xb0vmiu160i46q0gw5a6.jpg" alt="Image description" width="384" height="321"&gt;&lt;/a&gt;&lt;br&gt;
Voilà; nous sommes à la fin de ce simple cours de formulaire . Il y a tellement d'autres éléments mais nous avons parcourus l'essentiel. C'est à vous de poursuivre les recherches.&lt;br&gt;
Voici quelques sites web de documentations où vous pouvez continuer un avec vos recherche :&lt;/p&gt;

&lt;p&gt;-&lt;a href="https://www.w3schools.com/html/html_forms.asp"&gt;W3Shools&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;-&lt;a href="https://developer.mozilla.org/fr/docs/Learn/Forms/Your_first_form"&gt;MDN WEB DOCS&lt;/a&gt;.&lt;br&gt;
Il existe de nombreux autres sites de documentation, mais ceux-ci sont bons pour un débutant.&lt;/p&gt;

&lt;p&gt;SURPASS YOUR LIMITS 😎😎&lt;/p&gt;

&lt;p&gt;MERCI ET BON COURAGE 😊💪&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>html</category>
      <category>form</category>
      <category>input</category>
    </item>
  </channel>
</rss>
