<?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: Faith Obi </title>
    <description>The latest articles on Forem by Faith Obi  (@faith_dev_).</description>
    <link>https://forem.com/faith_dev_</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%2F1698473%2Fadd5591a-8f36-4dad-aa11-ada7a11fa904.jpeg</url>
      <title>Forem: Faith Obi </title>
      <link>https://forem.com/faith_dev_</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/faith_dev_"/>
    <language>en</language>
    <item>
      <title>How I Built the NDPA AI Agent</title>
      <dc:creator>Faith Obi </dc:creator>
      <pubDate>Mon, 03 Nov 2025 16:54:47 +0000</pubDate>
      <link>https://forem.com/faith_dev_/how-i-built-the-ndpa-ai-agent-2gfk</link>
      <guid>https://forem.com/faith_dev_/how-i-built-the-ndpa-ai-agent-2gfk</guid>
      <description>&lt;p&gt;Have you ever tried to read a law and got completely lost halfway through?&lt;/p&gt;

&lt;p&gt;Yeah, me too. 😅&lt;/p&gt;

&lt;p&gt;That’s one reason I decided to build the &lt;strong&gt;NDPA AI Agent&lt;/strong&gt; — an AI-powered assistant that helps anyone in Nigeria understand the Nigeria Data Protection Act (NDPA) 2023 in English.&lt;/p&gt;

&lt;p&gt;&lt;br&gt;&lt;br&gt;
With this AI agent, you can simply ask:&lt;/p&gt;

&lt;p&gt;“What are my rights as a data subject?”&lt;br&gt;
“What are the duties of data controllers?”&lt;br&gt;
“Does NDPA apply to foreign companies?”&lt;/p&gt;

&lt;p&gt;…and it gives you accurate, referenced answers pulled directly from the law — fast and easy.&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%2Fh45ztabf8vcrje3uvjie.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%2Fh45ztabf8vcrje3uvjie.png" alt=" " width="800" height="225"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;br&gt;&lt;br&gt;
⚙️ &lt;strong&gt;What Powers the NDPA AI Agent?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;This agent was built using &lt;strong&gt;Mastra AI&lt;/strong&gt;, a powerful open-source framework for building and evaluating AI agents.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://mastra.ai" rel="noopener noreferrer"&gt;Mastra&lt;/a&gt; lets you easily define your agent’s tools, memory, scoring system, and workflows without heavy coding. It’s perfect for both developers and learners who want to build useful AI assistants.&lt;/p&gt;

&lt;p&gt;👉 Learn more about Mastra AI here: &lt;a href="https://mastra.ai" rel="noopener noreferrer"&gt;https://mastra.ai&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;br&gt;&lt;br&gt;
💡 &lt;strong&gt;What the NDPA AI Agent Does&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The NDPA AI Agent helps people, startups, or privacy officers quickly understand the NDPA.&lt;/p&gt;

&lt;p&gt;When you ask a question, it:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Searches through a structured JSON copy of the NDPA.&lt;/li&gt;
&lt;li&gt;Finds the most relevant section (for example, Part I, Section 1).&lt;/li&gt;
&lt;li&gt;Summarizes the section.&lt;/li&gt;
&lt;li&gt;Explains it in clear, plain English.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Here’s the live version of my agent on Telex 👇&lt;br&gt;
🔗 &lt;a href="https://telex.im/telex-ai-intergration/home/colleagues/browse/019a45d5-01aa-7650-82af-2d60d6c3e7d1" rel="noopener noreferrer"&gt;Try the NDPA AI Agent on Telex&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;br&gt;&lt;br&gt;
💬 &lt;strong&gt;What Is Telex?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://telex.im/" rel="noopener noreferrer"&gt;Telex&lt;/a&gt; is an AI agent platform like Make, where you can integrate and chat with AI agents in real-time.&lt;br&gt;
Think of it as a Slack alternative for education, bootcamps, or communities — but designed for intelligent, task-specific agents.&lt;/p&gt;

&lt;p&gt;Once I finished building the NDPA AI Agent in Mastra, I connected it to Telex so anyone can use it directly — no installation or coding needed.&lt;/p&gt;

