<?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: Arum</title>
    <description>The latest articles on DEV Community by Arum (@tony_dev).</description>
    <link>https://dev.to/tony_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.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3987579%2F71582e44-f66e-4711-ab9c-aae6bc564a76.png</url>
      <title>DEV Community: Arum</title>
      <link>https://dev.to/tony_dev</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/tony_dev"/>
    <language>en</language>
    <item>
      <title>Building Fiesta Agency: Because Apparently, “Just Make It Look Good” Wasn’t Enough</title>
      <dc:creator>Arum</dc:creator>
      <pubDate>Wed, 16 Sep 2026 21:24:14 +0000</pubDate>
      <link>https://dev.to/tony_dev/building-fiesta-agency-because-apparently-just-make-it-look-good-wasnt-enough-580n</link>
      <guid>https://dev.to/tony_dev/building-fiesta-agency-because-apparently-just-make-it-look-good-wasnt-enough-580n</guid>
      <description>&lt;p&gt;One of the projects I’ve been working on recently is &lt;strong&gt;Fiesta Agency&lt;/strong&gt;, an event planning and entertainment agency based in Kigali, Rwanda.&lt;/p&gt;

&lt;p&gt;The goal was to build a modern website that reflects the energy of the brand, showcases their services and events, and gives potential clients a proper place to explore what they do.&lt;/p&gt;

&lt;p&gt;Simple enough.&lt;/p&gt;

&lt;p&gt;Then, as usual with development, “simple” started growing features. 😅&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%2F8a4hjsuat0g4k5reedlw.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%2F8a4hjsuat0g4k5reedlw.png" alt=" " width="800" height="432"&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fkggnn9jxf0ncjwd8qunq.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%2Fkggnn9jxf0ncjwd8qunq.png" alt=" " width="800" height="435"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I wanted the website to feel visual and interactive without making it difficult to use.&lt;/p&gt;

&lt;p&gt;The stack:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;React • TypeScript • Vite&lt;br&gt;
Tailwind CSS • shadcn/ui&lt;br&gt;
Framer Motion • Supabase&lt;br&gt;
React Router&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The platform includes services, events, portfolio, company information, how Fiesta works, and contact.&lt;/p&gt;

&lt;p&gt;But making the frontend look good was only part of the job.&lt;/p&gt;

&lt;p&gt;Because apparently, websites are also expected to actually work.&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%2Ff0uggjw2xrr7575xcdik.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%2Ff0uggjw2xrr7575xcdik.png" alt=" " width="799" height="434"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I built a content management system backed by Supabase so events, portfolio items, and media can be managed without opening the code every time something needs to change.&lt;/p&gt;

&lt;p&gt;That part was particularly interesting because it pushed me to think beyond the interface and consider how the website would actually be maintained and used after launch.&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%2Fqiatnh1eu9iowb3agnqz.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%2Fqiatnh1eu9iowb3agnqz.png" alt=" " width="800" height="779"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I also made sure the experience works across different screen sizes, because a beautiful desktop website that falls apart on a phone is basically just expensive wallpaper.&lt;/p&gt;

&lt;p&gt;Building Fiesta gave me the chance to work across different parts of a web application, from the UI and frontend architecture to backend data and content management.&lt;/p&gt;

&lt;p&gt;The website is now live.&lt;/p&gt;

&lt;p&gt;Live Website: &lt;a href="https://fiesta-agency-done.vercel.app/" rel="noopener noreferrer"&gt;https://fiesta-agency-done.vercel.app/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You can check out the live version a&lt;/p&gt;

&lt;p&gt;Another build shipped.&lt;br&gt;
On to the next one.&lt;/p&gt;

</description>
      <category>fullstack</category>
      <category>softwaredevelopment</category>
      <category>supabase</category>
      <category>webdev</category>
    </item>
    <item>
      <title>dev contest: Telecom RCA Automation System</title>
      <dc:creator>Arum</dc:creator>
      <pubDate>Sun, 12 Jul 2026 21:20:59 +0000</pubDate>
      <link>https://dev.to/tony_dev/dev-contest-telecom-rca-automation-system-pk5</link>
      <guid>https://dev.to/tony_dev/dev-contest-telecom-rca-automation-system-pk5</guid>
      <description>&lt;p&gt;This is a submission for [Weekend Challenge: Passion Edition]&lt;br&gt;
