<?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: Debjit Chandra Sarkar</title>
    <description>The latest articles on DEV Community by Debjit Chandra Sarkar (@debjit_chandrasarkar_5ed).</description>
    <link>https://dev.to/debjit_chandrasarkar_5ed</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%2F3913864%2F4fb7d17d-7675-4cc1-8fb1-3d2321c7b011.jpg</url>
      <title>DEV Community: Debjit Chandra Sarkar</title>
      <link>https://dev.to/debjit_chandrasarkar_5ed</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/debjit_chandrasarkar_5ed"/>
    <language>en</language>
    <item>
      <title>MeetOps — From an Unfinished MVP to an AI-Powered Workplace Operations Platform</title>
      <dc:creator>Debjit Chandra Sarkar</dc:creator>
      <pubDate>Sun, 07 Jun 2026 22:59:48 +0000</pubDate>
      <link>https://dev.to/debjit_chandrasarkar_5ed/meetops-from-an-unfinished-mvp-to-an-ai-powered-workplace-operations-platform-ff4</link>
      <guid>https://dev.to/debjit_chandrasarkar_5ed/meetops-from-an-unfinished-mvp-to-an-ai-powered-workplace-operations-platform-ff4</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for the GitHub Finish-Up-A-Thon Challenge&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What I Built&lt;/strong&gt;&lt;br&gt;
MeetOps is an AI-powered meeting room operations platform designed to solve one of the most common workplace frustrations: managing shared meeting spaces without scheduling conflicts, visibility issues, or fragmented communication.&lt;/p&gt;

&lt;p&gt;Most organizations still rely on spreadsheets, chat messages, emails, or disconnected tools to manage meeting rooms. This often leads to double bookings, wasted time, approval bottlenecks, and poor visibility across teams.&lt;/p&gt;

&lt;p&gt;MeetOps centralizes the entire process into a single platform where employees can:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;View room availability in real time&lt;/li&gt;
&lt;li&gt;Book meeting rooms instantly&lt;/li&gt;
&lt;li&gt;Prevent scheduling conflicts automatically&lt;/li&gt;
&lt;li&gt;View organization-wide bookings&lt;/li&gt;
&lt;li&gt;Manage approvals through role-based workflows&lt;/li&gt;
&lt;li&gt;Access booking information through a shared calendar&lt;/li&gt;
&lt;li&gt;Get assistance from an AI-powered meeting assistant&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The project evolved from a basic room-booking MVP into a much more complete workplace operations solution that feels closer to a real enterprise SaaS product.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Demo&lt;/strong&gt;&lt;br&gt;
Live Application&lt;br&gt;
🚀 &lt;a href="https://meet-ops.vercel.app/" rel="noopener noreferrer"&gt;Meetops&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;GitHub Repository&lt;/strong&gt;&lt;br&gt;
💻 &lt;a href="https://github.com/Debjitds/MeetOps.git" rel="noopener noreferrer"&gt;MeetOps&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Demo Video&lt;/strong&gt;&lt;br&gt;
🎥 &lt;a href="https://youtu.be/L8Tm49B3Rj8" rel="noopener noreferrer"&gt;YouTube link&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Before&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.amazonaws.com%2Fuploads%2Farticles%2Ff6g9h8blu9vg75gfqwfo.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%2Ff6g9h8blu9vg75gfqwfo.png" alt=" " width="800" height="441"&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%2Fil1c2ud3dhtnibsdtqoh.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%2Fil1c2ud3dhtnibsdtqoh.png" alt=" " width="800" height="506"&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%2Foud4dk4ib675hn2iug60.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%2Foud4dk4ib675hn2iug60.png" alt=" " width="800" height="441"&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%2Fdq8o9uplqnpb1xw4rhjc.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%2Fdq8o9uplqnpb1xw4rhjc.png" alt=" " width="800" height="441"&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%2Ffu5v3zjg4strlm1lck0b.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%2Ffu5v3zjg4strlm1lck0b.png" alt=" " width="800" height="441"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;After&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.amazonaws.com%2Fuploads%2Farticles%2Fmvk2mh68i0mgsx5qhggj.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%2Fmvk2mh68i0mgsx5qhggj.png" alt=" " width="800" height="787"&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%2Fzj3h19x89evg2g18djhp.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%2Fzj3h19x89evg2g18djhp.png" alt=" " width="800" height="750"&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%2F63ib3si6kslbna35uu2r.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%2F63ib3si6kslbna35uu2r.png" alt=" " width="799" height="446"&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%2Fbz586zl67nbbog0kpwii.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%2Fbz586zl67nbbog0kpwii.png" alt=" " width="800" height="441"&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%2Fqqm33cz3zme1qbzz1nft.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%2Fqqm33cz3zme1qbzz1nft.png" alt=" " width="800" height="890"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Core Features&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;✅ AI Meeting Booking Assistant&lt;/p&gt;