&lt;p&gt;&lt;br&gt;&lt;br&gt;
🧩 &lt;strong&gt;Mastra Features I Used to Build My Agent&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Here are the Mastra features that powered my project — explained simply:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Agent&lt;/strong&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The Agent feature defines the brain of your assistant — what it knows, how it behaves, and which model it uses.&lt;br&gt;
For the NDPA Agent, I used:&lt;/p&gt;

&lt;p&gt;A Groq model (moonshotai/kimi-k2-instruct-0905) for reasoning and understanding.&lt;/p&gt;

&lt;p&gt;Detailed instructions to ensure it always explains answers clearly and cites NDPA sections.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Tools&lt;/strong&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Mastra’s tools let your agent perform actions or access data.&lt;br&gt;
I built a custom tool called &lt;strong&gt;search-ndpa&lt;/strong&gt;, which searches a structured JSON version of the NDPA to find the right section for any question.&lt;/p&gt;

&lt;p&gt;Example:&lt;br&gt;
When someone asks, “Who oversees data protection in Nigeria?”,&lt;br&gt;
the tool fetches the section that mentions the Data Protection Commission.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Memory&lt;/strong&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;I used Mastra’s Memory with a LibSQLStore so the agent can keep context during conversations — it remembers previous questions in a chat session.&lt;/p&gt;

&lt;p&gt;That means if you ask:&lt;/p&gt;

&lt;p&gt;“What does NDPA say about consent?”&lt;br&gt;
“And what about data breaches?”&lt;/p&gt;

&lt;p&gt;The agent understands that both questions are related.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Scorers&lt;/strong&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Mastra has a smart evaluation system called Scorers that helps you measure how good your AI agent’s responses are.&lt;/p&gt;

&lt;p&gt;I used three scorers:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Tool Call Accuracy Scorer – checks if the right tool was used.&lt;/li&gt;
&lt;li&gt;Completeness Scorer – makes sure the answer is complete.&lt;/li&gt;
&lt;li&gt;Relevance Scorer – ensures the section it found is truly relevant to your question.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;These scorers help the agent learn and improve accuracy over time.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Workflows&lt;/strong&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Workflows in Mastra connect multiple steps together.&lt;br&gt;
For example, my NDPA workflow does this:&lt;/p&gt;

&lt;p&gt;Step 1: Search for the NDPA section.&lt;br&gt;
Step 2: Summarize and explain it in simple English.&lt;/p&gt;

&lt;p&gt;That’s how the agent moves smoothly from &lt;code&gt;“search” → “summarize” → “explain.”&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;br&gt;&lt;br&gt;
🧱 &lt;strong&gt;How It All Comes Together&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Here’s what happens behind the scenes when you chat with the NDPA Agent:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;You ask a question.&lt;/li&gt;
&lt;li&gt;The agent runs its search-ndpa tool to find the best matching section from the NDPA JSON.&lt;/li&gt;
&lt;li&gt;It reads the legal text and generates a clear summary.&lt;/li&gt;
&lt;li&gt;The Mastra workflow stitches the process together.&lt;/li&gt;
&lt;li&gt;The agent returns a simple explanation you can understand — no legal jargon needed.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;br&gt;&lt;br&gt;
🚀 &lt;strong&gt;How to Build Your Own AI Agent Like This&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;If you’d love to build your own custom AI agent (maybe for education, business, or another local law), here’s how to start:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Visit Mastra AI: Follow their setup guide to create a new agent project.&lt;/li&gt;
&lt;li&gt;Define your agent (what it does, how it behaves).&lt;/li&gt;
&lt;li&gt;Add a tool that connects your data source (like a JSON file or API).&lt;/li&gt;
&lt;li&gt;Create a workflow if you want multi-step logic.&lt;/li&gt;
&lt;li&gt;Add scorers to evaluate your agent’s accuracy.&lt;/li&gt;
&lt;li&gt;Finally, connect your agent to Telex and publish it for others to use.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;You can then share your Telex agent link — just like this:&lt;br&gt;
🔗 NDPA AI Agent on Telex&lt;/p&gt;

&lt;p&gt;&lt;br&gt;&lt;br&gt;
🎯 &lt;strong&gt;Why I Built This&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Nigeria’s Data Protection Act is an important law, but many people and businesses still find it confusing or inaccessible.&lt;/p&gt;

