<?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: Noor Ul Huda</title>
    <description>The latest articles on DEV Community by Noor Ul Huda (@noor_ulhuda_67fbcf3d4b66).</description>
    <link>https://dev.to/noor_ulhuda_67fbcf3d4b66</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.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4157740%2F1b23fbc8-26c9-45cc-ac48-e86e840f85fd.png</url>
      <title>DEV Community: Noor Ul Huda</title>
      <link>https://dev.to/noor_ulhuda_67fbcf3d4b66</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/noor_ulhuda_67fbcf3d4b66"/>
    <language>en</language>
    <item>
      <title>Orderly: An AI WhatsApp Order-Taker That Refuses to Guess</title>
      <dc:creator>Noor Ul Huda</dc:creator>
      <pubDate>Sun, 25 Oct 2026 12:26:54 +0000</pubDate>
      <link>https://dev.to/noor_ulhuda_67fbcf3d4b66/orderly-an-ai-whatsapp-order-taker-that-refuses-to-guess-1hmf</link>
      <guid>https://dev.to/noor_ulhuda_67fbcf3d4b66/orderly-an-ai-whatsapp-order-taker-that-refuses-to-guess-1hmf</guid>
      <description>&lt;p&gt;This is a submission for the Hacktoberfest Open-Source AI Challenge Week 2&lt;/p&gt;

&lt;p&gt;Orderly: An AI WhatsApp Order-Taker That Refuses to Guess&lt;br&gt;
Small shops often receive customer orders through WhatsApp like:&lt;/p&gt;

&lt;p&gt;“2 kg rice, 1 litre oil, and 1 kg sugar.”&lt;/p&gt;

&lt;p&gt;But real messages can be much messier — Telugu + English, corrections, unclear quantities, or voice notes.&lt;/p&gt;

&lt;p&gt;The difficult part isn't just understanding the message.&lt;/p&gt;

&lt;p&gt;The real problem is knowing whether the AI understood the complete order correctly.&lt;/p&gt;

&lt;p&gt;That's why I built Orderly.&lt;/p&gt;

&lt;p&gt;What I Built&lt;br&gt;
Orderly is an AI-assisted WhatsApp order-taker for small shops.&lt;/p&gt;

&lt;p&gt;It converts messy text and voice orders into structured orders and checks them before confirmation.&lt;/p&gt;

&lt;p&gt;The core principle is:&lt;/p&gt;

&lt;p&gt;AI extracts. Code verifies. Catalog decides. Human confirms when evidence is insufficient.&lt;/p&gt;

&lt;p&gt;If the order is clear and the evidence is sufficient, Orderly can mark it CONFIRMED.&lt;/p&gt;

&lt;p&gt;If something is unclear, missing, incomplete, or unsafe to verify, it returns NEEDS_REVIEW instead of guessing.&lt;/p&gt;

&lt;p&gt;Demo&lt;br&gt;
🎥 Watch the Orderly Demo Video&lt;/p&gt;

&lt;p&gt;The demo shows Orderly processing customer orders, validating extracted items, and handling cases where confirmation should not be automatic.&lt;/p&gt;

&lt;p&gt;Video Transcript&lt;br&gt;
Hi, this is Orderly, an AI-powered WhatsApp order-taker for small shops.&lt;/p&gt;

&lt;p&gt;It handles messy text and voice orders, including Telugu-English messages.&lt;/p&gt;

&lt;p&gt;The key principle is:&lt;/p&gt;

&lt;p&gt;AI extracts. Code verifies. Catalog decides. Human confirms when evidence is insufficient.&lt;/p&gt;

&lt;p&gt;Orderly checks the extracted items against the catalog and validates the customer's request.&lt;/p&gt;

&lt;p&gt;If the evidence is sufficient, the order can be CONFIRMED.&lt;/p&gt;

&lt;p&gt;If anything is unclear or incomplete, Orderly returns NEEDS_REVIEW instead of guessing.&lt;/p&gt;

&lt;p&gt;The goal is simple:&lt;/p&gt;

&lt;p&gt;Never falsely confirm an incomplete order.&lt;/p&gt;

&lt;p&gt;Try Orderly, explore the code, and share your feedback or ideas for improving safe AI-powered ordering for small shops.&lt;/p&gt;

&lt;p&gt;Code&lt;br&gt;
🔗 GitHub Repository&lt;/p&gt;

&lt;p&gt;Orderly is built as a small Python application with:&lt;/p&gt;

&lt;p&gt;Web interface&lt;br&gt;
CLI&lt;br&gt;
Deterministic validation&lt;br&gt;
Catalog checks&lt;br&gt;
Automated safety tests&lt;br&gt;
Fake extractors for deterministic adversarial testing&lt;br&gt;
How I Built It&lt;br&gt;
The pipeline is:&lt;/p&gt;

&lt;p&gt;Customer message → transcription → AI extraction → deterministic validation → catalog verification → confirmation/review&lt;/p&gt;

&lt;p&gt;For voice orders, speech is transcribed before extraction.&lt;/p&gt;

&lt;p&gt;The AI produces structured order information, but the application does not treat the AI response as proof that the extraction is complete or correct.&lt;/p&gt;

&lt;p&gt;The deterministic code checks the extracted information against the customer's message and the shop catalog.&lt;/p&gt;

&lt;p&gt;This separation is intentional.&lt;/p&gt;

&lt;p&gt;An LLM can misunderstand a message, hallucinate an item, or simply miss something.&lt;/p&gt;

&lt;p&gt;So the system is designed so that:&lt;/p&gt;

&lt;p&gt;AI proposes. Code verifies. Evidence determines whether confirmation is allowed.&lt;/p&gt;

&lt;p&gt;Safety First&lt;br&gt;
One of the biggest risks I focused on was customer-item omission.&lt;/p&gt;

&lt;p&gt;For example, if a customer says:&lt;/p&gt;

&lt;p&gt;“2 kg rice and 5 litres sunflower oil”&lt;/p&gt;

