<?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>Forem: Daniel Jemiri</title>
    <description>The latest articles on Forem by Daniel Jemiri (@certifiedsurvey).</description>
    <link>https://forem.com/certifiedsurvey</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%2F2804966%2F464085d5-73f6-462f-8b12-3638e87ea750.jpg</url>
      <title>Forem: Daniel Jemiri</title>
      <link>https://forem.com/certifiedsurvey</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/certifiedsurvey"/>
    <language>en</language>
    <item>
      <title>SQL-Speak: AI-Powered Natural Language Interface for Databases</title>
      <dc:creator>Daniel Jemiri</dc:creator>
      <pubDate>Mon, 26 Jan 2026 12:00:37 +0000</pubDate>
      <link>https://forem.com/certifiedsurvey/sql-speak-ai-powered-natural-language-interface-for-databases-1gci</link>
      <guid>https://forem.com/certifiedsurvey/sql-speak-ai-powered-natural-language-interface-for-databases-1gci</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for the &lt;a href="https://dev.to/challenges/github-2026-01-21"&gt;GitHub Copilot CLI Challenge&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  ✨ Updates (Jan 27)
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Benchmark Profile &amp;amp; Production-Ready Features Added!&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Since the challenge submission, I've added several major features that take SQL-Speak from demo to production-ready:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;🏁 PostgreSQL Benchmark Profile&lt;/strong&gt; (&lt;code&gt;--profile benchmark-postgres&lt;/code&gt;)

&lt;ul&gt;
&lt;li&gt;Safe for analytics workloads: SELECT-only enforcement, auto-applies &lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;

&lt;h2&gt;
  
  
  🏗️ Project Architecture (NEW!)
&lt;/h2&gt;

&lt;p&gt;SQL-Speak is a multi-component system with:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;CLI Layer&lt;/strong&gt;: Terminal-native interface using Typer&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Core Engine&lt;/strong&gt;: Database connection, schema detection, Copilot integration, query execution&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;REST API&lt;/strong&gt;: Programmatic access with authentication &amp;amp; authorization&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Web Dashboard&lt;/strong&gt;: Modern Next.js interface for enterprise use&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Data Generator&lt;/strong&gt;: PostgreSQL benchmark data generation (10M+ rows)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Configuration&lt;/strong&gt;: TOML-based environment management&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  💻 Development Setup
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Prerequisites
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Python 3.8+&lt;/li&gt;
&lt;li&gt;Node.js 16+ (for web dashboard)&lt;/li&gt;
&lt;li&gt;GitHub CLI with Copilot extension&lt;/li&gt;
&lt;li&gt;PostgreSQL 12+ (optional, for benchmarks)&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Quick Start
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# Backend&lt;/span&gt;
git clone https://github.com/jemiridaniel/SQL-Speak.git
&lt;span class="nb"&gt;cd &lt;/span&gt;SQL-Speak
python3 &lt;span class="nt"&gt;-m&lt;/span&gt; venv venv
&lt;span class="nb"&gt;source &lt;/span&gt;venv/bin/activate
pip &lt;span class="nb"&gt;install&lt;/span&gt; &lt;span class="nt"&gt;-r&lt;/span&gt; requirements.txt

&lt;span class="c"&gt;# Frontend&lt;/span&gt;
&lt;span class="nb"&gt;cd &lt;/span&gt;web
npm &lt;span class="nb"&gt;install
&lt;/span&gt;npm run dev

&lt;span class="c"&gt;# CLI Usage&lt;/span&gt;
python3 main.py &lt;span class="nt"&gt;--db&lt;/span&gt; hospital.db &lt;span class="s2"&gt;"Show me all patients older than 30"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  📦 Key Dependencies
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;typer[all]&lt;/strong&gt;: CLI framework&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;sqlalchemy&lt;/strong&gt;: Database toolkit&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;pexpect&lt;/strong&gt;: GitHub Copilot CLI interaction&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;psycopg2-binary&lt;/strong&gt;: PostgreSQL adapter&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;tabulate&lt;/strong&gt;: Result formatting&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Next.js&lt;/strong&gt;: Web dashboard framework&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  🔒 Security &amp;amp; Environment Setup
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Protected Environment Variables
&lt;/h3&gt;