&lt;p&gt;✅ Real-Time Room Availability&lt;/p&gt;

&lt;p&gt;✅ Shared Booking Visibility&lt;/p&gt;

&lt;p&gt;✅ Smart Conflict Detection&lt;/p&gt;

&lt;p&gt;✅ Role-Based Access Control&lt;/p&gt;

&lt;p&gt;✅ Admin Approval Workflow&lt;/p&gt;

&lt;p&gt;✅ Meeting Calendar with Detailed Booking Views&lt;/p&gt;

&lt;p&gt;✅ Room Utilization Dashboard&lt;/p&gt;

&lt;p&gt;✅ Responsive Enterprise UI&lt;/p&gt;

&lt;p&gt;✅ Light &amp;amp; Dark Mode&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;The Comeback Story&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;When I started this challenge, MeetOps already existed as a partially completed project.&lt;/p&gt;

&lt;p&gt;The core booking functionality was present, but the application still lacked many of the capabilities needed for real-world usage.&lt;/p&gt;

&lt;p&gt;Some of the biggest gaps included:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Limited booking visibility between users&lt;/li&gt;
&lt;li&gt;Weak protection against scheduling conflicts&lt;/li&gt;
&lt;li&gt;Incomplete calendar interactions&lt;/li&gt;
&lt;li&gt;Missing booking details workflow&lt;/li&gt;
&lt;li&gt;Unpolished user experience&lt;/li&gt;
&lt;li&gt;Inconsistent interface design&lt;/li&gt;
&lt;li&gt;No complete AI assistant experience&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Rather than starting a new project, I decided to finish something I had already invested time in and push it closer to production quality.&lt;/p&gt;

&lt;p&gt;Over the course of the challenge I:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Improved Booking Transparency&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Implemented shared booking visibility so users can clearly see room occupancy before attempting reservations.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Strengthened Conflict Prevention&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Added overlap detection and booking validation to reduce scheduling collisions and double-booking issues.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Enhanced Calendar Experience&lt;/strong&gt;&lt;br&gt;
Built detailed booking views that allow users to inspect meeting information directly from calendar events.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Added AI-Powered Assistance&lt;/strong&gt;&lt;br&gt;
Integrated an AI booking assistant interface capable of helping users navigate room scheduling workflows.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Redesigned the Product Experience&lt;/strong&gt;&lt;br&gt;
Refined multiple pages including:&lt;/p&gt;

&lt;p&gt;Dashboard&lt;/p&gt;

&lt;p&gt;Rooms Management&lt;/p&gt;

&lt;p&gt;Meetings&lt;/p&gt;

&lt;p&gt;Calendar&lt;/p&gt;

&lt;p&gt;Admin Panel&lt;/p&gt;

&lt;p&gt;Settings&lt;/p&gt;

&lt;p&gt;Booking Flows&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Added Theme Support&lt;/strong&gt;&lt;br&gt;
Implemented Light Mode and Dark Mode to improve usability across different working environments.&lt;/p&gt;

&lt;p&gt;By the end of the challenge, MeetOps transformed from a partially finished MVP into a significantly more polished and complete workplace operations platform.&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;My Experience with GitHub Copilot&lt;/strong&gt;&lt;br&gt;
GitHub Copilot became a major part of my development workflow throughout this challenge.&lt;/p&gt;

&lt;p&gt;I used Copilot to accelerate development across both frontend and backend tasks, including:&lt;/p&gt;

&lt;p&gt;Component generation&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;UI refinement&lt;/li&gt;
&lt;li&gt;TypeScript troubleshooting&lt;/li&gt;
&lt;li&gt;Code refactoring&lt;/li&gt;
&lt;li&gt;State management improvements&lt;/li&gt;
&lt;li&gt;Form validation&lt;/li&gt;
&lt;li&gt;Bug fixing&lt;/li&gt;
&lt;li&gt;Deployment preparation&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;One area where Copilot was particularly valuable was during rapid iteration.&lt;/p&gt;

&lt;p&gt;As I refined dashboards, booking workflows, calendar interactions, role management, and AI assistant features, Copilot helped reduce repetitive coding work and allowed me to focus more on product decisions and user experience improvements.&lt;/p&gt;

&lt;p&gt;The challenge itself is called Finish-Up-A-Thon, and GitHub Copilot played an important role in helping me actually finish the project rather than leaving it in an unfinished state.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Tech Stack&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Frontend&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;React&lt;/li&gt;
&lt;li&gt;TypeScript&lt;/li&gt;
&lt;li&gt;Vite&lt;/li&gt;
&lt;li&gt;Tailwind CSS&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Backend&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Supabase&lt;/li&gt;
&lt;li&gt;PostgreSQL&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;AI&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Google Gemini&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Deployment&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Vercel&lt;/li&gt;
&lt;/ul&gt;

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