&lt;p&gt;but the AI extracts only:&lt;/p&gt;

&lt;p&gt;“2 kg rice”&lt;/p&gt;

&lt;p&gt;a normal pipeline might accidentally confirm the incomplete order.&lt;/p&gt;

&lt;p&gt;Orderly is designed to treat this as a NEEDS_REVIEW situation rather than assuming that the extracted list is complete.&lt;/p&gt;

&lt;p&gt;I specifically tested adversarial cases involving:&lt;/p&gt;

&lt;p&gt;Multiple products with one item omitted&lt;br&gt;
Three products with one or more items omitted&lt;br&gt;
Middle-item omission&lt;br&gt;
Final-item omission&lt;br&gt;
The same product with different sizes&lt;br&gt;
Corrections&lt;br&gt;
Mixed Telugu + English orders&lt;br&gt;
“And also” constructions&lt;br&gt;
Long messages containing unrelated text&lt;br&gt;
The goal is not to maximize the number of CONFIRMED orders.&lt;/p&gt;

&lt;p&gt;The goal is to avoid falsely confirming an incomplete order.&lt;/p&gt;

&lt;p&gt;Why Open Innovation Matters&lt;br&gt;
This project uses open-source AI because useful AI systems should not always require a closed cloud service.&lt;/p&gt;

&lt;p&gt;Open models and open-source tools make it possible for developers to experiment, inspect the pipeline, run models locally, and build systems for specific real-world problems.&lt;/p&gt;

&lt;p&gt;For a small-shop use case, local and open tooling can also provide more control over how customer data is processed.&lt;/p&gt;

&lt;p&gt;The important lesson for me is that open AI becomes more useful when it is combined with traditional deterministic software rather than being trusted blindly.&lt;/p&gt;

&lt;p&gt;My Agent Session&lt;br&gt;
I used AI-assisted development to inspect the project, improve the implementation, create adversarial safety tests, investigate edge cases, and verify the application.&lt;/p&gt;

&lt;p&gt;The development process focused heavily on finding cases where an AI extraction could appear correct while still being incomplete.&lt;/p&gt;

&lt;p&gt;That led to a stronger design principle:&lt;/p&gt;

&lt;p&gt;Never confuse a successful AI response with proof that the customer's complete request was understood.&lt;/p&gt;

&lt;p&gt;Testing&lt;br&gt;
The automated test suite contains 156 tests: 155 passed, 0 failed, and 1 expected failure (xfail).&lt;/p&gt;

&lt;p&gt;Orderly automated test suite showing 156 tests collected, with 155 tests passed, 0 failed, and 1 expected failure (xfail). The terminal output demonstrates the project's deterministic safety, validation, and adversarial testing results.&lt;/p&gt;

&lt;p&gt;The expected failure is intentional. It documents a known limitation involving an unknown product such as bellam when the extractor completely omits that product and the customer message does not provide enough recognizable evidence for the completeness checker to detect the omission.&lt;/p&gt;

&lt;p&gt;The limitation is documented rather than hidden.&lt;/p&gt;

&lt;p&gt;The tests are primarily deterministic safety and validation tests. They use controlled/fake extraction behavior to test whether the application fails safely when extraction is incomplete.&lt;/p&gt;

&lt;p&gt;Real-Gemma validation was not performed in the current environment, so these test results should not be interpreted as evidence of real-model extraction quality.&lt;/p&gt;

&lt;p&gt;Current Limitations&lt;br&gt;
Orderly is a prototype, not a production-ready autonomous ordering system.&lt;/p&gt;

&lt;p&gt;Completeness is difficult to guarantee perfectly for:&lt;/p&gt;

&lt;p&gt;Completely unknown products&lt;br&gt;
Ambiguous language&lt;br&gt;
Speech-recognition errors&lt;br&gt;
Unusual phrasing&lt;br&gt;
Product names appearing in unrelated text&lt;br&gt;
Corrections that are difficult to resolve&lt;br&gt;
Messages where the customer's intent cannot be reliably identified&lt;br&gt;
A particularly important limitation is that a completeness checker cannot mathematically prove that an LLM extracted every possible customer intent from arbitrary natural language.&lt;/p&gt;

&lt;p&gt;Therefore, the safest behavior is to request human confirmation whenever sufficient evidence is unavailable.&lt;/p&gt;

&lt;p&gt;Because of this documented limitation, Orderly should not be considered production-safe for unattended autonomous ordering.&lt;/p&gt;

&lt;p&gt;Final Thoughts&lt;br&gt;
Orderly started as an AI order-taking idea, but the more important lesson became verification.&lt;/p&gt;

&lt;p&gt;AI is good at understanding messy human language.&lt;/p&gt;

&lt;p&gt;Code is better at enforcing deterministic rules.&lt;/p&gt;

&lt;p&gt;Putting the two together creates a safer system than relying on either one alone.&lt;/p&gt;

&lt;p&gt;AI extracts. Code verifies. Catalog decides. Human confirms when evidence is insufficient.&lt;/p&gt;

&lt;p&gt;The most important design decision was not making the AI say CONFIRMED.&lt;/p&gt;

&lt;p&gt;It was making sure that when the system cannot establish that the customer's complete request is represented, it refuses to guess.&lt;/p&gt;

&lt;p&gt;Try Orderly, explore the code, and share your feedback or ideas for making AI-powered ordering safer for small shops.&lt;/p&gt;

&lt;p&gt;devchallenge #weekendchallenge #hf26challenge #opensource #ai #python&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>hf26challenge</category>
    </item>
    <item>
      <title>MediaMind _ hf26challenge</title>
      <dc:creator>Noor Ul Huda</dc:creator>
      <pubDate>Sat, 24 Oct 2026 22:44:37 +0000</pubDate>
      <link>https://dev.to/noor_ulhuda_67fbcf3d4b66/mediamind-hf26challenge-30dj</link>
      <guid>https://dev.to/noor_ulhuda_67fbcf3d4b66/mediamind-hf26challenge-30dj</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for the &lt;a href="https://dev.to/challenges/hacktoberfest-week3-2026-10-19"&gt;Hacktoberfest Open-Source AI Challenge Week 3: Slow and Steady&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

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