&lt;p&gt;A &lt;code&gt;.env.example&lt;/code&gt; template is provided for safe setup:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;cp&lt;/span&gt; .env.example .env
&lt;span class="c"&gt;# Edit .env with your actual values (NOT committed to git)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;All &lt;code&gt;.env*&lt;/code&gt; files are gitignored to prevent credential leaks.&lt;/p&gt;

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

&lt;ul&gt;
&lt;li&gt;API Server: Gunicorn production deployment&lt;/li&gt;
&lt;li&gt;Web Dashboard: Vercel-ready Next.js build&lt;/li&gt;
&lt;li&gt;Database: PostgreSQL, SQLite, MySQL support&lt;/li&gt;
&lt;li&gt;Benchmarking: Safe profile for 10M+ row datasets&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  🛠️ Contributing
&lt;/h2&gt;

&lt;p&gt;Extend SQL-Speak by:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Adding database dialect support in &lt;code&gt;core/db.py&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Implementing features in appropriate modules&lt;/li&gt;
&lt;li&gt;Documenting API changes&lt;/li&gt;
&lt;li&gt;Testing with provided generator&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  📚 Core Modules
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;core/copilot.py&lt;/strong&gt;: GitHub Copilot integration&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;core/engine.py&lt;/strong&gt;: Query execution pipeline&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;core/db.py&lt;/strong&gt;: Database operations &amp;amp; schema detection&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;core/profiles.py&lt;/strong&gt;: Execution profiles (standard, benchmark)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;api/&lt;/strong&gt;: REST API with authentication&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;web/&lt;/strong&gt;: Next.js enterprise dashboard&lt;/li&gt;
&lt;/ul&gt;

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

&lt;ul&gt;
&lt;li&gt;[ ] Query caching &amp;amp; optimization&lt;/li&gt;
&lt;li&gt;[ ] Advanced result visualization&lt;/li&gt;
&lt;li&gt;[ ] Multi-database transactions&lt;/li&gt;
&lt;li&gt;[ ] Query performance analytics&lt;/li&gt;
&lt;li&gt;[ ] Community plugin system&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;&lt;strong&gt;GitHub&lt;/strong&gt;: &lt;a href="https://github.com/jemiridaniel/SQL-Speak" rel="noopener noreferrer"&gt;https://github.com/jemiridaniel/SQL-Speak&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;*Built with ❤️ for the GitHub Copilot CLI Challenge*LIMIT 100&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Shows EXPLAIN ANALYZE before execution to catch performance issues&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Real-world scenario: Query 10M+ row datasets safely from the terminal&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;📊 Built-in EXPLAIN ANALYZE Preview&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;&lt;p&gt;Validates query performance before running (no more accidental full-table scans!)&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;

&lt;p&gt;Shows query plans to understand what's happening under the hood&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;🏗️ Data Generator for Benchmarking&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;&lt;p&gt;Generates 10M+ row realistic datasets with &lt;code&gt;python -m generator.cli&lt;/code&gt;&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;Tables: customers, products, orders, order_items, payments&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;

&lt;p&gt;Perfect for stress-testing analytics queries&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;🔄 Multi-Turn Refinement Mode&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;&lt;p&gt;Ask follow-up questions to refine queries naturally&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;Example: "Show revenue by country" → "Only completed payments" → "Top 5 by revenue"&lt;/p&gt;&lt;/li&gt;

&lt;/ul&gt;

&lt;p&gt;Check the updated &lt;a href="https://github.com/jemiridaniel/SQL-Speak" rel="noopener noreferrer"&gt;GitHub repo&lt;/a&gt; for full details and the new README!&lt;/p&gt;

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