&lt;p&gt;The biggest lesson from this challenge was that finishing a project is often harder than starting one.&lt;/p&gt;

&lt;p&gt;MeetOps began as an unfinished idea and became a much more complete product through continuous refinement, debugging, redesign, and feature improvements.&lt;/p&gt;

&lt;p&gt;This challenge gave me the perfect opportunity to revisit an existing project, solve its biggest weaknesses, and finally bring it to a state that I'm proud to share.&lt;/p&gt;

&lt;p&gt;Thank you to GitHub and the DEV Community for organizing the Finish-Up-A-Thon challenge.&lt;/p&gt;

&lt;h1&gt;
  
  
  githubcopilot #hackathon #webdev #ai #react #typescript #supabase #productivity #saas #opensource
&lt;/h1&gt;

</description>
      <category>devchallenge</category>
      <category>githubchallenge</category>
    </item>
    <item>
      <title>MeetOps — From an Unfinished MVP to an AI-Powered Workplace Operations Platform</title>
      <dc:creator>Debjit Chandra Sarkar</dc:creator>
      <pubDate>Sun, 07 Jun 2026 22:39:47 +0000</pubDate>
      <link>https://dev.to/debjit_chandrasarkar_5ed/meetops-from-an-unfinished-mvp-to-an-ai-powered-workplace-operations-platform-762</link>
      <guid>https://dev.to/debjit_chandrasarkar_5ed/meetops-from-an-unfinished-mvp-to-an-ai-powered-workplace-operations-platform-762</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for the GitHub Finish-Up-A-Thon Challenge&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What I Built&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;MeetOps is an AI-powered meeting room operations platform designed to solve one of the most common workplace frustrations: managing shared meeting spaces without scheduling conflicts, visibility issues, or fragmented communication.&lt;/p&gt;

&lt;p&gt;Most organizations still rely on spreadsheets, chat messages, emails, or disconnected tools to manage meeting rooms. This often leads to double bookings, wasted time, approval bottlenecks, and poor visibility across teams.&lt;/p&gt;

&lt;p&gt;MeetOps centralizes the entire process into a single platform where employees can:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt; View room availability in real time&lt;/li&gt;
&lt;li&gt; Book meeting rooms instantly&lt;/li&gt;
&lt;li&gt; Prevent scheduling conflicts automatically&lt;/li&gt;
&lt;li&gt; View organization-wide bookings&lt;/li&gt;
&lt;li&gt; Manage approvals through role-based workflows&lt;/li&gt;
&lt;li&gt; Access booking information through a shared calendar&lt;/li&gt;
&lt;li&gt; Get assistance from an AI-powered meeting assistant&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The project evolved from a basic room-booking MVP into a much more complete workplace operations solution that feels closer to a real enterprise SaaS product.&lt;/p&gt;




&lt;p&gt;** Demo**&lt;/p&gt;

&lt;p&gt;** Live Application**&lt;/p&gt;

&lt;p&gt;🚀 &lt;a href="https://meet-ops.vercel.app/" rel="noopener noreferrer"&gt;https://meet-ops.vercel.app/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;** GitHub Repository**&lt;/p&gt;

&lt;p&gt;💻 &lt;a href="https://github.com/Debjitds/MeetOps.git" rel="noopener noreferrer"&gt;https://github.com/Debjitds/MeetOps.git&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;** Demo Video**&lt;/p&gt;

&lt;p&gt;🎥 &lt;a href="https://youtu.be/L8Tm49B3Rj8" rel="noopener noreferrer"&gt;https://youtu.be/L8Tm49B3Rj8&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;** Core Features**&lt;/p&gt;

&lt;p&gt;✅ AI Meeting Booking Assistant&lt;/p&gt;

&lt;p&gt;✅ Real-Time Room Availability&lt;/p&gt;

&lt;p&gt;✅ Shared Booking Visibility&lt;/p&gt;

&lt;p&gt;✅ Smart Conflict Detection&lt;/p&gt;

&lt;p&gt;✅ Role-Based Access Control&lt;/p&gt;

&lt;p&gt;✅ Admin Approval Workflow&lt;/p&gt;

&lt;p&gt;✅ Meeting Calendar with Detailed Booking Views&lt;/p&gt;

&lt;p&gt;✅ Room Utilization Dashboard&lt;/p&gt;

&lt;p&gt;✅ Responsive Enterprise UI&lt;/p&gt;