&lt;p&gt;My goal with the &lt;strong&gt;NDPA AI Agent&lt;/strong&gt; is to make that information open, understandable, and actionable — for everyone.&lt;/p&gt;

&lt;p&gt;I believe AI should simplify knowledge, not make it harder.&lt;br&gt;
And frameworks like &lt;strong&gt;Mastra AI&lt;/strong&gt; and platforms like &lt;strong&gt;Telex&lt;/strong&gt; make it possible to bring that vision to life — even if you’re not a heavy coder.&lt;/p&gt;

&lt;p&gt;&lt;br&gt;&lt;br&gt;
💬 &lt;strong&gt;Final Thoughts&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Building the NDPA AI Agent taught me two big lessons:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;You don’t need to be a hardcore developer to create useful AI tools.&lt;/li&gt;
&lt;li&gt;AI agents are more powerful when they focus on solving real, local problems.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;So if you’ve been thinking about creating your own AI agent — do it!&lt;br&gt;
Start small, use Mastra, connect it to Telex, and share it with your community.&lt;/p&gt;

&lt;p&gt;&lt;br&gt;&lt;br&gt;
👉 Try the NDPA AI Agent here: &lt;a href="https://telex.im/telex-ai-intergration/home/colleagues/browse/019a45d5-01aa-7650-82af-2d60d6c3e7d1" rel="noopener noreferrer"&gt;https://telex.im/telex-ai-intergration/home/colleagues/browse/019a45d5-01aa-7650-82af-2d60d6c3e7d1&lt;/a&gt;&lt;br&gt;
👉 Learn more about Telex: &lt;a href="https://telex.im" rel="noopener noreferrer"&gt;https://telex.im&lt;/a&gt;&lt;br&gt;
👉 Learn more about Mastra AI: &lt;a href="https://mastra.ai" rel="noopener noreferrer"&gt;https://mastra.ai&lt;/a&gt;&lt;/p&gt;

</description>
      <category>agents</category>
      <category>ai</category>
      <category>mastra</category>
      <category>hng</category>
    </item>
    <item>
      <title>What's the Next Step After CSS? Exploring Sass, Bootstrap, and Tailwind CSS</title>
      <dc:creator>Faith Obi </dc:creator>
      <pubDate>Fri, 28 Jun 2024 18:56:23 +0000</pubDate>
      <link>https://forem.com/faith_dev_/whats-the-next-step-after-css-exploring-sass-bootstrap-and-tailwind-css-5c5g</link>
      <guid>https://forem.com/faith_dev_/whats-the-next-step-after-css-exploring-sass-bootstrap-and-tailwind-css-5c5g</guid>
      <description>&lt;p&gt;As a newbie in Web Development, you might be confused about what to learn next after mastering HTML and CSS. Should you dive into Bootstrap, Tailwind CSS, or maybe SASS? In this article, I'll share my experiences and insights to help you make an informed decision.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;SASS: CSS with Superpowers&lt;/strong&gt;&lt;br&gt;
Sass means Syntactically Awesome Style Sheets. When I was in the DCTP (DevCareer Technical Program) Cohort 1, we learned Sass using the 7-1 pattern architecture. This means organizing your styles into 7 folders and 1 main file (main.scss) that imports everything. This main.scss file is later compiled into main.css, which you use in your entire project.&lt;br&gt;
Note: Sass uses the BEM naming convention.&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%2Fi89rpl220f1epu68eq60.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%2Fi89rpl220f1epu68eq60.png" alt="main.sccs in sass 7-1 pattern architecture" width="800" height="591"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why use Sass?&lt;/strong&gt;&lt;br&gt;
•  Variables: You can declare style variables and use them throughout your project.&lt;br&gt;
•  Mixins: Create reusable blocks of styles that follow DRY principles.&lt;br&gt;
•  Parent Selector: The ampersand selector (&amp;amp;) makes naming your classes easier.&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%2F6xp688i7w7cxm5fpr7dp.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%2F6xp688i7w7cxm5fpr7dp.png" alt="_heroSection.scss file in my project" width="800" height="501"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Example&lt;/strong&gt;: In the image above, in line 4, color is a variable. In line 2, container was a mixin included in .hero_section. In line 10, the &amp;amp; represents .hero_section, meaning we're declaring the .hero_section--right class.&lt;/p&gt;