&lt;p&gt;SQL-Speak is a terminal-native utility that bridges the gap between natural language and structured data. It leverages the GitHub Copilot CLI as an intelligent translation layer, allowing developers to query local databases (like SQLite) using plain English. Instead of context-switching to a heavy GUI or manually writing complex JOINs for a quick data check, you can simply "speak" to your database directly from the command line.&lt;/p&gt;

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

&lt;p&gt;&lt;strong&gt;Source Code:&lt;/strong&gt; &lt;a href="https://github.com/jemiridaniel/SQL-Speak" rel="noopener noreferrer"&gt;https://github.com/jemiridaniel/SQL-Speak&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;Video Walkthrough:&lt;/strong&gt; &lt;a href="https://monosnap.ai/file/qdcGJmiFRoaegroJOc19X7uxwcZivV" rel="noopener noreferrer"&gt;https://monosnap.ai/file/qdcGJmiFRoaegroJOc19X7uxwcZivV&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  My Experience with GitHub Copilot CLI
&lt;/h2&gt;

&lt;p&gt;Building SQL-Speak highlighted the "agentic" power of the Copilot CLI. By integrating the new &lt;code&gt;gh copilot -p&lt;/code&gt; agentic prompt syntax into the application's backend, I was able to transform vague natural language intents into precise SQL queries.&lt;/p&gt;

&lt;p&gt;The CLI's ability to understand context made it possible to pass database schema hints into the prompt, ensuring the generated SQL was not just syntactically correct, but also contextually aware of my specific table structures. It turned the terminal from a static environment into a conversational data assistant.&lt;/p&gt;

&lt;h1&gt;
  
  
  githubcopilot #copilotclichallenge #cli #python #ai
&lt;/h1&gt;

</description>
      <category>devchallenge</category>
      <category>githubchallenge</category>
      <category>cli</category>
      <category>githubcopilot</category>
    </item>
    <item>
      <title>🏥 Medical Knowledge Assistant: AI-Powered Health Information with Algolia Agent Studio</title>
      <dc:creator>Daniel Jemiri</dc:creator>
      <pubDate>Fri, 09 Jan 2026 13:55:37 +0000</pubDate>
      <link>https://forem.com/certifiedsurvey/medical-knowledge-assistant-ai-powered-health-information-with-algolia-agent-studio-50c5</link>
      <guid>https://forem.com/certifiedsurvey/medical-knowledge-assistant-ai-powered-health-information-with-algolia-agent-studio-50c5</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for the &lt;a href="https://dev.to/challenges/algolia"&gt;Algolia Agent Studio Challenge&lt;/a&gt;: Consumer-Facing Non-Conversational Experiences&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;I built a &lt;strong&gt;Medical Knowledge Assistant&lt;/strong&gt; – an AI-powered conversational agent that helps users find accurate, evidence-based medical information about symptoms, treatments, tropical diseases, and preventive care. The assistant is specifically designed to serve communities in Sub-Saharan Africa, particularly Nigeria, where access to reliable health information is critical.&lt;/p&gt;

&lt;h3&gt;
  
  
  Key Features:
&lt;/h3&gt;

&lt;p&gt;– 🔍 &lt;strong&gt;Instant Medical Information&lt;/strong&gt;: Users can ask natural language questions about health conditions&lt;br&gt;
– 🌍 &lt;strong&gt;Region-Specific Content&lt;/strong&gt;: Focused on tropical diseases prevalent in Nigeria and Sub-Saharan Africa (malaria, yellow fever, typhoid, tuberculosis, Lassa fever)&lt;br&gt;
– 🩺 &lt;strong&gt;Evidence-Based Responses&lt;/strong&gt;: All information is sourced from a curated medical Q&amp;amp;A database&lt;br&gt;
– ⚡ &lt;strong&gt;Fast Retrieval&lt;/strong&gt;: Sub-second response times powered by Algolia's search infrastructure&lt;br&gt;
– 💬 &lt;strong&gt;Conversational Interface&lt;/strong&gt;: Clean, user-friendly chat UI built with React&lt;/p&gt;
&lt;h2&gt;
  
  
  Demo
&lt;/h2&gt;
&lt;h3&gt;
  
  
  Live Application
&lt;/h3&gt;