&lt;p&gt;✅ Light &amp;amp; Dark Mode&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;Before&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.amazonaws.com%2Fuploads%2Farticles%2Flj2o7cvajy4sizthr6jg.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%2Flj2o7cvajy4sizthr6jg.png" alt=" " width="800" height="441"&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%2Fo00rhv7xd3lq00vf6bvc.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%2Fo00rhv7xd3lq00vf6bvc.png" alt=" " width="800" height="441"&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%2Fyqvoeoipmtrvsfp4v6eu.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%2Fyqvoeoipmtrvsfp4v6eu.png" alt=" " width="800" height="441"&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%2F6mxnxsei02fgnqcrcjft.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%2F6mxnxsei02fgnqcrcjft.png" alt=" " width="800" height="506"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;After&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.amazonaws.com%2Fuploads%2Farticles%2Fbwkh6duxn3lo8btw5yhe.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%2Fbwkh6duxn3lo8btw5yhe.png" alt=" " width="800" height="787"&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%2F42nr7dlgvd75vb84r1gu.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%2F42nr7dlgvd75vb84r1gu.png" alt=" " width="800" height="750"&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%2Fkarzkahx9fd60h4tj6vp.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%2Fkarzkahx9fd60h4tj6vp.png" alt=" " width="799" height="446"&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%2Fm32kb5he9x26wpz28dtx.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%2Fm32kb5he9x26wpz28dtx.png" alt=" " width="800" height="441"&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%2Fljtd1incbphuv2k82inx.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%2Fljtd1incbphuv2k82inx.png" alt=" " width="800" height="890"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;** The Comeback Story**&lt;/p&gt;

&lt;p&gt;When I started this challenge, MeetOps already existed as a partially completed project.&lt;/p&gt;

&lt;p&gt;The core booking functionality was present, but the application still lacked many of the capabilities needed for real-world usage.&lt;/p&gt;

&lt;p&gt;Some of the biggest gaps included:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt; Limited booking visibility between users&lt;/li&gt;
&lt;li&gt; Weak protection against scheduling conflicts&lt;/li&gt;
&lt;li&gt; Incomplete calendar interactions&lt;/li&gt;
&lt;li&gt; Missing booking details workflow&lt;/li&gt;
&lt;li&gt; Unpolished user experience&lt;/li&gt;
&lt;li&gt; Inconsistent interface design&lt;/li&gt;
&lt;li&gt; No complete AI assistant experience&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Rather than starting a new project, I decided to finish something I had already invested time in and push it closer to production quality.&lt;/p&gt;

&lt;p&gt;Over the course of the challenge I:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Improved Booking Transparency&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Implemented shared booking visibility so users can clearly see room occupancy before attempting reservations.&lt;/p&gt;

&lt;p&gt;** Strengthened Conflict Prevention**&lt;/p&gt;

&lt;p&gt;Added overlap detection and booking validation to reduce scheduling collisions and double-booking issues.&lt;/p&gt;

&lt;p&gt;** Enhanced Calendar Experience**&lt;/p&gt;

&lt;p&gt;Built detailed booking views that allow users to inspect meeting information directly from calendar events.&lt;/p&gt;

&lt;p&gt;** Added AI-Powered Assistance**&lt;/p&gt;

&lt;p&gt;Integrated an AI booking assistant interface capable of helping users navigate room scheduling workflows.&lt;/p&gt;

&lt;p&gt;** Redesigned the Product Experience**&lt;/p&gt;

&lt;p&gt;Refined multiple pages including:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt; Dashboard&lt;/li&gt;
&lt;li&gt; Rooms Management&lt;/li&gt;
&lt;li&gt; Meetings&lt;/li&gt;
&lt;li&gt; Calendar&lt;/li&gt;
&lt;li&gt; Admin Panel&lt;/li&gt;
&lt;li&gt; Settings&lt;/li&gt;
&lt;li&gt; Booking Flows&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;** Added Theme Support**&lt;/p&gt;

&lt;p&gt;Implemented Light Mode and Dark Mode to improve usability across different working environments.&lt;/p&gt;

&lt;p&gt;By the end of the challenge, MeetOps transformed from a partially finished MVP into a significantly more polished and complete workplace operations platform.&lt;/p&gt;




&lt;p&gt;** My Experience with GitHub Copilot**&lt;/p&gt;

&lt;p&gt;GitHub Copilot became a major part of my development workflow throughout this challenge.&lt;/p&gt;

&lt;p&gt;I used Copilot to accelerate development across both frontend and backend tasks, including:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt; Component generation&lt;/li&gt;
&lt;li&gt; UI refinement&lt;/li&gt;
&lt;li&gt; TypeScript troubleshooting&lt;/li&gt;
&lt;li&gt; Code refactoring&lt;/li&gt;
&lt;li&gt; State management improvements&lt;/li&gt;
&lt;li&gt; Form validation&lt;/li&gt;
&lt;li&gt; Bug fixing&lt;/li&gt;
&lt;li&gt; Deployment preparation&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;One area where Copilot was particularly valuable was during rapid iteration.&lt;/p&gt;