&lt;strong&gt;What I Built&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Over the years, I watched my mom do the same work over and over, often spending 2 to 4 hours preparing a single telecom SLA report. She works in network field maintenance for a telecom company in Nigeria, and every reporting cycle she has to manually read fault descriptions from field engineers, usually pasted directly from WhatsApp, classify each fault into the company's standardized taxonomy, and format everything into an Excel compliance report.&lt;/p&gt;

&lt;p&gt;At one point, I learned the process myself so I could truly understand what she was going through. After doing it firsthand, I realized how mentally and physically exhausting it was. Sitting for hours on a repetitive task that required constant attention wasn't just inefficient, it was draining.&lt;/p&gt;

&lt;p&gt;That experience made me ask one simple question:&lt;/p&gt;

&lt;p&gt;What could I build to make this easier for her?&lt;/p&gt;

&lt;p&gt;That question became this project.&lt;/p&gt;

&lt;p&gt;The Telecom RCA Automation System reduces a task that used to take 2 to 4 hours to about 5 minutes, cutting the workload by more than 95% while improving consistency and reducing manual errors.&lt;/p&gt;

&lt;p&gt;More than anything else, this project is about giving someone I love a few hours of her evening back.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Demo&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://telecom-rca-automation-system.vercel.app" rel="noopener noreferrer"&gt;https://telecom-rca-automation-system.vercel.app&lt;/a&gt;&lt;br&gt;
*&lt;em&gt;🎥 Demo Walkthrough *&lt;/em&gt;&lt;br&gt;&lt;br&gt;
&lt;a href="https://youtu.be/EIdFDKtcIZw" rel="noopener noreferrer"&gt;https://youtu.be/EIdFDKtcIZw&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The video demonstrates the complete workflow, from uploading the telecom availability report to generating the final SLA report, and highlights how Google Gemini AI assists with ambiguous fault classification.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Code&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/tony123117/Telecom-RCA-Automation-System.git" rel="noopener noreferrer"&gt;https://github.com/tony123117/Telecom-RCA-Automation-System.git&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How I Built It&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The application is a 6-step workflow built with React 19, TanStack Start, TypeScript, and Tailwind CSS v4, with Supabase (Postgres + Row Level Security) providing persistence and continuous learning.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Upload&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Upload the raw Huawei RNATracker availability export (.xlsb).&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Configure&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Select the report date, network, states, and availability threshold.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Preview&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Review the filtered list of affected sites before processing begins.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Classify&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Paste the raw WhatsApp fault descriptions from field engineers.&lt;/p&gt;

&lt;p&gt;Each fault passes through an 8-stage classification pipeline in priority order:&lt;/p&gt;

&lt;p&gt;Short-duration rules&lt;br&gt;
Hard overrides&lt;br&gt;
Learned corrections&lt;br&gt;
Partner-aware keyword engine&lt;br&gt;
Google Gemini AI&lt;br&gt;
Partner lock&lt;br&gt;
Site history fallback&lt;br&gt;
Generic fuzzy fallback&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Review&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Inspect and edit classifications with inline editing and keyboard shortcuts.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Export&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Generate a professionally formatted Excel SLA report with:&lt;/p&gt;

&lt;p&gt;Color-coded rows&lt;br&gt;
Auto-filters&lt;br&gt;
Summary statistics&lt;/p&gt;

&lt;p&gt;The exported report is ready for submission with little or no manual editing.&lt;/p&gt;

&lt;p&gt;The Most Challenging Part: Building the Parser&lt;/p&gt;

&lt;p&gt;One of the hardest parts of the project was building a parser capable of understanding the messy WhatsApp messages sent by field engineers.&lt;/p&gt;

&lt;p&gt;These reports are rarely consistent.&lt;/p&gt;

&lt;p&gt;They often contain:&lt;/p&gt;

&lt;p&gt;Glued site IDs with no separators&lt;br&gt;
Missing leading zeros&lt;br&gt;
Nested site groups&lt;br&gt;
Cascade faults&lt;br&gt;
Multiple duration formats&lt;/p&gt;

&lt;p&gt;For example:&lt;/p&gt;