&lt;p&gt;🔗 &lt;strong&gt;&lt;a href="https://medical-knowledge-assistant.netlify.app/" rel="noopener noreferrer"&gt;Live Demo&lt;/a&gt;&lt;/strong&gt; ← Try it now!&lt;/p&gt;

&lt;p&gt;📂 &lt;strong&gt;&lt;a href="https://github.com/jemiridaniel/medical-knowledge-assistant" rel="noopener noreferrer"&gt;GitHub Repository&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;h3&gt;
  
  
  Try It Yourself
&lt;/h3&gt;

&lt;p&gt;Ask questions like:&lt;br&gt;
– "What are the symptoms of malaria?"&lt;br&gt;
– "How is yellow fever prevented in Lagos?"&lt;br&gt;
– "What antimalarial drugs work in Nigeria?"&lt;br&gt;
– "How is tuberculosis diagnosed?"&lt;/p&gt;
&lt;h3&gt;
  
  
  Demo Screenshot
&lt;/h3&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.amazonaws.com%2Fuploads%2Farticles%2Fzpdtd3b2c98wl8i0j5jl.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.amazonaws.com%2Fuploads%2Farticles%2Fzpdtd3b2c98wl8i0j5jl.png" alt="Medical Knowledge Assistant Demo" width="800" height="1349"&gt;&lt;/a&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.amazonaws.com%2Fuploads%2Farticles%2F144etpqk8b8v7pylyzkd.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.amazonaws.com%2Fuploads%2Farticles%2F144etpqk8b8v7pylyzkd.png" alt="Medical Knowledge Assistant Demo Prompt " width="800" height="810"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;The interface showing a live query about malaria symptoms and the AI-generated response with medical information and appropriate disclaimers.&lt;/em&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  How I Used Algolia Agent Studio
&lt;/h2&gt;
&lt;h3&gt;
  
  
  Data Indexing
&lt;/h3&gt;

&lt;p&gt;I indexed &lt;strong&gt;113 medical Q&amp;amp;A records&lt;/strong&gt; into Algolia's &lt;code&gt;medical_knowledge&lt;/code&gt; index covering tropical diseases prevalent in Sub-Saharan Africa.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Data Structure:&lt;/strong&gt;&lt;br&gt;
– &lt;code&gt;objectID&lt;/code&gt;: Unique identifier&lt;br&gt;
– &lt;code&gt;question&lt;/code&gt;: Patient question&lt;br&gt;
– &lt;code&gt;answer&lt;/code&gt;: Medical response&lt;br&gt;
– &lt;code&gt;category&lt;/code&gt;: Disease/topic classification (malaria, yellow fever, tuberculosis, etc.)&lt;/p&gt;
&lt;h3&gt;
  
  
  Agent Configuration
&lt;/h3&gt;

&lt;p&gt;Created an AI agent (&lt;code&gt;ID: 9abf468d-c860-4aba-baf0-de3cdabcaa76&lt;/code&gt;) with:&lt;br&gt;
– &lt;strong&gt;LLM Integration&lt;/strong&gt;: Google Gemini 1.5 Flash for natural language understanding&lt;br&gt;
– &lt;strong&gt;Search Parameters&lt;/strong&gt;: Optimized for medical terminology retrieval&lt;br&gt;
– &lt;strong&gt;Response Template&lt;/strong&gt;: Structured to provide clear medical information with appropriate disclaimers&lt;/p&gt;
&lt;h3&gt;
  
  
  Query Pipeline
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;User asks health question in natural language&lt;/li&gt;
&lt;li&gt;Algolia Agent Studio processes query through semantic understanding&lt;/li&gt;
&lt;li&gt;Searches indexed medical records using vector embeddings&lt;/li&gt;
&lt;li&gt;LLM synthesizes relevant information into conversational response&lt;/li&gt;
&lt;li&gt;Returns answer with educational disclaimer&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;
  
  
  React Integration
&lt;/h3&gt;