&lt;p&gt;As I refined dashboards, booking workflows, calendar interactions, role management, and AI assistant features, Copilot helped reduce repetitive coding work and allowed me to focus more on product decisions and user experience improvements.&lt;/p&gt;

&lt;p&gt;The challenge itself is called Finish-Up-A-Thon, and GitHub Copilot played an important role in helping me actually finish the project rather than leaving it in an unfinished state.&lt;/p&gt;




&lt;p&gt;** Tech Stack**&lt;/p&gt;

&lt;p&gt;** Frontend**&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt; React&lt;/li&gt;
&lt;li&gt; TypeScript&lt;/li&gt;
&lt;li&gt; Vite&lt;/li&gt;
&lt;li&gt; Tailwind CSS&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;** Backend**&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt; Supabase&lt;/li&gt;
&lt;li&gt; PostgreSQL&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;** AI**&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt; Google Gemini&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;** Deployment**&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt; Vercel&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;** Final Thoughts**&lt;/p&gt;

&lt;p&gt;The biggest lesson from this challenge was that finishing a project is often harder than starting one.&lt;/p&gt;

&lt;p&gt;MeetOps began as an unfinished idea and became a much more complete product through continuous refinement, debugging, redesign, and feature improvements.&lt;/p&gt;

&lt;p&gt;This challenge gave me the perfect opportunity to revisit an existing project, solve its biggest weaknesses, and finally bring it to a state that I'm proud to share.&lt;/p&gt;

&lt;p&gt;Thank you to GitHub and the DEV Community for organizing the Finish-Up-A-Thon challenge.&lt;/p&gt;

&lt;h1&gt;
  
  
  githubcopilot #hackathon #webdev #ai #react #typescript #supabase #productivity #saas #opensource
&lt;/h1&gt;

</description>
      <category>devchallenge</category>
      <category>githubchallenge</category>
    </item>
    <item>
      <title>How I built an AI-powered office booking system with MeDo — zero code written</title>
      <dc:creator>Debjit Chandra Sarkar</dc:creator>
      <pubDate>Tue, 05 May 2026 11:59:23 +0000</pubDate>
      <link>https://dev.to/debjit_chandrasarkar_5ed/how-i-built-an-ai-powered-office-booking-system-with-medo-zero-code-written-b2p</link>
      <guid>https://dev.to/debjit_chandrasarkar_5ed/how-i-built-an-ai-powered-office-booking-system-with-medo-zero-code-written-b2p</guid>
      <description>&lt;h1&gt;
  
  
  How I Built an AI-Powered Office Booking System with MeDo — Zero Code Written
&lt;/h1&gt;

&lt;p&gt;If you've ever walked into a meeting room you booked &lt;br&gt;
days ago only to find another team already in there &lt;br&gt;
— you know exactly why I built MeetOps.&lt;/p&gt;

&lt;p&gt;Double bookings. Scattered spreadsheets. Zero &lt;br&gt;
visibility into who has what room and when. It's &lt;br&gt;
one of those problems every office has but nobody &lt;br&gt;
has properly solved for small and mid-size teams.&lt;/p&gt;

&lt;p&gt;So for the &lt;strong&gt;Build with MeDo Hackathon&lt;/strong&gt;, I decided &lt;br&gt;
to build MeetOps — a centralized AI-powered office &lt;br&gt;
room booking system. The twist? I built the entire &lt;br&gt;
thing using MeDo's conversational full-stack builder. &lt;br&gt;
&lt;strong&gt;Zero lines of code written. Not one.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Here's the full story.&lt;/p&gt;




&lt;h2&gt;
  
  
  🏢 The Problem MeetOps Solves
&lt;/h2&gt;

&lt;p&gt;Organizations waste hours every week dealing with:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Double-booked rooms&lt;/strong&gt; with no conflict prevention&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Manual scheduling&lt;/strong&gt; via spreadsheets and Slack threads&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Zero visibility&lt;/strong&gt; into who has booked what and when&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;No approval workflows&lt;/strong&gt; — anyone books anything without oversight&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Language barriers&lt;/strong&gt; for multinational and multicultural teams&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;MeetOps eliminates all of this with a single &lt;br&gt;
centralized platform that combines real-time conflict &lt;br&gt;
detection, structured approval workflows, a live &lt;br&gt;
shared calendar, and an AI booking assistant that &lt;br&gt;
lets users book rooms through natural language.&lt;/p&gt;




&lt;h2&gt;
  
  
  🏗️ How I Structured Conversations with MeDo
&lt;/h2&gt;

&lt;p&gt;The biggest lesson I learned early: &lt;strong&gt;MeDo works &lt;br&gt;
best when you treat each feature as its own focused &lt;br&gt;
conversation.&lt;/strong&gt; One giant prompt trying to build &lt;br&gt;
everything at once produces mediocre results. &lt;br&gt;
Feature-by-feature conversations produce excellent ones.&lt;/p&gt;