&lt;p&gt;Interested in using Sass for your next project? Check out the &lt;a href="https://sass-guidelin.es/" rel="noopener noreferrer"&gt;Sass Guidelines&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Bootstrap: Quick and Easy Components&lt;/strong&gt;&lt;br&gt;
I first learned Bootstrap during the Visiola Foundation Cohort 1 bootcamp in 2022. It was amazing because I could use a lot of ready-made components I didn't know how to build from scratch then.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Will I recommend Bootstrap for beginners?&lt;/strong&gt;&lt;br&gt;
Absolutely! After learning CSS, building a few projects with Bootstrap can be very helpful. It's great for quickly building projects and sometimes you'll need to revamp existing websites/templates built with Bootstrap.&lt;br&gt;
As strange as it might sound, my responsiveness skills improved a lot by using Bootstrap for almost a year during my SIWES program. I even have a recorded video (soon to be posted) on how I built a webpage using Bootstrap 5. Follow my social handles below to know when I share the video!&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why use Bootstrap?&lt;/strong&gt;&lt;br&gt;
•  Responsiveness: It can improve your responsiveness skills.&lt;br&gt;
•  Speed: Build projects in less than a week.&lt;br&gt;
•  Components: Access to a lot of components for your projects.&lt;br&gt;
•  Flexibility: More flexible if you know Sass since Bootstrap is built on Sass.&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%2Fvmak9oc70ngasc33rebq.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%2Fvmak9oc70ngasc33rebq.png" alt="fylo webpage built with bootstrap 5" width="800" height="429"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Tailwind CSS: Flexible and Time-Saving&lt;/strong&gt;&lt;br&gt;
Tailwind CSS is a CSS library I started using in March 2024. It's been a game-changer for my ReactJS projects.&lt;br&gt;
For me, Tailwind CSS was easy to learn. I picked it up in less than a week because I needed to build my B.Sc. project quickly. I didn't want a common-looking website, which is often a downside of using Bootstrap.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How did I learn Tailwind CSS so quickly?&lt;/strong&gt;&lt;br&gt;
My existing knowledge of CSS, Sass, and Bootstrap definitely helped. After learning the basics, I followed a YouTube tutorial where the instructor used ReactJS and CSS to build an ecommerce webpage with filter and search options. I adapted this to use ReactJS and Tailwind CSS.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why Tailwind CSS?&lt;/strong&gt;&lt;br&gt;
•  Flexibility: Extremely flexible to use.&lt;br&gt;
•  Time-Saving: Saves a lot of time.&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%2F3jd14twfkowlruwn8lsa.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%2F3jd14twfkowlruwn8lsa.png" alt="ecommerce webpage built with tailwind css" width="800" height="425"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What's Next for You? Bootstrap, Tailwind CSS, or SASS?&lt;/strong&gt;&lt;br&gt;
If you're leaning towards becoming a Backend Developer or a Full-stack Developer with a backend focus, I recommend starting with Bootstrap.&lt;/p&gt;

&lt;p&gt;If you're aiming to become a Frontend Web Developer, I suggest learning all three because you might encounter any of them in your projects.&lt;/p&gt;

&lt;p&gt;For aspiring Full-stack Developers who want to excel in both frontend and backend, I recommend starting with Tailwind CSS.&lt;/p&gt;




&lt;p&gt;I hope this guide helps you decide your next step after CSS. Each of these tools has its strengths, and learning them will undoubtedly make you a more versatile and skilled developer. &lt;/p&gt;

&lt;p&gt;If you're looking to join a program that offers hands-on experience and guidance, check out the &lt;a href="https://www.hng.tech/internship" rel="noopener noreferrer"&gt;HNG Internship&lt;/a&gt;. For additional benefits and advanced learning opportunities, consider &lt;a href="https://hng.tech/premium" rel="noopener noreferrer"&gt;HNG Premium&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Feel free to connect with me on &lt;a href="https://twitter.com/Faith_Dev_" rel="noopener noreferrer"&gt;Twitter&lt;/a&gt; and &lt;a href="https://www.linkedin.com/in/faithdev/" rel="noopener noreferrer"&gt;LinkedIn&lt;/a&gt; to stay updated with my latest projects and tutorials. Happy coding!&lt;/p&gt;

</description>
      <category>html</category>
    </item>
  </channel>
</rss>