&lt;p&gt;Built frontend using Algolia's Agent Studio React components:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight jsx"&gt;&lt;code&gt;&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;AlgoliaAgentProvider&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;SearchBox&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;Messages&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;@algolia/agent-studio-react&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nc"&gt;AlgoliaAgentProvider&lt;/span&gt;
  &lt;span class="na"&gt;appId&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="s"&gt;"FS5S2685DH"&lt;/span&gt;
  &lt;span class="na"&gt;apiKey&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;YOUR_API_KEY&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;
  &lt;span class="na"&gt;agentId&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="s"&gt;"9abf468d-c860-4aba-baf0-de3cdabcaa76"&lt;/span&gt;
&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
  &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nc"&gt;SearchBox&lt;/span&gt; &lt;span class="p"&gt;/&amp;gt;&lt;/span&gt;
  &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nc"&gt;Messages&lt;/span&gt; &lt;span class="p"&gt;/&amp;gt;&lt;/span&gt;
&lt;span class="p"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="nc"&gt;AlgoliaAgentProvider&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Why Fast Retrieval Matters
&lt;/h2&gt;

&lt;p&gt;In healthcare contexts, &lt;strong&gt;speed directly impacts outcomes&lt;/strong&gt;:&lt;/p&gt;

&lt;h3&gt;
  
  
  1. Emergency Decision Making
&lt;/h3&gt;

&lt;p&gt;When someone experiences symptoms like high fever, severe headache, or difficulty breathing (common in malaria/typhoid), they need immediate information to decide whether to seek emergency care. Sub-second search responses enable faster decision-making.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. Resource-Constrained Settings
&lt;/h3&gt;

&lt;p&gt;In Sub-Saharan Africa:&lt;br&gt;
– Many areas have &lt;strong&gt;limited internet connectivity&lt;/strong&gt; (2G/3G networks)&lt;br&gt;
– Mobile data is expensive&lt;br&gt;
– Healthcare facilities may be hours away&lt;/p&gt;

&lt;p&gt;Fast retrieval minimizes data usage and wait times, making the tool accessible even on slow networks.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. Information Accuracy
&lt;/h3&gt;

&lt;p&gt;Traditional web searches for medical questions often return:&lt;br&gt;
– Unreliable sources&lt;br&gt;
– US/Europe-focused information (not relevant to tropical diseases)&lt;br&gt;
– Conflicting advice requiring extensive fact-checking&lt;/p&gt;

&lt;p&gt;Algolia's fast, structured retrieval from curated medical records ensures users get &lt;strong&gt;accurate, region-specific information instantly&lt;/strong&gt; without sifting through irrelevant results.&lt;/p&gt;

&lt;h3&gt;
  
  
  4. User Trust &amp;amp; Engagement
&lt;/h3&gt;

&lt;p&gt;Healthcare information requires trust. When responses are:&lt;br&gt;
– &lt;strong&gt;Instant&lt;/strong&gt; (&amp;lt; 1 second)&lt;br&gt;
– &lt;strong&gt;Relevant&lt;/strong&gt; (specific to their region/disease)&lt;br&gt;
– &lt;strong&gt;Consistent&lt;/strong&gt; (always from vetted medical sources)&lt;/p&gt;

&lt;p&gt;Users are more likely to rely on the tool for health decisions rather than potentially harmful misinformation.&lt;/p&gt;

&lt;h3&gt;
  
  
  5. Scalability
&lt;/h3&gt;

&lt;p&gt;As the medical knowledge base grows (adding more diseases, treatments, regional variations), Algolia's infrastructure maintains fast retrieval without performance degradation. This is critical for expanding to serve millions of users across Africa.&lt;/p&gt;




&lt;h2&gt;
  
  
  Technical Stack
&lt;/h2&gt;