&lt;h2&gt;
  
  
  Demo
&lt;/h2&gt;

&lt;h2&gt;
  
  
  Code
&lt;/h2&gt;

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

&lt;h2&gt;
  
  
  Why Does Open Innovation Matter?
&lt;/h2&gt;

&lt;h2&gt;
  
  
  My Agent Session
&lt;/h2&gt;

&lt;h2&gt;
  
  
  The Lazy Payoff
&lt;/h2&gt;

&lt;h2&gt;
  
  
  Prize Categories
&lt;/h2&gt;

&lt;p&gt;&amp;lt;!-- Thanks for participating! --&amp;gt;&lt;em&gt;This is a submission for the Hacktoberfest Open-Source AI Challenge Week 3: Slow and Steady&lt;/em&gt;&lt;/p&gt;

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

&lt;p&gt;MediaMend is a local AI assistant for people who record far more media than they will ever review: blurry photos, black video frames, silent recordings, empty files, duplicates.&lt;/p&gt;

&lt;p&gt;The lazy way to clean that up is "delete everything below a threshold", and that is also the way to lose the one blurry, unrepeatable shot that mattered. MediaMend takes a safer lazy path:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Scan&lt;/strong&gt; a folder. Everything runs on your computer. Nothing is uploaded.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Review&lt;/strong&gt; a short queue of flagged files, each with a reason and a confidence level.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Move to Bin.&lt;/strong&gt; Approved files leave your folders but are not deleted.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Restore, Archive or Delete permanently&lt;/strong&gt; from the Bin. Permanent deletion needs a separate confirmation.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;You never inspect the whole folder. You only judge the cases the tool is unsure about.&lt;/p&gt;

&lt;h2&gt;
  
  
  Code
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://github.com/noorulhuda07/mediamend" rel="noopener noreferrer"&gt;https://github.com/noorulhuda07/mediamend&lt;/a&gt;&lt;/p&gt;

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

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Deterministic checks for measurable problems:&lt;/strong&gt; OpenCV Laplacian variance for blur, resolution checks, sampled video frames for blank-frame share, FFmpeg decoding for silence measured relative to each recording's own level, SHA-256 for exact duplicates.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;A local open-weight vision-language model for judgment:&lt;/strong&gt; [model name and tag, e.g. via Ollama] looks at flagged photos and answers one narrow question: could this imperfect image still be worth keeping? It returns structured JSON that I validate. If the model is unavailable or answers badly, the app says so instead of faking a result.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;A safety layer:&lt;/strong&gt; every move records the original path, size and SHA-256 in a manifest and verifies the checksum afterwards. Restore never overwrites an existing file, and nothing outside the scanned folder can be touched.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Stack:&lt;/strong&gt; Python, Streamlit, OpenCV, FFmpeg, [Ollama + model].&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Technical measurements and AI opinions are stored separately, so a model's guess never overwrites measured evidence.&lt;/p&gt;

&lt;h2&gt;
  
  
  Results
&lt;/h2&gt;