&lt;p&gt;EN0035+25(EN0707,EN0377):&lt;br&gt;
DG fail to start =34mins&lt;/p&gt;

&lt;p&gt;or&lt;/p&gt;

&lt;p&gt;1hr 20mins&lt;/p&gt;

&lt;p&gt;or&lt;/p&gt;

&lt;p&gt;1:20hrs&lt;/p&gt;

&lt;p&gt;The parser automatically extracts:&lt;/p&gt;

&lt;p&gt;Site IDs&lt;br&gt;
Cascade faults&lt;br&gt;
Fault descriptions&lt;br&gt;
Outage durations&lt;/p&gt;

&lt;p&gt;without requiring users to clean or reformat the text first.&lt;/p&gt;

&lt;p&gt;Whenever the parser cannot confidently understand a report, it sends only that fault description to Google Gemini through a secure server-side proxy, ensuring the API key never reaches the client.&lt;/p&gt;

&lt;p&gt;Partner-Aware Classification&lt;/p&gt;

&lt;p&gt;One interesting challenge is that the same fault description doesn't always belong to the same RCA category.&lt;/p&gt;

&lt;p&gt;For example, a fault like "DG fail to start" may belong to different SLA categories depending on whether the affected site is managed by IHS, ATC, or another infrastructure partner.&lt;/p&gt;

&lt;p&gt;Because of this, the classifier is partner-aware first and keyword-based second, allowing it to produce more accurate classifications.&lt;/p&gt;

&lt;p&gt;Continuous Learning&lt;/p&gt;

&lt;p&gt;The system also improves over time.&lt;/p&gt;

&lt;p&gt;Whenever my mom corrects a classification during the review step, that correction is stored in Supabase as a learned mapping.&lt;/p&gt;

&lt;p&gt;The next time a similar fault appears, the application automatically applies the corrected classification without requiring any separate training process.&lt;/p&gt;

&lt;p&gt;Instead of asking users to teach the model, the application quietly learns through normal day-to-day use.&lt;/p&gt;

&lt;p&gt;Why I Used Google Gemini&lt;/p&gt;

&lt;p&gt;I'm submitting this project for Best Use of Google AI.&lt;/p&gt;

&lt;p&gt;Most faults are classified using deterministic rules, making the application extremely fast.&lt;/p&gt;

&lt;p&gt;Only ambiguous or previously unseen fault descriptions are sent to Gemini 2.0 Flash, where it performs structured extraction and intelligent classification.&lt;/p&gt;

&lt;p&gt;To keep the system efficient and affordable, requests are:&lt;/p&gt;

&lt;p&gt;Cached for 7 days&lt;br&gt;
Batched into chunks&lt;br&gt;
Only sent when local rules cannot confidently classify the fault&lt;/p&gt;

&lt;p&gt;This approach combines the speed of rule-based systems with the flexibility of modern AI.&lt;/p&gt;

&lt;p&gt;Impact&lt;/p&gt;

&lt;p&gt;The Telecom RCA Automation System transforms a repetitive, error-prone reporting process into a workflow that takes about 5 minutes instead of 2 to 4 hours.&lt;/p&gt;

&lt;p&gt;It combines intelligent parsing, rule-based automation, continuous learning, and Google Gemini AI to automate telecom RCA and SLA report generation.&lt;/p&gt;

&lt;p&gt;More importantly, it solves a real problem for someone who inspired me to build it in the first place.&lt;/p&gt;

&lt;p&gt;Prize Category&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Best Use of Google AI&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Google Gemini 2.0 Flash powers the intelligent classification of fault descriptions that fall outside local deterministic rules, providing accurate structured extraction while remaining fast and cost-effective through caching and request batching.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Team&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;DEV Username:&lt;/strong&gt; &lt;a class="mentioned-user" href="https://dev.to/tony_dev"&gt;@tony_dev&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I am the sole developer on this project. I handled the design, development, classification logic, AI integration, database architecture, testing, and deployment.&lt;/p&gt;

&lt;p&gt;PASSWORD: 4cCyU6D***&lt;br&gt;
email: &lt;a href="mailto:arum200909@gmail.com"&gt;arum200909@gmail.com&lt;/a&gt;&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>weekendchallenge</category>
    </item>
  </channel>
</rss>