&lt;p&gt;– &lt;strong&gt;Frontend&lt;/strong&gt;: React + Vite&lt;br&gt;
– &lt;strong&gt;AI Agent&lt;/strong&gt;: Algolia Agent Studio&lt;br&gt;
– &lt;strong&gt;LLM&lt;/strong&gt;: Google Gemini 1.5 Flash&lt;br&gt;
– &lt;strong&gt;Search Index&lt;/strong&gt;: Algolia (113 medical records)&lt;br&gt;
– &lt;strong&gt;Deployment&lt;/strong&gt;: Netlify&lt;br&gt;
– &lt;strong&gt;Data Source&lt;/strong&gt;: Curated medical Q&amp;amp;A dataset&lt;/p&gt;

&lt;h2&gt;
  
  
  Impact &amp;amp; Future Plans
&lt;/h2&gt;

&lt;p&gt;This assistant addresses the &lt;strong&gt;critical need for accessible medical information in Sub-Saharan Africa&lt;/strong&gt;. Future enhancements:&lt;br&gt;
– Expand dataset to 500+ medical Q&amp;amp;A covering more tropical diseases&lt;br&gt;
– Add multi-language support (Yoruba, Igbo, Hausa, Swahili)&lt;br&gt;
– Integrate with SMS/WhatsApp for offline access&lt;br&gt;
– Partner with local healthcare organizations for content verification&lt;/p&gt;




&lt;p&gt;&lt;em&gt;⚕️ Educational Disclaimer: This tool provides general health information for educational purposes. Always consult a healthcare professional for personalized medical advice.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>algoliachallenge</category>
      <category>ai</category>
      <category>agents</category>
    </item>
    <item>
      <title>Setting Up NGINX on Ubuntu: My Experience As a Beginner in DevOps</title>
      <dc:creator>Daniel Jemiri</dc:creator>
      <pubDate>Sun, 02 Feb 2025 14:32:59 +0000</pubDate>
      <link>https://forem.com/certifiedsurvey/setting-up-nginx-on-ubuntu-my-experience-as-a-beginner-in-devops-pf0</link>
      <guid>https://forem.com/certifiedsurvey/setting-up-nginx-on-ubuntu-my-experience-as-a-beginner-in-devops-pf0</guid>
      <description>&lt;h2&gt;
  
  
  &lt;strong&gt;Introduction&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;As part of the HNG DevOps internship, I was tasked with configuring an NGINX web server on a fresh Ubuntu instance. This challenge aimed to assess my ability to work with basic web server configurations and deliver a functional static website. In this blog post, I will walk through my approach, highlight challenges I faced, and reflect on the learning experience.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Task Breakdown&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;The assignment required me to:&lt;/p&gt;

&lt;p&gt;Install and configure the NGINX web server.&lt;/p&gt;

&lt;p&gt;Serve a custom HTML page with the message:&lt;/p&gt;

&lt;p&gt;"Welcome to DevOps Stage 0 - Daniel Jemiri/Survey"&lt;/p&gt;

&lt;p&gt;Ensure the page is accessible via a public IP address.&lt;/p&gt;

&lt;p&gt;Document the process and reflect on the experience.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Step 1: Setting Up the Ubuntu Server&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;I opted to use an Ubuntu 22.04 server on Google Cloud. The steps included:&lt;/p&gt;

&lt;p&gt;Creating a Compute Engine instance and assigning a public IP.&lt;/p&gt;

&lt;p&gt;Configuring firewall rules to allow traffic on port 80 (HTTP).&lt;/p&gt;

&lt;p&gt;Connecting to the instance via SSH:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;gcloud compute ssh --zone=&amp;lt;your-zone&amp;gt; &amp;lt;your-instance-name&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Step 2: Installing and Configuring NGINX
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;Installing NGINX&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;First, I updated the system and installed NGINX:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;sudo apt update &amp;amp;&amp;amp; sudo apt install -y nginx
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;To verify the installation:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;nginx -v
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;I enable and check the status of the nginx&lt;br&gt;
Enable NGINX to Start on Boot:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;sudo systemctl enable nginx
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Check NGINX Status:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;sudo systemctl status nginx

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;You should see active (running) in the output.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Configuring the Web Server&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;To customize the default page, I modified the index.html file:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;sudo nano /var/www/html/index.html
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;And added the required content:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;lt;!DOCTYPE html&amp;gt;
&amp;lt;html&amp;gt;
&amp;lt;head&amp;gt;
    &amp;lt;title&amp;gt;DevOps Stage 0&amp;lt;/title&amp;gt;