&lt;p&gt;I tested on [N] labelled files ([N] photos, [N] videos, [N] audio, [N] other). Ground truth was labelled before scanning.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Metric&lt;/th&gt;
&lt;th&gt;Result&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Blur precision / recall&lt;/td&gt;
&lt;td&gt;[x/y], [x/y]&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;False positives on must-keep files (rules only)&lt;/td&gt;
&lt;td&gt;[n]&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;False positives on must-keep files (rules + AI)&lt;/td&gt;
&lt;td&gt;[n]&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Bin/restore checksum success&lt;/td&gt;
&lt;td&gt;[x/y]&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Scan time ([N] files)&lt;/td&gt;
&lt;td&gt;[seconds]&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;AI time per photo&lt;/td&gt;
&lt;td&gt;[seconds] on [hardware]&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;Where it failed:&lt;/strong&gt; [real examples, e.g. a dark but valid photo flagged as blurry because low contrast lowers the sharpness score; the model's wrong call on ...]. The thresholds are starting points I tuned on this set, not universal values.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why Open Innovation Matters
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Privacy:&lt;/strong&gt; personal photos and voice recordings never leave the machine.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Control:&lt;/strong&gt; I can swap or compare models ([model A] vs [model B]) and inspect the exact prompt and outputs.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Cost:&lt;/strong&gt; no per-image API fees for scanning thousands of files.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Transparency and reproducibility:&lt;/strong&gt; the code, prompt, thresholds and test set are public, so anyone can rerun the benchmark and see the failures.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The honest trade-off: [hardware needs, model speed on your laptop, accuracy limits].&lt;/p&gt;

&lt;h2&gt;
  
  
  Limitations
&lt;/h2&gt;

&lt;p&gt;AI cannot judge creative value perfectly. Deleting from the Bin may not securely erase every copy on SSDs, backups or synced folders. [Anything else you observed.]&lt;/p&gt;

&lt;h1&gt;
  
  
  devchallenge #hf26challenge
&lt;/h1&gt;

</description>
      <category>devchallenge</category>
      <category>hf26challenge</category>
    </item>
    <item>
      <title>MediaMend</title>
      <dc:creator>Noor Ul Huda</dc:creator>
      <pubDate>Sat, 24 Oct 2026 22:39:02 +0000</pubDate>
      <link>https://dev.to/noor_ulhuda_67fbcf3d4b66/mediamend-1dfg</link>
      <guid>https://dev.to/noor_ulhuda_67fbcf3d4b66/mediamend-1dfg</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for the Hacktoberfest Open-Source AI Challenge Week 3: Slow and Steady&lt;/em&gt;&lt;/p&gt;

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

&lt;p&gt;MediaMend is a local AI assistant for people who record far more media than they will ever review: blurry photos, black video frames, silent recordings, empty files, duplicates.&lt;/p&gt;

&lt;p&gt;The lazy way to clean that up is "delete everything below a threshold", and that is also the way to lose the one blurry, unrepeatable shot that mattered. MediaMend takes a safer lazy path:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Scan&lt;/strong&gt; a folder. Everything runs on your computer. Nothing is uploaded.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Review&lt;/strong&gt; a short queue of flagged files, each with a reason and a confidence level.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Move to Bin.&lt;/strong&gt; Approved files leave your folders but are not deleted.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Restore, Archive or Delete permanently&lt;/strong&gt; from the Bin. Permanent deletion needs a separate confirmation.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;You never inspect the whole folder. You only judge the cases the tool is unsure about.&lt;/p&gt;

&lt;h2&gt;
  
  
  Code
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://github.com/noorulhuda07/mediamend" rel="noopener noreferrer"&gt;https://github.com/noorulhuda07/mediamend&lt;/a&gt;&lt;/p&gt;

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

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Deterministic checks for measurable problems:&lt;/strong&gt; OpenCV Laplacian variance for blur, resolution checks, sampled video frames for blank-frame share, FFmpeg decoding for silence measured relative to each recording's own level, SHA-256 for exact duplicates.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;A local open-weight vision-language model for judgment:&lt;/strong&gt; [model name and tag, e.g. via Ollama] looks at flagged photos and answers one narrow question: could this imperfect image still be worth keeping? It returns structured JSON that I validate. If the model is unavailable or answers badly, the app says so instead of faking a result.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;A safety layer:&lt;/strong&gt; every move records the original path, size and SHA-256 in a manifest and verifies the checksum afterwards. Restore never overwrites an existing file, and nothing outside the scanned folder can be touched.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Stack:&lt;/strong&gt; Python, Streamlit, OpenCV, FFmpeg, [Ollama + model].&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Technical measurements and AI opinions are stored separately, so a model's guess never overwrites measured evidence.&lt;/p&gt;

&lt;h2&gt;
  
  
  Results
&lt;/h2&gt;

&lt;p&gt;I tested on [N] labelled files ([N] photos, [N] videos, [N] audio, [N] other). Ground truth was labelled before scanning.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Metric&lt;/th&gt;
&lt;th&gt;Result&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Blur precision / recall&lt;/td&gt;
&lt;td&gt;[x/y], [x/y]&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;False positives on must-keep files (rules only)&lt;/td&gt;
&lt;td&gt;[n]&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;False positives on must-keep files (rules + AI)&lt;/td&gt;
&lt;td&gt;[n]&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Bin/restore checksum success&lt;/td&gt;
&lt;td&gt;[x/y]&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Scan time ([N] files)&lt;/td&gt;
&lt;td&gt;[seconds]&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;AI time per photo&lt;/td&gt;
&lt;td&gt;[seconds] on [hardware]&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;Where it failed:&lt;/strong&gt; [real examples, e.g. a dark but valid photo flagged as blurry because low contrast lowers the sharpness score; the model's wrong call on ...]. The thresholds are starting points I tuned on this set, not universal values.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why Open Innovation Matters
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Privacy:&lt;/strong&gt; personal photos and voice recordings never leave the machine.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Control:&lt;/strong&gt; I can swap or compare models ([model A] vs [model B]) and inspect the exact prompt and outputs.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Cost:&lt;/strong&gt; no per-image API fees for scanning thousands of files.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Transparency and reproducibility:&lt;/strong&gt; the code, prompt, thresholds and test set are public, so anyone can rerun the benchmark and see the failures.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The honest trade-off: [hardware needs, model speed on your laptop, accuracy limits].&lt;/p&gt;

&lt;h2&gt;
  
  
  Limitations
&lt;/h2&gt;

&lt;p&gt;AI cannot judge creative value perfectly. Deleting from the Bin may not securely erase every copy on SSDs, backups or synced folders. [Anything else you observed.]&lt;/p&gt;

&lt;h1&gt;
  
  
  devchallenge #hf26challengehis is a submission for the &lt;a href="https://dev.to/challenges/hacktoberfest-week3-2026-10-19"&gt;Hacktoberfest Open-Source AI Challenge Week 3: Slow and Steady&lt;/a&gt;*
&lt;/h1&gt;

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

&lt;h2&gt;
  
  
  Demo
&lt;/h2&gt;

&lt;h2&gt;
  
  
  Code
&lt;/h2&gt;

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

&lt;h2&gt;
  
  
  Why Does Open Innovation Matter?
&lt;/h2&gt;

&lt;h2&gt;
  
  
  My Agent Session
&lt;/h2&gt;

&lt;h2&gt;
  
  
  The Lazy Payoff
&lt;/h2&gt;

&lt;h2&gt;
  
  
  Prize Categories
&lt;/h2&gt;

&lt;p&gt;&amp;lt;!-- Thanks for participating! --&amp;gt;s a submission for the &lt;a href="https://dev.to/challenges/hacktoberfest-week3-2026-10-19"&gt;Hacktoberfest Open-Source AI Challenge Week 3: Slow and Steady&lt;/a&gt;*&lt;/p&gt;

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

&lt;h2&gt;
  
  
  Demo
&lt;/h2&gt;

&lt;h2&gt;
  
  
  Code
&lt;/h2&gt;

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

&lt;h2&gt;
  
  
  Why Does Open Innovation Matter?
&lt;/h2&gt;

&lt;h2&gt;
  
  
  My Agent Session
&lt;/h2&gt;

&lt;h2&gt;
  
  
  The Lazy Payoff
&lt;/h2&gt;

&lt;h2&gt;
  
  
  Prize Categories
&lt;/h2&gt;

</description>
      <category>devchallenge</category>
      <category>hf26challenge</category>
    </item>
    <item>
      <title>MediaMend</title>
      <dc:creator>Noor Ul Huda</dc:creator>
      <pubDate>Sat, 24 Oct 2026 22:33:03 +0000</pubDate>
      <link>https://dev.to/noor_ulhuda_67fbcf3d4b66/mediamend-57e4</link>
      <guid>https://dev.to/noor_ulhuda_67fbcf3d4b66/mediamend-57e4</guid>
      <description>&lt;p&gt;&lt;em&gt;T*This is a submission for the Hacktoberfest Open-Source AI Challenge Week 3: Slow and Steady&lt;/em&gt;&lt;/p&gt;

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

&lt;p&gt;MediaMend is a local AI assistant for people who record far more media than they will ever review: blurry photos, black video frames, silent recordings, empty files, duplicates.&lt;/p&gt;

&lt;p&gt;The lazy way to clean that up is "delete everything below a threshold", and that is also the way to lose the one blurry, unrepeatable shot that mattered. MediaMend takes a safer lazy path:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Scan&lt;/strong&gt; a folder. Everything runs on your computer. Nothing is uploaded.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Review&lt;/strong&gt; a short queue of flagged files, each with a reason and a confidence level.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Move to Bin.&lt;/strong&gt; Approved files leave your folders but are not deleted.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Restore, Archive or Delete permanently&lt;/strong&gt; from the Bin. Permanent deletion needs a separate confirmation.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;You never inspect the whole folder. You only judge the cases the tool is unsure about.&lt;/p&gt;

&lt;h2&gt;
  
  
  Code
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://github.com/noorulhuda07/mediamend" rel="noopener noreferrer"&gt;https://github.com/noorulhuda07/mediamend&lt;/a&gt;&lt;/p&gt;

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

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Deterministic checks for measurable problems:&lt;/strong&gt; OpenCV Laplacian variance for blur, resolution checks, sampled video frames for blank-frame share, FFmpeg decoding for silence measured relative to each recording's own level, SHA-256 for exact duplicates.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;A local open-weight vision-language model for judgment:&lt;/strong&gt; [model name and tag, e.g. via Ollama] looks at flagged photos and answers one narrow question: could this imperfect image still be worth keeping? It returns structured JSON that I validate. If the model is unavailable or answers badly, the app says so instead of faking a result.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;A safety layer:&lt;/strong&gt; every move records the original path, size and SHA-256 in a manifest and verifies the checksum afterwards. Restore never overwrites an existing file, and nothing outside the scanned folder can be touched.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Stack:&lt;/strong&gt; Python, Streamlit, OpenCV, FFmpeg, [Ollama + model].&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Technical measurements and AI opinions are stored separately, so a model's guess never overwrites measured evidence.&lt;/p&gt;

&lt;h2&gt;
  
  
  Results
&lt;/h2&gt;

&lt;p&gt;I tested on [N] labelled files ([N] photos, [N] videos, [N] audio, [N] other). Ground truth was labelled before scanning.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Metric&lt;/th&gt;
&lt;th&gt;Result&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Blur precision / recall&lt;/td&gt;
&lt;td&gt;[x/y], [x/y]&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;False positives on must-keep files (rules only)&lt;/td&gt;
&lt;td&gt;[n]&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;False positives on must-keep files (rules + AI)&lt;/td&gt;
&lt;td&gt;[n]&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Bin/restore checksum success&lt;/td&gt;
&lt;td&gt;[x/y]&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Scan time ([N] files)&lt;/td&gt;
&lt;td&gt;[seconds]&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;AI time per photo&lt;/td&gt;
&lt;td&gt;[seconds] on [hardware]&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;Where it failed:&lt;/strong&gt; [real examples, e.g. a dark but valid photo flagged as blurry because low contrast lowers the sharpness score; the model's wrong call on ...]. The thresholds are starting points I tuned on this set, not universal values.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why Open Innovation Matters
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Privacy:&lt;/strong&gt; personal photos and voice recordings never leave the machine.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Control:&lt;/strong&gt; I can swap or compare models ([model A] vs [model B]) and inspect the exact prompt and outputs.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Cost:&lt;/strong&gt; no per-image API fees for scanning thousands of files.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Transparency and reproducibility:&lt;/strong&gt; the code, prompt, thresholds and test set are public, so anyone can rerun the benchmark and see the failures.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The honest trade-off: [hardware needs, model speed on your laptop, accuracy limits].&lt;/p&gt;

&lt;h2&gt;
  
  
  Limitations
&lt;/h2&gt;

&lt;p&gt;AI cannot judge creative value perfectly. Deleting from the Bin may not securely erase every copy on SSDs, backups or synced folders. [Anything else you observed.]&lt;/p&gt;

&lt;h1&gt;
  
  
  devchallenge #hf26challengehis is a submission for the &lt;a href="https://dev.to/challenges/hacktoberfest-week3-2026-10-19"&gt;Hacktoberfest Open-Source AI Challenge Week 3: Slow and Steady&lt;/a&gt;*
&lt;/h1&gt;

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

&lt;h2&gt;
  
  
  Demo
&lt;/h2&gt;

&lt;h2&gt;
  
  
  Code
&lt;/h2&gt;

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

&lt;h2&gt;
  
  
  Why Does Open Innovation Matter?
&lt;/h2&gt;

&lt;h2&gt;
  
  
  My Agent Session
&lt;/h2&gt;

&lt;h2&gt;
  
  
  The Lazy Payoff
&lt;/h2&gt;

&lt;h2&gt;
  
  
  Prize Categories
&lt;/h2&gt;

</description>
      <category>devchallenge</category>
      <category>hf26challenge</category>
    </item>
    <item>
      <title>"TrailQuest: an open-weight AI plans your walk, then tells you to put the phone away"</title>
      <dc:creator>Noor Ul Huda</dc:creator>
      <pubDate>Sun, 11 Oct 2026 04:52:28 +0000</pubDate>
      <link>https://dev.to/noor_ulhuda_67fbcf3d4b66/trailquest-an-open-weight-ai-plans-your-walk-then-tells-you-to-put-the-phone-away-172f</link>
      <guid>https://dev.to/noor_ulhuda_67fbcf3d4b66/trailquest-an-open-weight-ai-plans-your-walk-then-tells-you-to-put-the-phone-away-172f</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for the &lt;a href="https://dev.to/challenges/hacktoberfest-week1-2026-10-05"&gt;Hacktoberfest Open-Source AI Challenge Week 1: Touch Grass&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

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

&lt;p&gt;Most fitness apps want your attention. TrailQuest wants the opposite.&lt;/p&gt;

&lt;p&gt;You tell it how you feel today: your energy, your mood, how many minutes you have, indoors or outdoors, and a goal like 8,000 steps. It builds you a short &lt;strong&gt;quest&lt;/strong&gt;: a warm-up, a brisk walk with faster intervals, a &lt;strong&gt;nature challenge&lt;/strong&gt; (like "spot something with three colors"), and a cooldown.&lt;/p&gt;

&lt;p&gt;Then you press &lt;strong&gt;Start&lt;/strong&gt;, and the screen turns into a plain timer that says &lt;em&gt;Phone away. Go enjoy it.&lt;/em&gt; You walk. When you come back, you log your steps and earn XP and a &lt;strong&gt;Touch Grass streak&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;The streak counts any finished quest, even an easy recovery walk. It rewards showing up, not pushing harder.&lt;/p&gt;

&lt;p&gt;It's for people who want to move more but burn out on apps that demand attention, and for tired days when a gentle 10-minute quest beats skipping.&lt;/p&gt;

&lt;h2&gt;
  
  
  Demo
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://github.com/noorulhuda07/trailquest/blob/main/docs/trailquest-launch.mp4" rel="noopener noreferrer"&gt;▶ Watch the 50-second demo video&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;In the demo, I create an account with an email code and set a 10-minute outdoor quest. I press Start and the phone-away timer runs. Then I log 3,200 steps and get 82 XP and a 1-day streak. I also open the dashboard, the daily journal, the trail map and the badges, and switch to dark mode with the Ocean theme and miles.&lt;/p&gt;

&lt;h2&gt;
  
  
  Code
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;GitHub repo:&lt;/strong&gt; &lt;a href="https://github.com/noorulhuda07/trailquest" rel="noopener noreferrer"&gt;github.com/noorulhuda07/trailquest&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;To run it: &lt;code&gt;docker compose up --build&lt;/code&gt;, open &lt;code&gt;http://localhost:8080&lt;/code&gt;, and click &lt;strong&gt;Try the demo&lt;/strong&gt;.&lt;/p&gt;

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

&lt;p&gt;&lt;strong&gt;Stack:&lt;/strong&gt; React and Vite for the frontend, FastAPI for the backend, &lt;strong&gt;Gemma through Ollama&lt;/strong&gt; for quest generation, SQLite for accounts, and Docker Compose to run it all.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;User → FastAPI → Gemma (via Ollama) → Validator → Quest
                         ↓ fails or unavailable
                  Rules-based fallback → Quest
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;My main rule is &lt;strong&gt;AI suggests, code validates.&lt;/strong&gt; Gemma never talks to the user directly. Its answer must pass these checks first:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Is it valid JSON with all the required fields?&lt;/li&gt;
&lt;li&gt;Does the intensity match the energy the user chose?&lt;/li&gt;
&lt;li&gt;Do the step durations add up to the time they have?&lt;/li&gt;
&lt;li&gt;Does any step contain unsafe wording?&lt;/li&gt;
&lt;li&gt;Is it an indoor quest? Then there are no nature challenges.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If a check fails, or Gemma isn't available, a small rules engine builds a safe quest instead. Every quest carries a badge that says which one wrote it: &lt;em&gt;Gemma (gemma3), self-hosted, code-validated&lt;/em&gt; or &lt;em&gt;Backup rules engine&lt;/em&gt;. The server sets the badge, not the model, so the model can't claim credit it didn't earn.&lt;/p&gt;

&lt;p&gt;I also kept free text out of the prompt. Energy, mood and target are fixed options, and the workout type comes from a fixed list, so a user can't smuggle instructions into the model.&lt;/p&gt;

&lt;p&gt;Around the AI, I built sign-up with email or phone codes, Google sign-in, a one-click demo mode, and light and dark modes with four color themes. I tested the app with 42 backend tests and 5 frontend tests. The backend tests cover forged login tokens, SQL injection strings, code guessing, rate limits, and malformed or unsafe model output. GitHub Actions runs the tests and security scans on every push.&lt;/p&gt;

&lt;h2&gt;
  
  
  What I Saw When I Ran It
&lt;/h2&gt;

&lt;p&gt;In my recorded demo, the quest came from the backup rules engine, not from Gemma, and the badge on screen says so. I'd rather show that than hide it. It's the point of the design: a missing or bad AI answer never reaches the user, and the app always gives a safe quest.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why Does Open Innovation Matter?
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Your mood stays yours.&lt;/strong&gt; A quest request contains your energy, mood and schedule. With an open-weight model running on your own machine, that data doesn't need to leave it.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;I can swap the model with one setting.&lt;/strong&gt; &lt;code&gt;GEMMA_MODEL=gemma3:1b&lt;/code&gt; for a laptop with little memory, or a bigger one if you have the hardware. Fine-tuning for coaching styles is possible later.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;No bill per quest.&lt;/strong&gt; Running it costs electricity, not API fees.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;I control the guardrails.&lt;/strong&gt; Because I run the model, I choose the output format and what happens when it misbehaves.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;The trade-offs:&lt;/strong&gt; the first run downloads about 3 GB, and a small model on a CPU is slower and less reliable than a large hosted one. That is exactly why the validator and fallback exist.&lt;/p&gt;

&lt;h2&gt;
  
  
  My Agent Session
&lt;/h2&gt;

&lt;p&gt;I built TrailQuest with help from an AI coding assistant, then ran and tested the result myself.&lt;/p&gt;

&lt;h2&gt;
  
  
  What's Next
&lt;/h2&gt;

&lt;p&gt;Weather and location tools so a rainy day gives an indoor quest, then friends, group quests and challenges. Real step tracking comes with a phone app.&lt;/p&gt;

&lt;p&gt;Built by noorulhuda07.&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>hf26challenge</category>
      <category>ai</category>
      <category>fullstack</category>
    </item>
    <item>
      <title>Orderly: An AI WhatsApp Order-Taker That Refuses to Guess</title>
      <dc:creator>Noor Ul Huda</dc:creator>
      <pubDate>Mon, 05 Oct 2026 07:07:23 +0000</pubDate>
      <link>https://dev.to/noor_ulhuda_67fbcf3d4b66/orderly-an-ai-whatsapp-order-taker-that-refuses-to-guess-588b</link>
      <guid>https://dev.to/noor_ulhuda_67fbcf3d4b66/orderly-an-ai-whatsapp-order-taker-that-refuses-to-guess-588b</guid>
      <description>&lt;p&gt;This is a submission for the Hacktoberfest Open-Source AI Challenge Week 2&lt;/p&gt;

&lt;h1&gt;
  
  
  Orderly: An AI WhatsApp Order-Taker That Refuses to Guess
&lt;/h1&gt;

&lt;p&gt;Small shops often receive customer orders through WhatsApp like:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“2 kg rice, 1 litre oil, and 1 kg sugar.”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;But real messages can be much messier — Telugu + English, corrections, unclear quantities, or voice notes.&lt;/p&gt;

&lt;p&gt;The difficult part isn't just understanding the message.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The real problem is knowing whether the AI understood the complete order correctly.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;That's why I built &lt;strong&gt;Orderly&lt;/strong&gt;.&lt;/p&gt;

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

&lt;p&gt;Orderly is an AI-assisted WhatsApp order-taker for small shops.&lt;/p&gt;

&lt;p&gt;It converts messy text and voice orders into structured orders and checks them before confirmation.&lt;/p&gt;

&lt;p&gt;The core principle is:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;AI extracts. Code verifies. Catalog decides. Human confirms when evidence is insufficient.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;If the order is clear and the evidence is sufficient, Orderly can mark it &lt;code&gt;CONFIRMED&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;If something is unclear, missing, incomplete, or unsafe to verify, it returns &lt;code&gt;NEEDS_REVIEW&lt;/code&gt; instead of guessing.&lt;/p&gt;

&lt;h2&gt;
  
  
  Demo
&lt;/h2&gt;

&lt;p&gt;🎥 &lt;a href="https://github.com/noorulhuda07/ORDERLY_DEVPOST_HACKTOBERFEST_CHALLENGE1/blob/main/ORDERLY_DEMO_VIDEO.mp4" rel="noopener noreferrer"&gt;Watch the Orderly Demo Video&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The demo shows Orderly processing customer orders, validating extracted items, and handling cases where confirmation should not be automatic.&lt;/p&gt;

&lt;h3&gt;
  
  
  Video Transcript
&lt;/h3&gt;

&lt;p&gt;Hi, this is Orderly, an AI-powered WhatsApp order-taker for small shops.&lt;/p&gt;

&lt;p&gt;It handles messy text and voice orders, including Telugu-English messages.&lt;/p&gt;

&lt;p&gt;The key principle is:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;AI extracts. Code verifies. Catalog decides. Human confirms when evidence is insufficient.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Orderly checks the extracted items against the catalog and validates the customer's request.&lt;/p&gt;

&lt;p&gt;If the evidence is sufficient, the order can be &lt;code&gt;CONFIRMED&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;If anything is unclear or incomplete, Orderly returns &lt;code&gt;NEEDS_REVIEW&lt;/code&gt; instead of guessing.&lt;/p&gt;

&lt;p&gt;The goal is simple:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Never falsely confirm an incomplete order.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Try Orderly, explore the code, and share your feedback or ideas for improving safe AI-powered ordering for small shops.&lt;/p&gt;

&lt;h2&gt;
  
  
  Code
&lt;/h2&gt;

&lt;p&gt;🔗 &lt;a href="https://github.com/noorulhuda07/ORDERLY_DEVPOST_HACKTOBERFEST_CHALLENGE1" rel="noopener noreferrer"&gt;GitHub Repository&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Orderly is built as a small Python application with:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Web interface&lt;/li&gt;
&lt;li&gt;CLI&lt;/li&gt;
&lt;li&gt;Deterministic validation&lt;/li&gt;
&lt;li&gt;Catalog checks&lt;/li&gt;
&lt;li&gt;Automated safety tests&lt;/li&gt;
&lt;li&gt;Fake extractors for deterministic adversarial testing&lt;/li&gt;
&lt;/ul&gt;

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

&lt;p&gt;The pipeline is:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Customer message → transcription → AI extraction → deterministic validation → catalog verification → confirmation/review&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;For voice orders, speech is transcribed before extraction.&lt;/p&gt;

&lt;p&gt;The AI produces structured order information, but the application does &lt;strong&gt;not&lt;/strong&gt; treat the AI response as proof that the extraction is complete or correct.&lt;/p&gt;

&lt;p&gt;The deterministic code checks the extracted information against the customer's message and the shop catalog.&lt;/p&gt;

&lt;p&gt;This separation is intentional.&lt;/p&gt;

&lt;p&gt;An LLM can misunderstand a message, hallucinate an item, or simply miss something.&lt;/p&gt;

&lt;p&gt;So the system is designed so that:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;AI proposes. Code verifies. Evidence determines whether confirmation is allowed.&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Safety First
&lt;/h2&gt;

&lt;p&gt;One of the biggest risks I focused on was &lt;strong&gt;customer-item omission&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;For example, if a customer says:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“2 kg rice and 5 litres sunflower oil”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;but the AI extracts only:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“2 kg rice”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;a normal pipeline might accidentally confirm the incomplete order.&lt;/p&gt;

&lt;p&gt;Orderly is designed to treat this as a &lt;code&gt;NEEDS_REVIEW&lt;/code&gt; situation rather than assuming that the extracted list is complete.&lt;/p&gt;

&lt;p&gt;I specifically tested adversarial cases involving:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Multiple products with one item omitted&lt;/li&gt;
&lt;li&gt;Three products with one or more items omitted&lt;/li&gt;
&lt;li&gt;Middle-item omission&lt;/li&gt;
&lt;li&gt;Final-item omission&lt;/li&gt;
&lt;li&gt;The same product with different sizes&lt;/li&gt;
&lt;li&gt;Corrections&lt;/li&gt;
&lt;li&gt;Mixed Telugu + English orders&lt;/li&gt;
&lt;li&gt;“And also” constructions&lt;/li&gt;
&lt;li&gt;Long messages containing unrelated text&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The goal is &lt;strong&gt;not&lt;/strong&gt; to maximize the number of &lt;code&gt;CONFIRMED&lt;/code&gt; orders.&lt;/p&gt;

&lt;p&gt;The goal is to avoid falsely confirming an incomplete order.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why Open Innovation Matters
&lt;/h2&gt;

&lt;p&gt;This project uses open-source AI because useful AI systems should not always require a closed cloud service.&lt;/p&gt;

&lt;p&gt;Open models and open-source tools make it possible for developers to experiment, inspect the pipeline, run models locally, and build systems for specific real-world problems.&lt;/p&gt;

&lt;p&gt;For a small-shop use case, local and open tooling can also provide more control over how customer data is processed.&lt;/p&gt;

&lt;p&gt;The important lesson for me is that open AI becomes more useful when it is combined with traditional deterministic software rather than being trusted blindly.&lt;/p&gt;

&lt;h2&gt;
  
  
  My Agent Session
&lt;/h2&gt;

&lt;p&gt;I used AI-assisted development to inspect the project, improve the implementation, create adversarial safety tests, investigate edge cases, and verify the application.&lt;/p&gt;

&lt;p&gt;The development process focused heavily on finding cases where an AI extraction could appear correct while still being incomplete.&lt;/p&gt;

&lt;p&gt;That led to a stronger design principle:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Never confuse a successful AI response with proof that the customer's complete request was understood.&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Testing
&lt;/h2&gt;

&lt;p&gt;The automated test suite contains &lt;strong&gt;156 tests: 155 passed, 0 failed, and 1 expected failure (xfail).&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Ftzr84oemjtno5mtxd40t.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Ftzr84oemjtno5mtxd40t.png" alt="Orderly automated test suite showing 156 tests collected, with 155 tests passed, 0 failed, and 1 expected failure (xfail). The terminal output demonstrates the project's deterministic safety, validation, and adversarial testing results." width="800" height="421"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The expected failure is intentional. It documents a known limitation involving an unknown product such as &lt;code&gt;bellam&lt;/code&gt; when the extractor completely omits that product and the customer message does not provide enough recognizable evidence for the completeness checker to detect the omission.&lt;/p&gt;

&lt;p&gt;The limitation is documented rather than hidden.&lt;/p&gt;

&lt;p&gt;The tests are primarily &lt;strong&gt;deterministic safety and validation tests&lt;/strong&gt;. They use controlled/fake extraction behavior to test whether the application fails safely when extraction is incomplete.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Real-Gemma validation was not performed in the current environment&lt;/strong&gt;, so these test results should not be interpreted as evidence of real-model extraction quality.&lt;/p&gt;

&lt;h2&gt;
  
  
  Current Limitations
&lt;/h2&gt;

&lt;p&gt;Orderly is a prototype, not a production-ready autonomous ordering system.&lt;/p&gt;

&lt;p&gt;Completeness is difficult to guarantee perfectly for:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Completely unknown products&lt;/li&gt;
&lt;li&gt;Ambiguous language&lt;/li&gt;
&lt;li&gt;Speech-recognition errors&lt;/li&gt;
&lt;li&gt;Unusual phrasing&lt;/li&gt;
&lt;li&gt;Product names appearing in unrelated text&lt;/li&gt;
&lt;li&gt;Corrections that are difficult to resolve&lt;/li&gt;
&lt;li&gt;Messages where the customer's intent cannot be reliably identified&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;A particularly important limitation is that a completeness checker cannot mathematically prove that an LLM extracted every possible customer intent from arbitrary natural language.&lt;/p&gt;

&lt;p&gt;Therefore, the safest behavior is to request human confirmation whenever sufficient evidence is unavailable.&lt;/p&gt;

&lt;p&gt;Because of this documented limitation, Orderly should &lt;strong&gt;not&lt;/strong&gt; be considered production-safe for unattended autonomous ordering.&lt;/p&gt;

&lt;h2&gt;
  
  
  Final Thoughts
&lt;/h2&gt;

&lt;p&gt;Orderly started as an AI order-taking idea, but the more important lesson became &lt;strong&gt;verification&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;AI is good at understanding messy human language.&lt;/p&gt;

&lt;p&gt;Code is better at enforcing deterministic rules.&lt;/p&gt;

&lt;p&gt;Putting the two together creates a safer system than relying on either one alone.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;AI extracts. Code verifies. Catalog decides. Human confirms when evidence is insufficient.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The most important design decision was not making the AI say &lt;code&gt;CONFIRMED&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;It was making sure that &lt;strong&gt;when the system cannot establish that the customer's complete request is represented, it refuses to guess.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Try Orderly, explore the code, and share your feedback or ideas for making AI-powered ordering safer for small shops.&lt;/p&gt;




&lt;h1&gt;
  
  
  devchallenge #weekendchallenge #hf26challenge #opensource #ai #python
&lt;/h1&gt;

</description>
      <category>webdev</category>
      <category>python</category>
      <category>hf26challenge</category>
      <category>opensource</category>
    </item>
  </channel>
</rss>