&lt;p&gt;Here's exactly how I broke the build down:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Conversation 1 — Foundation&lt;/strong&gt;&lt;br&gt;
Authentication system (register, login, logout, &lt;br&gt;
password reset) and role-based access control &lt;br&gt;
(Admin, Manager, User) with permissions enforced &lt;br&gt;
at both UI and data levels.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Conversation 2 — Core Booking Engine&lt;/strong&gt;&lt;br&gt;
Resource management (Admin CRUD), booking creation &lt;br&gt;
form with date/time selection, and the conflict &lt;br&gt;
detection logic that prevents overlapping bookings.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Conversation 3 — Approval Workflow&lt;/strong&gt;&lt;br&gt;
State machine: Pending → Approved / Rejected → &lt;br&gt;
auto-archived as Completed when the meeting ends. &lt;br&gt;
Only Managers and Admins can approve. Every &lt;br&gt;
transition logged with timestamp and reviewer identity.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Conversation 4 — Calendar and Notifications&lt;/strong&gt;&lt;br&gt;
Shared live calendar with month/week/day views, &lt;br&gt;
color-coded by booking status. In-app notification &lt;br&gt;
system scoped by role — Admins see everything, &lt;br&gt;
Users see only their own.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Conversation 5 — LLM Plugin Integration&lt;/strong&gt;&lt;br&gt;
AI Booking Assistant as a floating chat widget, &lt;br&gt;
AI Meeting Agenda Generator on the booking form, &lt;br&gt;
and Admin AI Utilization Insights on the dashboard.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Conversation 6 — Google Translation Plugin&lt;/strong&gt;&lt;br&gt;
Full multilingual UI across 10 languages with &lt;br&gt;
real API calls, per-language caching, and Arabic &lt;br&gt;
RTL layout support.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Conversation 7 — Landing Page and Design System&lt;/strong&gt;&lt;br&gt;
Public landing page and the neo-brutalist design &lt;br&gt;
system applied across every page — checkerboard &lt;br&gt;
background, hard offset shadows, golden amber &lt;br&gt;
buttons, zero border-radius anywhere.&lt;/p&gt;




&lt;h2&gt;
  
  
  🐛 The Hardest Bugs I Fixed Through Prompts
&lt;/h2&gt;

&lt;p&gt;This is the part nobody talks about in hackathon &lt;br&gt;
write-ups. Bugs. Here are the three hardest ones &lt;br&gt;
I faced and exactly how I fixed them through &lt;br&gt;
prompt engineering.&lt;/p&gt;

&lt;h3&gt;
  
  
  Bug 1 — The IST Timezone Disaster (UTC+5:30)
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;The symptom:&lt;/strong&gt; User asks LLM to book a room &lt;br&gt;
from 10:00 AM to 11:30 AM. Booking details show &lt;br&gt;
3:30 PM to 5:00 PM. Exactly 5 hours and 30 minutes &lt;br&gt;
ahead — which is precisely the IST offset.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The root cause:&lt;/strong&gt; The LLM was extracting the &lt;br&gt;
correct time from the user's message but then &lt;br&gt;
constructing the datetime using &lt;code&gt;.toISOString()&lt;/code&gt; &lt;br&gt;
which always outputs UTC. When this UTC timestamp &lt;br&gt;
was stored and then displayed in the browser &lt;br&gt;
running in IST, it added 5:30 hours — making &lt;br&gt;
every booking appear wrong.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The fix prompt I used:&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"The LLM booking creation is calling &lt;br&gt;
&lt;code&gt;.toISOString()&lt;/code&gt; which converts the extracted &lt;br&gt;
local time to UTC before storing. Replace this &lt;br&gt;
with a plain local datetime string in the format &lt;br&gt;
YYYY-MM-DDTHH:mm:ss with no Z suffix and no &lt;br&gt;
timezone conversion. The LLM booking path must &lt;br&gt;
use the exact same booking creation function as &lt;br&gt;
the manual form which already works correctly."&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;The lesson:&lt;/strong&gt; Always name the specific broken &lt;br&gt;
function or method in your fix prompt. "Fix the &lt;br&gt;
timezone bug" produces a guess. "Stop using &lt;br&gt;
&lt;code&gt;.toISOString()&lt;/code&gt; and use this format instead" &lt;br&gt;
produces the correct fix.&lt;/p&gt;