&amp;lt;/head&amp;gt;
&amp;lt;body&amp;gt;
    &amp;lt;h1&amp;gt;Welcome to DevOps Stage 0 - Daniel Jemiri/Survey&amp;lt;/h1&amp;gt;
&amp;lt;/body&amp;gt;
&amp;lt;/html&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Save and Exit:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;:wq
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;After saving the file, I restarted NGINX to apply the changes:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;sudo systemctl restart nginx
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  &lt;strong&gt;Step 3: Testing the Deployment&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;To confirm everything worked, I accessed my server’s public IP in a browser:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;[YOUR_SERVER_IP](http://YOUR_SERVER_IP)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The page loaded successfully, displaying the custom message.&lt;/p&gt;

&lt;p&gt;To ensure NGINX was running properly, I used:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;sudo systemctl status nginx
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Everything was set up correctly without errors.&lt;/p&gt;

&lt;h2&gt;
  
  
  Challenges and Solutions
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Firewall Issues:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Initially, I couldn’t access the page from my browser.&lt;/p&gt;

&lt;p&gt;Solution: I checked firewall rules and allowed HTTP traffic using:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;gcloud compute firewall-rules create allow-http --allow tcp:80
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;File Permission Errors:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;I encountered a permission error while editing index.html.&lt;/p&gt;

&lt;p&gt;Solution: Used sudo to grant appropriate permissions:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;sudo chmod 644 /var/www/html/index.html
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Lessons Learned
&lt;/h2&gt;

&lt;p&gt;This task provided hands-on experience with:&lt;/p&gt;

&lt;p&gt;Installing and configuring NGINX.&lt;/p&gt;

&lt;p&gt;Managing an Ubuntu server via SSH.&lt;/p&gt;

&lt;p&gt;Debugging firewall and permission issues.&lt;/p&gt;

&lt;p&gt;Deploying a static web page on a cloud server.&lt;/p&gt;

&lt;p&gt;Understanding these core DevOps concepts is crucial as they align with roles like Site Reliability Engineers and Cloud Engineers.&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;Completing this task enhanced my ability to work with web servers and troubleshoot deployment issues. It reinforced my understanding of infrastructure setup, which is essential for any DevOps engineer. I look forward to tackling more complex challenges in the upcoming stages!&lt;/p&gt;

&lt;h2&gt;
  
  
  References and Further Reading
&lt;/h2&gt;

&lt;p&gt;As I continue my journey, I’m inspired by the opportunities available at HNG Tech. Here are some roles that align with these aspirations and may inspire you too:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://hng.tech/hire/devops-engineers" rel="noopener noreferrer"&gt;DevOps Engineers&lt;/a&gt;&lt;br&gt;
&lt;a href="https://hng.tech/hire/cloud-engineers" rel="noopener noreferrer"&gt;Cloud Engineers&lt;/a&gt;&lt;br&gt;
&lt;a href="https://hng.tech/hire/site-reliability-engineers" rel="noopener noreferrer"&gt;Site Reliability Engineers&lt;/a&gt;&lt;br&gt;
&lt;a href="https://hng.tech/hire/kubernetes-specialists" rel="noopener noreferrer"&gt;Kubernetes Specialists&lt;/a&gt;&lt;br&gt;
&lt;a href="https://hng.tech/hire/aws-solutions-architects" rel="noopener noreferrer"&gt;AWS Solutions Architects&lt;/a&gt;&lt;br&gt;
&lt;a href="https://hng.tech/hire/azure-devops-engineers" rel="noopener noreferrer"&gt;Azure DevOps Engineers&lt;/a&gt;&lt;br&gt;
&lt;a href="https://hng.tech/hire/google-cloud-engineers" rel="noopener noreferrer"&gt;Google Cloud Engineers&lt;/a&gt;&lt;/p&gt;

</description>
    </item>
  </channel>
</rss>
