<?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: Sayuri Kotikawaththa</title>
    <description>The latest articles on DEV Community by Sayuri Kotikawaththa (@sayuri_kotikawaththa_).</description>
    <link>https://dev.to/sayuri_kotikawaththa_</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%2F3857589%2Fb6e795d5-9964-420b-83e9-5becb63eeea7.jpeg</url>
      <title>DEV Community: Sayuri Kotikawaththa</title>
      <link>https://dev.to/sayuri_kotikawaththa_</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/sayuri_kotikawaththa_"/>
    <language>en</language>
    <item>
      <title>[Boost]</title>
      <dc:creator>Sayuri Kotikawaththa</dc:creator>
      <pubDate>Thu, 30 Apr 2026 05:00:46 +0000</pubDate>
      <link>https://dev.to/sayuri_kotikawaththa_/-22b3</link>
      <guid>https://dev.to/sayuri_kotikawaththa_/-22b3</guid>
      <description>&lt;div class="ltag__link--embedded"&gt;
  &lt;div class="crayons-story "&gt;
  &lt;a href="https://dev.to/googleai/how-i-used-gemini-cli-to-orchestrate-a-complex-rag-migration-43ga" class="crayons-story__hidden-navigation-link"&gt;How I used Gemini CLI to orchestrate a complex RAG migration&lt;/a&gt;


  &lt;div class="crayons-story__body crayons-story__body-full_post"&gt;
    &lt;div class="crayons-story__top"&gt;
      &lt;div class="crayons-story__meta"&gt;
        &lt;div class="crayons-story__author-pic"&gt;
          &lt;a class="crayons-logo crayons-logo--l" href="/googleai"&gt;
            &lt;img alt="Google AI logo" 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%2Forganization%2Fprofile_image%2F11026%2F386b14d3-cc9a-4270-aba0-3e41cdfb9d85.jpg" class="crayons-logo__image" width="400" height="400"&gt;
          &lt;/a&gt;

          &lt;a href="/rsamborski" class="crayons-avatar  crayons-avatar--s absolute -right-2 -bottom-2 border-solid border-2 border-base-inverted  "&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%2Fuser%2Fprofile_image%2F2829111%2Fd4264501-e5df-440a-af46-f1549d9ecba1.jpg" alt="rsamborski profile" class="crayons-avatar__image" width="800" height="800"&gt;
          &lt;/a&gt;
        &lt;/div&gt;
        &lt;div&gt;
          &lt;div&gt;
            &lt;a href="/rsamborski" class="crayons-story__secondary fw-medium m:hidden"&gt;
              Remigiusz Samborski
            &lt;/a&gt;
            &lt;div class="profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:inline-block"&gt;
              
                Remigiusz Samborski
                
              
              &lt;div id="story-author-preview-content-3495201" class="profile-preview-card__content crayons-dropdown branded-7 p-4 pt-0"&gt;
                &lt;div class="gap-4 grid"&gt;
                  &lt;div class="-mt-4"&gt;
                    &lt;a href="/rsamborski" class="flex"&gt;
                      &lt;span class="crayons-avatar crayons-avatar--xl mr-2 shrink-0"&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%2Fuser%2Fprofile_image%2F2829111%2Fd4264501-e5df-440a-af46-f1549d9ecba1.jpg" class="crayons-avatar__image" alt="" width="800" height="800"&gt;
                      &lt;/span&gt;
                      &lt;span class="crayons-link crayons-subtitle-2 mt-5"&gt;Remigiusz Samborski&lt;/span&gt;
                    &lt;/a&gt;
                  &lt;/div&gt;
                  &lt;div class="print-hidden"&gt;
                    
                      Follow
                    
                  &lt;/div&gt;
                  &lt;div class="author-preview-metadata-container"&gt;&lt;/div&gt;
                &lt;/div&gt;
              &lt;/div&gt;
            &lt;/div&gt;

            &lt;span&gt;
              &lt;span class="crayons-story__tertiary fw-normal"&gt; for &lt;/span&gt;&lt;a href="/googleai" class="crayons-story__secondary fw-medium"&gt;Google AI&lt;/a&gt;
            &lt;/span&gt;
          &lt;/div&gt;
          &lt;a href="https://dev.to/googleai/how-i-used-gemini-cli-to-orchestrate-a-complex-rag-migration-43ga" class="crayons-story__tertiary fs-xs"&gt;&lt;time&gt;Apr 28&lt;/time&gt;&lt;span class="time-ago-indicator-initial-placeholder"&gt;&lt;/span&gt;&lt;/a&gt;
        &lt;/div&gt;
      &lt;/div&gt;

    &lt;/div&gt;

    &lt;div class="crayons-story__indention"&gt;
      &lt;h2 class="crayons-story__title crayons-story__title-full_post"&gt;
        &lt;a href="https://dev.to/googleai/how-i-used-gemini-cli-to-orchestrate-a-complex-rag-migration-43ga" id="article-link-3495201"&gt;
          How I used Gemini CLI to orchestrate a complex RAG migration
        &lt;/a&gt;
      &lt;/h2&gt;
        &lt;div class="crayons-story__tags"&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/gemini"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;gemini&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/agents"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;agents&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/programming"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;programming&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/ai"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;ai&lt;/a&gt;
        &lt;/div&gt;
      &lt;div class="crayons-story__bottom"&gt;
        &lt;div class="crayons-story__details"&gt;
          &lt;a href="https://dev.to/googleai/how-i-used-gemini-cli-to-orchestrate-a-complex-rag-migration-43ga" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left"&gt;
            &lt;div class="multiple_reactions_aggregate"&gt;
              &lt;span class="multiple_reactions_icons_container"&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/multi-unicorn-b44d6f8c23cdd00964192bedc38af3e82463978aa611b4365bd33a0f1f4f3e97.svg" width="24" height="24"&gt;
                  &lt;/span&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/raised-hands-74b2099fd66a39f2d7eed9305ee0f4553df0eb7b4f11b01b6b1b499973048fe5.svg" width="24" height="24"&gt;
                  &lt;/span&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/sparkle-heart-5f9bee3767e18deb1bb725290cb151c25234768a0e9a2bd39370c382d02920cf.svg" width="24" height="24"&gt;
                  &lt;/span&gt;
              &lt;/span&gt;
              &lt;span class="aggregate_reactions_counter"&gt;40&lt;span class="hidden s:inline"&gt; reactions&lt;/span&gt;&lt;/span&gt;
            &lt;/div&gt;
          &lt;/a&gt;
            &lt;a href="https://dev.to/googleai/how-i-used-gemini-cli-to-orchestrate-a-complex-rag-migration-43ga#comments" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left flex items-center"&gt;
              Comments


              2&lt;span class="hidden s:inline"&gt; comments&lt;/span&gt;
            &lt;/a&gt;
        &lt;/div&gt;
        &lt;div class="crayons-story__save"&gt;
          &lt;small class="crayons-story__tertiary fs-xs mr-2"&gt;
            6 min read
          &lt;/small&gt;
            
              &lt;span class="bm-initial"&gt;
                

              &lt;/span&gt;
              &lt;span class="bm-success"&gt;
                

              &lt;/span&gt;
            
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;