&lt;h3&gt;
  
  
  Bug 2 — LLM Forgetting Bookings After Page Refresh
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;The symptom:&lt;/strong&gt; User books a room through the &lt;br&gt;
AI assistant. Refreshes the page. Asks "show me &lt;br&gt;
my bookings." Assistant says no bookings exist — &lt;br&gt;
even though the booking is in the database.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The root cause:&lt;/strong&gt; The LLM was relying on &lt;br&gt;
conversation history to answer questions about &lt;br&gt;
bookings. When the page refreshed, chat history &lt;br&gt;
cleared, and the assistant had no data. It was &lt;br&gt;
echoing back what the user had said in previous &lt;br&gt;
messages — not reading from the database.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The fix prompt I used:&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"On every single message sent to the LLM &lt;br&gt;
assistant, before processing the message, &lt;br&gt;
fetch fresh data from the database and inject &lt;br&gt;
it into the LLM system prompt: all rooms, all &lt;br&gt;
active bookings across all users, and the &lt;br&gt;
current user's complete booking history. The &lt;br&gt;
assistant must never rely on conversation &lt;br&gt;
history for factual data — only on the freshly &lt;br&gt;
injected database context."&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;The lesson:&lt;/strong&gt; An LLM that reads from chat &lt;br&gt;
history instead of live data is a ticking time &lt;br&gt;
bomb. Always inject fresh context on every request.&lt;/p&gt;




&lt;h3&gt;
  
  
  Bug 3 — Calendar Showing "undefined" Instead of User Names
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;The symptom:&lt;/strong&gt; Calendar events showing &lt;br&gt;
"Room 11 — undefined" instead of "Room 11 — Joy"&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The root cause:&lt;/strong&gt; The calendar was fetching &lt;br&gt;
booking records but not resolving the associated &lt;br&gt;
user data. The user name field was being read &lt;br&gt;
before the user object was fetched — returning &lt;br&gt;
undefined.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The fix prompt I used:&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"The calendar event rendering is reading the &lt;br&gt;
user name before the user data is resolved. &lt;br&gt;
Fix the data fetching so that when bookings &lt;br&gt;
are loaded for the calendar, the associated &lt;br&gt;
user record for each booking is also fetched &lt;br&gt;
and fully resolved before the events are &lt;br&gt;
rendered. Every calendar event must show the &lt;br&gt;
actual user's name — never undefined."&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;The lesson:&lt;/strong&gt; Describe what the data should &lt;br&gt;
look like when it arrives, not just that something &lt;br&gt;
is broken. "Never undefined" is a clear acceptance &lt;br&gt;
criterion that MeDo can test against.&lt;/p&gt;




&lt;h2&gt;
  
  
  🔌 How the Two Plugins Work Inside MeetOps
&lt;/h2&gt;

&lt;h3&gt;
  
  
  LLM Plugin — AI Booking Assistant
&lt;/h3&gt;

&lt;p&gt;The LLM plugin powers four features:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. Natural Language Booking&lt;/strong&gt;&lt;br&gt;
Users open the floating chat widget and type &lt;br&gt;
requests like &lt;em&gt;"Book me Room 11 for tomorrow at &lt;br&gt;
10AM for a team standup with 5 people."&lt;/em&gt; The &lt;br&gt;
assistant checks live availability, detects &lt;br&gt;
conflicts, shows a confirmation, and creates the &lt;br&gt;
booking on confirmation.&lt;/p&gt;

&lt;p&gt;The key technical detail: on every message, fresh &lt;br&gt;
data is fetched from the database and injected &lt;br&gt;
into the LLM system prompt — all rooms, all active &lt;br&gt;
bookings, and the current user's history. The &lt;br&gt;
assistant never guesses. It always works from &lt;br&gt;
real-time ground truth.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. Conflict Explanation&lt;/strong&gt;&lt;br&gt;
When a room is taken, instead of a generic red &lt;br&gt;
error, the LLM generates: &lt;em&gt;"Room 11 is booked &lt;br&gt;
from 2PM to 3:30PM by Debjit. The next available &lt;br&gt;
slot is 3:30PM. Room 15 is also free during your &lt;br&gt;
requested time."&lt;/em&gt; A frustrating error becomes &lt;br&gt;
a helpful conversation.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. AI Meeting Agenda Generator&lt;/strong&gt;&lt;br&gt;
On the booking form, users click "Generate Agenda &lt;br&gt;
with AI." The LLM takes the purpose field and &lt;br&gt;
generates a 3–5 point professional meeting agenda &lt;br&gt;
instantly. Sets teams up for productive meetings &lt;br&gt;
before anyone walks in the door.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;4. Admin AI Utilization Insights&lt;/strong&gt;&lt;br&gt;
Admins click "Generate Insights" on the dashboard. &lt;br&gt;
The LLM analyzes booking data and produces a &lt;br&gt;
plain English summary: busiest days, most and &lt;br&gt;
least used rooms, and one actionable recommendation.&lt;/p&gt;




&lt;h3&gt;
  
  
  Google Text Translation Plugin — Full Multilingual UI
&lt;/h3&gt;

&lt;p&gt;The translation plugin supports 10 languages:&lt;br&gt;
English, Hindi, Bengali, Tamil, Spanish, French, &lt;br&gt;
Arabic, Chinese, Japanese, and German.&lt;/p&gt;

&lt;p&gt;What makes this implementation genuinely useful &lt;br&gt;
rather than a gimmick:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Everything translates&lt;/strong&gt; — not just the chat. 
Navigation, buttons, table headers, status badges, 
form labels, validation errors, toast messages, 
and system notifications all translate via real 
API calls&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;No hardcoded strings&lt;/strong&gt; — every translation 
comes from the Google Translation API, cached 
per language to prevent redundant calls&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Persists across sessions&lt;/strong&gt; — language preference 
saved to the user's database profile, not 
localStorage. Works on any device after login&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Arabic triggers RTL&lt;/strong&gt; — switching to Arabic 
flips the entire app layout right-to-left. 
Sidebar moves to the right, all text aligns 
right, every layout reverses&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  💡 What I Learned About Prompt Engineering as a Dev Methodology
&lt;/h2&gt;

&lt;p&gt;After building an entire production SaaS through &lt;br&gt;
prompting alone, here's what actually works:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. Structure every fix prompt with three parts&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Root cause (what is actually broken and why)&lt;/li&gt;
&lt;li&gt;Fix instruction (exactly what to change)&lt;/li&gt;
&lt;li&gt;Acceptance criteria (what correct behavior looks like)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Vague prompts produce vague fixes. Precise prompts &lt;br&gt;
produce precise fixes.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. One feature per conversation&lt;/strong&gt;&lt;br&gt;
Starting a new conversation for each major feature &lt;br&gt;
keeps MeDo focused. Mixing five features into one &lt;br&gt;
prompt produces a tangled output that's hard to &lt;br&gt;
debug.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. Call out the specific broken code pattern&lt;/strong&gt;&lt;br&gt;
Instead of "fix the timezone bug" — write "stop &lt;br&gt;
using &lt;code&gt;.toISOString()&lt;/code&gt; and use this format instead: &lt;br&gt;
&lt;code&gt;YYYY-MM-DDTHH:mm:ss&lt;/code&gt;." Naming the specific pattern &lt;br&gt;
that's broken eliminates guessing.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;4. Acceptance criteria prevents fake fixes&lt;/strong&gt;&lt;br&gt;
MeDo can sometimes produce frontend-only workarounds &lt;br&gt;
that look correct but don't actually fix the &lt;br&gt;
underlying data issue. Writing explicit acceptance &lt;br&gt;
criteria like "this must be a real database write, &lt;br&gt;
not a frontend calculation" forces a genuine fix.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;5. The confirmation step saves everything&lt;/strong&gt;&lt;br&gt;
For any AI-driven action (booking creation, &lt;br&gt;
cancellation), always build in a confirmation step &lt;br&gt;
before execution. It catches misinterpretation &lt;br&gt;
before damage is done.&lt;/p&gt;




&lt;h2&gt;
  
  
  🎯 Final Result
&lt;/h2&gt;

&lt;p&gt;MeetOps is a fully deployed, production-quality &lt;br&gt;
AI-powered office room booking system built with &lt;br&gt;
zero lines of manual code.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Try it live:&lt;/strong&gt;&lt;br&gt;
🔗 &lt;a href="https://app-b5rmjd5bhh4x.appmedo.com" rel="noopener noreferrer"&gt;https://app-b5rmjd5bhh4x.appmedo.com&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Test credentials:&lt;/strong&gt;&lt;br&gt;
  Admin: admin / DEBjit737362! User: user / DEBjit737362!&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Watch the demo:&lt;/strong&gt;&lt;br&gt;
🎥 &lt;a href="https://youtu.be/_RSBLRvmJ38" rel="noopener noreferrer"&gt;https://youtu.be/_RSBLRvmJ38&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;If you're considering building with MeDo — do it. &lt;br&gt;
The barrier to building complex software is gone. &lt;br&gt;
The only skill that matters now is knowing how to &lt;br&gt;
describe what you want with precision.&lt;/p&gt;

&lt;p&gt;That's prompt engineering. And it's worth learning.&lt;/p&gt;

&lt;h1&gt;
  
  
  BuiltWithMeDo #MeetOps  #Hackathon
&lt;/h1&gt;

&lt;h1&gt;
  
  
  WorkAndProductivity
&lt;/h1&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%2Fjjriztt1fnde6llc4faz.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%2Fjjriztt1fnde6llc4faz.png" alt=" " width="800" height="441"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>builtwithmedo</category>
      <category>medo</category>
      <category>hackathon</category>
      <category>productivity</category>
    </item>
  </channel>
</rss>