</description>
    </item>
    <item>
      <title>BookBridge Sri Lanka 🇱🇰</title>
      <dc:creator>Sayuri Kotikawaththa</dc:creator>
      <pubDate>Thu, 30 Apr 2026 04:56:04 +0000</pubDate>
      <link>https://dev.to/sayuri_kotikawaththa_/bookbridge-sri-lanka-380k</link>
      <guid>https://dev.to/sayuri_kotikawaththa_/bookbridge-sri-lanka-380k</guid>
      <description>&lt;p&gt;&lt;strong&gt;📚 BookBridge Sri Lanka – A Second-Hand Book Exchange Platform for Uni Students 🇱🇰&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;Hey devs! 👋&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;I’ve been working on a project called BookBridge Sri Lanka – a web platform designed to help university students buy, sell, or exchange used textbooks and reference books at affordable prices.&lt;/p&gt;

&lt;p&gt;The GitHub repo is currently private, but I wanted to share what I've built and get your feedback. After finishing the project, I decided to make it public.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;🎯 The Problem It Solves&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;In Sri Lanka, university reference books can cost anywhere from LKR 1,500 to 8,000+. Right now, students rely on chaotic WhatsApp groups to find books.&lt;/p&gt;

&lt;p&gt;BookBridge provides a dedicated, trusted, and organized marketplace just for students.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;✨ Key Features&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;👤 User registration &amp;amp; login&lt;/li&gt;
&lt;li&gt;📚 Post books for sale / exchange&lt;/li&gt;
&lt;li&gt;🔍 Search &amp;amp; filter books by category, price, or condition&lt;/li&gt;
&lt;li&gt;💬 In-platform messaging between buyers &amp;amp; sellers&lt;/li&gt;
&lt;li&gt;⭐ Seller reviews &amp;amp; ratings&lt;/li&gt;
&lt;li&gt;🔖 Wishlist to save books&lt;/li&gt;
&lt;li&gt;🛡️ Admin dashboard for moderation&lt;/li&gt;
&lt;li&gt;📱 Fully mobile responsive&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;🛠️ Built With&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Frontend: HTML5, CSS3, JavaScript, Bootstrap 5&lt;/li&gt;
&lt;li&gt;Backend: PHP 8.x&lt;/li&gt;
&lt;li&gt;Database: MySQL 8.x&lt;/li&gt;
&lt;li&gt;Tools: XAMPP/WAMP, VS Code, Git&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;🚀 How It Works (Local Setup)&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Clone the repo (private, but I can share structure below)&lt;/li&gt;
&lt;li&gt;Move to &lt;code&gt;C:\wamp64\www\bookbridge\&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Import &lt;code&gt;database/bookbridge_db.sql&lt;/code&gt;via phpMyAdmin&lt;/li&gt;
&lt;li&gt;Update &lt;code&gt;includes/db.php&lt;/code&gt; with your DB credentials&lt;/li&gt;
&lt;li&gt;Run &lt;code&gt;http://localhost/bookbridge/&lt;/code&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;📁 Quick Project Structure&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;bookbridge/&lt;br&gt;
├── admin/           → Dashboard, manage users &amp;amp; books&lt;br&gt;
├── assets/          → CSS, JS, images&lt;br&gt;
├── database/        → SQL export&lt;br&gt;
├── includes/        → Header, footer, DB connection, auth check&lt;br&gt;
├── uploads/         → Book cover images&lt;br&gt;
├── index.php        → Homepage&lt;br&gt;
├── register.php     → Registration&lt;br&gt;
├── login.php        → Login&lt;br&gt;
├── listings.php     → Browse books&lt;br&gt;
├── post-book.php    → Add new book&lt;br&gt;
├── messages.php     → Messaging system&lt;br&gt;
├── wishlist.php     → Saved books&lt;br&gt;
├── review.php       → Ratings &amp;amp; reviews&lt;br&gt;
└── ...&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;👩‍💻 About Me&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Sayuri Kotikawaththa&lt;br&gt;
2nd Year, Web Programming @ BCI Campus, Negombo, Sri Lanka&lt;br&gt;
📧 &lt;a href="mailto:annsayu12@gmail.com"&gt;annsayu12@gmail.com&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;❓ Feedback I’d Love From You&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;How can I improve the user experience for buyers &amp;amp; sellers?&lt;/li&gt;
&lt;li&gt;Any security or performance tips for a PHP + MySQL student project?&lt;/li&gt;
&lt;li&gt;Would you use something like this as a student? Why or why not?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Thanks for reading! 🙌&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;If you’d like to see the code or collaborate, drop a comment or DM me – happy to grant access to serious contributors.&lt;/p&gt;

</description>
      <category>opensource</category>
      <category>showdev</category>
      <category>sideprojects</category>
      <category>webdev</category>
    </item>
  </channel>
</rss>
