<?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: Chieloka Madubugwu</title>
    <description>The latest articles on DEV Community by Chieloka Madubugwu (@chielokacodes).</description>
    <link>https://dev.to/chielokacodes</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%2F1881555%2F0c4942d6-5e8a-4775-a979-b91f784ebfac.jpeg</url>
      <title>DEV Community: Chieloka Madubugwu</title>
      <link>https://dev.to/chielokacodes</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/chielokacodes"/>
    <language>en</language>
    <item>
      <title>Golden Circle - A app for the Elderly users</title>
      <dc:creator>Chieloka Madubugwu</dc:creator>
      <pubDate>Sun, 01 Mar 2026 12:45:35 +0000</pubDate>
      <link>https://dev.to/chielokacodes/golden-circle-a-app-for-the-elderly-users-1dmg</link>
      <guid>https://dev.to/chielokacodes/golden-circle-a-app-for-the-elderly-users-1dmg</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for the &lt;a href="https://dev.to/challenges/weekend-2026-02-28"&gt;DEV Weekend Challenge: Community&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  The Community
&lt;/h2&gt;

&lt;p&gt;GoldenCircle was created to address a growing global challenge faced by aging populations — the silent epidemic of social isolation among elderly individuals. Many seniors experience loneliness not because they are unwilling to connect, but because modern digital environments often exclude them. Physical mobility limitations, declining social circles after retirement, and the death of long-time partners or friends can gradually shrink daily social interaction. Over time, this can lead to emotional withdrawal and decreased life satisfaction.&lt;/p&gt;

&lt;p&gt;Loneliness among elderly populations is strongly associated with increased risks of depression, cognitive decline, and poorer cardiovascular health. Psychological research suggests that consistent social stimulation and emotional validation play a critical role in healthy aging. However, most social media platforms are optimized for fast, visually dense, youth-oriented communication styles. &lt;/p&gt;

&lt;p&gt;GoldenCircle was intentionally designed as an inclusive digital environment where technology adapts to the user rather than forcing the user to adapt to technology. The platform emphasizes comfort, clarity, and emotional safety. Interface elements are deliberately simplified, with large readable typography, minimal clutter, and predictable interaction flows. Instead of overwhelming users with hundreds of features, GoldenCircle focuses on meaningful interactions that support daily emotional wellbeing&lt;/p&gt;

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

&lt;p&gt;GoldenCircle is an AI-powered emotional wellness and communication platform specifically engineered for elderly users. Unlike conventional messaging applications, which prioritize speed and information exchange, GoldenCircle prioritizes emotional continuity, companionship, and cognitive comfort.&lt;/p&gt;

&lt;p&gt;The platform is built around three foundational pillars: connection, comfort, and joy. Each pillar is translated into practical features that are easy to use while still delivering meaningful psychological benefits.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. Real-Time Chat Rooms (Connection)&lt;/strong&gt;&lt;br&gt;
The real-time chat room system allows seniors to interact with friends or community members using a simple 8-digit room joining mechanism. This design removes the need for complicated friend requests, search systems, or long profile configurations.&lt;/p&gt;

&lt;p&gt;The interface uses large visual targets and readable contrast ratios to support users with declining vision. Messages are delivered through WebSocket-based streaming, ensuring that conversations feel natural and alive without requiring page refreshes.&lt;/p&gt;

&lt;p&gt;Communication is enhanced through AI-assisted emoji suggestions. When a user types or speaks a sentiment, the system recommends appropriate emoji representations to help users express emotional states more easily. For example, a user expressing gratitude may be gently presented with a heart or smile icon. Each emoji also includes a tap-to-learn explanation feature, which is particularly helpful for users who are unfamiliar with modern digital symbolism.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. Daily AI Companion (Comfort)&lt;/strong&gt;&lt;br&gt;
The Daily Companion transforms GoldenCircle from a simple communication platform into a digital emotional presence that accompanies the user throughout the day.&lt;/p&gt;

&lt;p&gt;Upon opening the app, users are greeted with gentle voice-based interaction. The companion asks simple conversational prompts such as “How are you feeling today?” or “Did you sleep well last night?” These prompts are intentionally non-demanding, allowing users to respond at their own pace. The system supports voice input using browser speech interfaces, which is particularly beneficial for seniors who may find typing difficult.&lt;/p&gt;

&lt;p&gt;Users can optionally record their daily mood, which helps the system generate more supportive responses in future interactions. The companion also provides gentle wellness reminders such as hydration prompts, medication timing suggestions, or encouragement to perform light physical movement.&lt;/p&gt;

&lt;p&gt;Positive affirmation messages are delivered carefully to avoid sounding mechanical or overly artificial. The goal is not to simulate human relationships but to provide consistent emotional reassurance during periods of solitude. For many elderly individuals living alone, the companion acts as a comforting conversational anchor during quiet daytime hours.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3.Golden Memories – Time Machine (Fun &amp;amp; Nostalgia)&lt;/strong&gt;&lt;br&gt;
The Golden Memories Time Machine is one of the most emotionally significant features of the platform. Users can travel through selected decades ranging from the 1950s to the 1990s and explore culturally familiar content.&lt;/p&gt;

&lt;p&gt;Nostalgia has strong psychological benefits because it activates reward-associated neural pathways linked to positive autobiographical memory recall. When seniors engage with memories from their youth, it can trigger dopamine release and promote feelings of identity continuity.&lt;/p&gt;

&lt;p&gt;Within the Time Machine, users can listen to music styled after their chosen era, read popular sayings, or explore historical trivia. The system also offers short interactive quizzes framed as playful questions such as “Do you remember what people used to call television remotes in the 1970s?”&lt;/p&gt;

&lt;p&gt;GoldenCircle therefore evolves beyond a messaging tool into a holistic emotional ecosystem. It acts as a companion, memory archive, and safe social environment where elderly users can interact at their own pace&lt;/p&gt;

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

&lt;p&gt;&lt;a href="https://www.canva.com/design/DAHCs45fQ1U/WQeiSwC44yDHupTS-tEOqA/view?utm_content=DAHCs45fQ1U&amp;amp;utm_campaign=designshare&amp;amp;utm_medium=embeds&amp;amp;utm_source=link" rel="noopener noreferrer"&gt;Golden Circle Demo&lt;/a&gt; by Chieloka Madubugwu&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.youtube.com/watch?v=_mHn4-3VvqU" rel="noopener noreferrer"&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%2Fkk5698z59qcg9m1c0839.jpg" alt="Golden Circle Demo" width="480" height="360"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Public Url&lt;/strong&gt;: &lt;a href="https://golden-circle-olive.vercel.app/" rel="noopener noreferrer"&gt;https://golden-circle-olive.vercel.app/&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Code
&lt;/h2&gt;

&lt;p&gt;Github code: &lt;a href="https://github.com/ChielokaCode/Golden-Circle" rel="noopener noreferrer"&gt;https://github.com/ChielokaCode/Golden-Circle&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The project repository demonstrates a modular software architecture designed for scalability and maintainability.&lt;/p&gt;

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

&lt;p&gt;The frontend is built using React with TypeScript to enforce strict component typing and reduce runtime errors. TailwindCSS is used to ensure accessibility-first responsive design. Styling choices prioritize large touch targets, high contrast readability, and soft visual transitions.&lt;/p&gt;

&lt;p&gt;The Web Speech API is integrated into the Daily Companion module to support voice-based interaction.&lt;/p&gt;

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

&lt;p&gt;The backend is implemented using Node.js and Express to provide RESTful API services. Real-time communication is powered by WebSocket streaming through a lightweight messaging server.&lt;/p&gt;

&lt;p&gt;Artificial intelligence services are integrated into multiple endpoints. These include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Emotionally aware response generation that adjusts tone based on user mood signals.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Nostalgia content synthesis for Time Machine exploration.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Quiz generation tailored to selected historical decades.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  How I Built It
&lt;/h2&gt;

&lt;p&gt;GoldenCircle was developed using accessibility-first engineering principles.&lt;/p&gt;

&lt;p&gt;On the frontend, React with TypeScript provides component reliability and maintainability. TailwindCSS enables rapid yet consistent UI construction while preserving readability for elderly users. Voice interaction is supported through browser speech recognition technologies, reducing dependence on typing.&lt;/p&gt;

&lt;p&gt;State management favors lightweight persistence using browser storage for non-sensitive data. This design choice keeps the application responsive even on low-end devices.&lt;/p&gt;

&lt;p&gt;On the backend, Node.js with Express provides flexible API routing and easy integration with AI inference services. WebSocket broadcasting ensures that conversations remain synchronized in real time.&lt;/p&gt;

&lt;p&gt;AI services power emotional response synthesis, nostalgia generation, and quiz creation. The system is carefully tuned to avoid overly anthropomorphic behavior while still providing warm conversational experiences.&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>weekendchallenge</category>
      <category>showdev</category>
    </item>
    <item>
      <title>Product Expiry Tracker AI with KendoReact</title>
      <dc:creator>Chieloka Madubugwu</dc:creator>
      <pubDate>Wed, 19 Mar 2025 07:45:11 +0000</pubDate>
      <link>https://dev.to/chielokacodes/product-expiry-tracker-ai-3fh9</link>
      <guid>https://dev.to/chielokacodes/product-expiry-tracker-ai-3fh9</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for the &lt;a href="https://dev.to/challenges/kendoreact"&gt;KendoReact Free Components Challenge&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Table of Contents
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;What I Built&lt;/li&gt;
&lt;li&gt;Demo&lt;/li&gt;
&lt;li&gt;Video Demo&lt;/li&gt;
&lt;li&gt;KendoReact Experience&lt;/li&gt;
&lt;li&gt;KendoReact Free Components Used&lt;/li&gt;
&lt;li&gt;AIm to Impress&lt;/li&gt;
&lt;li&gt;AI Integration Pictures&lt;/li&gt;
&lt;/ul&gt;

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

&lt;p&gt;Product Expiry Tracker AI is an application built on React that helps users monitor the expiry dates of their products. It can be used widely in Supermarkets, drug stores and malls to enable users get real time assessment of their products details. The issue of products expiring on shelves is becoming alarming therefore the need to acquire this application. This Expiry Tracker AI is a real world application that solves real problems and it is powered by React and includes at least 10 KendoReact free Components. This project was built from scratch within the time frame of this challenge. &lt;/p&gt;

&lt;p&gt;The project integrates AI to give summaries of product details in the inventory, together with actionable steps to prevent expiry of the product. The AI can also scan product details and add products to the inventory automatically without needing to fill the form.&lt;/p&gt;

&lt;p&gt;A key feature is the expiration products page, which lists products nearing expiration within two months or more, helping customers track items close to expiry. This page uses Kendo React grid components with pagination and filtering options. Users can print and export product lists as PDFs, selecting specific columns via checkboxes.&lt;/p&gt;

&lt;h3&gt;
  
  
  Demo
&lt;/h3&gt;

&lt;p&gt;This Application utilizes Authentication but feel free to use dummy data (Email and password) to register and login.&lt;/p&gt;

&lt;p&gt;The Application is built on React for the frontend and includes 10 or more KendoReact free components which I will list out below&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Public Url:&lt;/strong&gt; &lt;br&gt;
&lt;strong&gt;Github code:&lt;/strong&gt; &lt;/p&gt;
&lt;h3&gt;
  
  
  App Screenshots
&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%2Fha1ogzxns5ljmcp5sa04.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%2Fha1ogzxns5ljmcp5sa04.png" alt="Image description" width="800" height="450"&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%2F1j5rfrdihoqpmi3mequa.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%2F1j5rfrdihoqpmi3mequa.png" alt="Image description" width="800" height="450"&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%2F7xt15o1uijoxzsa6yfgj.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%2F7xt15o1uijoxzsa6yfgj.png" alt="Image description" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;
  
  
  Video DEMO
&lt;/h3&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/NYMsXZHOEPI"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;h3&gt;
  
  
  KendoReact Experience
&lt;/h3&gt;

&lt;p&gt;KendoReact Free Components is a game changer used to design and develop business applications with React. It has over 50+ free components in which I used the under listed for this project. It really shaped my user experience flow due to its great UI and its heavy use in this project helped me to do so much with so little code. I just had to pick the component and customize the props to fit the project.&lt;/p&gt;

&lt;h3&gt;
  
  
  KendoReact Free Components Used
&lt;/h3&gt;

&lt;p&gt;1 &lt;strong&gt;Kendo Label and Input components&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;import { Label } from "@progress/kendo-react-labels";
import { Input } from "@progress/kendo-react-inputs";

&amp;lt;Label className="font-medium" editorId="firstName"&amp;gt;
 First Name&amp;amp;nbsp;
&amp;lt;/Label&amp;gt;
&amp;lt;Input
  id="firstName"
  disabled
  name="firstName"
  type="text"
  value={firstName}
  onChange={}
/&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&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%2Fbaa21qf4ky8maxk45w3p.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%2Fbaa21qf4ky8maxk45w3p.png" alt="Image description" width="559" height="196"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;2  &lt;strong&gt;Kendo DatePicker&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;import { DatePicker } from "@progress/kendo-react-dateinputs";
&amp;lt;DatePicker
  className=""
  name="dob"
  value={dob}
  onChange={}
/&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&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%2Fcr7oqvq1uzljwjjl176n.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%2Fcr7oqvq1uzljwjjl176n.png" alt="Image description" width="402" height="328"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;3  &lt;strong&gt;Kendo DropdownList&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;import { DropDownList } from "@progress/kendo-react-dropdowns";
&amp;lt;DropDownList
  style={{
  width: "390px",
 }}
 data={sex}
 value={gender}
 defaultValue="Male"
 onChange={}
 name="gender"
/&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&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%2Fj88j0v91dkfwsqbpva2y.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%2Fj88j0v91dkfwsqbpva2y.png" alt="Image description" width="443" height="159"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;4  &lt;strong&gt;Kendo Notification&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;import { Notification } from "@progress/kendo-react-notification";
&amp;lt;Notification closable={true} type={{ style: "error", icon: true }}&amp;gt;
 {error}
&amp;lt;/Notification&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&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%2Fj5lb6gwcaeqfsgxn2san.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%2Fj5lb6gwcaeqfsgxn2san.png" alt="Image description" width="374" height="34"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;5  &lt;strong&gt;Kendo Toolbar, ToolbarSeperator, Button and ButtonGroup&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;import {
  Toolbar,
  ToolbarSeparator,
  Button,
  ButtonGroup,
} from "@progress/kendo-react-buttons";
&amp;lt;Toolbar&amp;gt;
  &amp;lt;ButtonGroup&amp;gt;
    &amp;lt;Button
      className="k-toolbar-button"
      svgIcon={boldIcon}
      title="Bold"
      onClick={() =&amp;gt; onFormat("bold")}
    /&amp;gt;
&amp;lt;/ButtonGroup&amp;gt;
&amp;lt;/Toolbar&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&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%2F5cvvfll8lwgsvd6xwjvd.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%2F5cvvfll8lwgsvd6xwjvd.png" alt="Image description" width="498" height="222"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;6  &lt;strong&gt;Kendo Grid, GridColumn&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;import { Grid, GridColumn as Column } from "@progress/kendo-react-grid";
&amp;lt;Grid&amp;gt;
   &amp;lt;Column field="id" title="ID" filterable={false} width="40px" /&amp;gt;
   &amp;lt;Column field="productName" title="Product Name" width="240px" /&amp;gt;
&amp;lt;/Grid&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&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%2Fhry32weug70amw843n3s.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%2Fhry32weug70amw843n3s.png" alt="Image description" width="800" height="263"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;7  &lt;strong&gt;Kendo Dialog, DialogActionBar&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;import { Dialog, DialogActionsBar } from "@progress/kendo-react-dialogs";
&amp;lt;Dialog title={"Please confirm"} onClose={toggleDialog}&amp;gt;
  &amp;lt;p style={{ margin: "25px", textAlign: "center" }}&amp;gt;
    Actions for {selectedProduct.productName}
  &amp;lt;/p&amp;gt;
 &amp;lt;DialogActionsBar&amp;gt;
    &amp;lt;Button themeColor="info"&amp;gt;
     Edit
    &amp;lt;/Button&amp;gt;
&amp;lt;/DialogActionsBar&amp;gt;
&amp;lt;/Dialog&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&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%2F77zcsrfznyn3dy0o0cvm.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%2F77zcsrfznyn3dy0o0cvm.png" alt="Image description" width="322" height="240"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;8  &lt;strong&gt;Kendo Checkbox&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;import { Checkbox } from "@progress/kendo-react-inputs";
 &amp;lt;Checkbox
    type="checkbox"
    id={}
    name={}
    defaultChecked={}
    onChange={}
    label={}
 /&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&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%2Faj0f287by2fl50q9tk0m.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%2Faj0f287by2fl50q9tk0m.png" alt="Image description" width="580" height="82"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;9  &lt;strong&gt;Kendo Card, CardTitle, CardBody&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;import { Card, CardBody, CardTitle } from "@progress/kendo-react-layout";
&amp;lt;Card style={{ width: 300 }} type="info"&amp;gt;
  &amp;lt;CardBody&amp;gt;
    &amp;lt;CardTitle&amp;gt;Total Products&amp;lt;/CardTitle&amp;gt;
       &amp;lt;p&amp;gt;Number of products in the system.&amp;lt;/p&amp;gt;
    &amp;lt;/CardTitle&amp;gt;
  &amp;lt;/CardBody&amp;gt;
&amp;lt;/Card&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&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%2Foqy2dqoj115zpwm73j7q.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%2Foqy2dqoj115zpwm73j7q.png" alt="Image description" width="776" height="217"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;10  &lt;strong&gt;Kendo ProgressBar&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;import { ProgressBar } from "@progress/kendo-react-progressbars";
&amp;lt;ProgressBar value={productLength} /&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;11  &lt;strong&gt;Kendo FloatingActionButton&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;import { FloatingActionButton } from "@progress/kendo-react-buttons";
&amp;lt;FloatingActionButton
   svgIcon={open ? cancelIcon : homeIcon}
   items={navLinks}
   item={CustomItem}
   positionMode="absolute"
   modal={true}
   onOpen={handleOpen}
   onClose={handleClose}
/&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&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%2F6m29csr9s6u24mvpi32j.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%2F6m29csr9s6u24mvpi32j.png" alt="Image description" width="155" height="215"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  AIm to Impress
&lt;/h3&gt;

&lt;p&gt;I integrated AI technology with OpenAI. &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Here users can ask the AI questions relating to the products in the inventory/database such as to get all product expiring dates, summarize products close to expiry, actionable steps and with the help of the product quantity predict products that should be understocked or overstocked in the next purchase.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Users can also scan product details through the use of the camera and the AI will be able to deduce the Product Information from the image, then a Kendo Button had been added so as if the user is satisfied with the AI output, the product will then be saved to the database. This is a shortcut to the stress of individually filling the "Add Product" form&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  AI Integration Pictures
&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%2Fd6aex5rck3cmhjur75qw.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%2Fd6aex5rck3cmhjur75qw.png" alt="Image description" width="800" height="450"&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%2Fs350eremgiqeo2bk34qr.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%2Fs350eremgiqeo2bk34qr.png" alt="Image description" width="800" height="450"&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%2F194gzeu3b2eb1ardrofa.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%2F194gzeu3b2eb1ardrofa.png" alt="Image description" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/kmmq6iUtOH8"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>kendoreactchallenge</category>
      <category>react</category>
      <category>webdev</category>
    </item>
    <item>
      <title>A Guide to Quickly Deploying and Interacting with Smart Contracts Using the Stellar CLI</title>
      <dc:creator>Chieloka Madubugwu</dc:creator>
      <pubDate>Sat, 17 Aug 2024 12:10:51 +0000</pubDate>
      <link>https://dev.to/chielokacodes/a-guide-through-to-quickly-deploying-and-interacting-with-smart-contracts-through-the-stellar-cli-2cdj</link>
      <guid>https://dev.to/chielokacodes/a-guide-through-to-quickly-deploying-and-interacting-with-smart-contracts-through-the-stellar-cli-2cdj</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for the &lt;a href="https://dev.to/challenges/stellar"&gt;Build Better on Stellar: Smart Contract Challenge &lt;/a&gt;: Create a Tutorial&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Table Of Contents
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Overview&lt;/li&gt;
&lt;li&gt;Tools to have before coding&lt;/li&gt;
&lt;li&gt;Goal for this Tutorial&lt;/li&gt;
&lt;li&gt;Glossary&lt;/li&gt;
&lt;li&gt;Programming Language used&lt;/li&gt;
&lt;li&gt;STEPS to follow&lt;/li&gt;
&lt;li&gt;Video Explanation&lt;/li&gt;
&lt;li&gt;What I Created&lt;/li&gt;
&lt;li&gt;Journey&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Overview
&lt;/h2&gt;

&lt;p&gt;My Submission will explain in depth on how to properly use the Stellar CLI Commands to build, deploy and Interact with the smart contracts. &lt;br&gt;
The &lt;strong&gt;Stellar CLI&lt;/strong&gt; is the command line interface to Soroban smart contracts. It allows you to build, deploy, and interact with smart contracts; configure identities; generate key pairs; manage networks; and more. &lt;/p&gt;

&lt;p&gt;For this Tutorial, i will take you by the hand as a complete beginner to coding to deploying and interacting with the smart contract via command line&lt;/p&gt;
&lt;h2&gt;
  
  
  Tools to have before coding
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Install Node latest version or v18&lt;/li&gt;
&lt;li&gt;Install Visual Studio Code&lt;/li&gt;
&lt;li&gt;Have a good Internet Connection&lt;/li&gt;
&lt;li&gt;Install Rust
&lt;/li&gt;
&lt;/ol&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -(Mac Os)

download and run rustup-init.exe -(Windows)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;ul&gt;
&lt;li&gt;Install target
&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;rustup target add wasm32-unknown-unknown

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

&lt;/div&gt;


&lt;ul&gt;
&lt;li&gt;Install Cargo
&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;brew install cargo-c
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;ul&gt;
&lt;li&gt;Install Stella CLI
&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;cargo install --locked stellar-cli --features opt
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;h2&gt;
  
  
  Goal for this Tutorial
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Implementing a transfer_xlm function&lt;/strong&gt; - to transfer native XLM token from a public address to another contract address or public address&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Picture Representation of the transaction in Stellar Expert&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%2F4axajedke7ecaovhxndb.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%2F4axajedke7ecaovhxndb.png" alt=" " width="800" height="428"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  Glossary
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;XLM&lt;/strong&gt; - is the native cryptocurrency of the Stellar network. This is the token used to paying small transaction fees, creating new accounts. XLM can also be bought, sold, or traded like other cryptocurrencies.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Public Address/Key&lt;/strong&gt;: This is like your email address in the Stellar world. It's a unique string of letters and numbers that identifies your account on the Stellar network. You can share this freely with others when you want to receive funds or interact with the network. It always starts with a 'G' and looks something like "GBYUHQVNEEOXYXJTONRDFRMBZYXGB3SXOITQ2WMDZ44DEAKYSBYL4JZF"&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Secret Address/Key&lt;/strong&gt;: This is like the password to your Stellar account. It's a private string that should never be shared with anyone. With this key, you can access and control your account, send funds, and sign transactions. It always starts with an 'S' and looks similar to the public key: "SBCVMMCBEDB64ZDTSFLBDBO6UIFRS4JQWHXQYP6ABLSOZXMZNXJB7OVU"&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;KeyPair&lt;/strong&gt;: A keypair is simply the combination of your public key and secret key. It's like having both your email address and password together. When you create a Stellar account, you're essentially generating a keypair. The public part of this pair becomes your account address, while the secret part is used to control the account.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Stellar Smart contract&lt;/strong&gt;: A Stellar smart contract is like a set of rules or instructions that automatically do things on the Stellar network. In our case, we are going to be creating the "transfer_xlm" function within our smart contract&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Soroban&lt;/strong&gt;: Stellar's smart contract system is called "Soroban".&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Now back to the good Stuff, the below picture shows the goal of this tutorial, but with the above knowledge this should get you excited for what is to come&lt;/p&gt;
&lt;h2&gt;
  
  
  Programming Language used
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Rust &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;We are using Rust for the below reasons, Stellar chose Rust because:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;It's very secure, which is important when dealing with financial transactions&lt;/li&gt;
&lt;li&gt;It's fast, so contracts can run efficiently&lt;/li&gt;
&lt;li&gt;It helps prevent common coding mistakes&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;
  
  
  STEPS to follow
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Open VS Code, and create a new Folder, Make sure the name of the folder is separated by "_" or "-". Never use space in a folder name&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Open Terminal, the terminal will open your root directory that is all commands you write here will be applied to this folder.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;We are going to run the command below on the terminal to create a  react-next app project&lt;br&gt;
&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;npx create-soroban-dapp@latest
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;This will create our project and install the neccessary dependencies&lt;/p&gt;

&lt;p&gt;You will be asked some questions below&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;What will be the name of your project? &lt;strong&gt;your-project-name&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Please select your favourite package manager: choose &lt;strong&gt;npm&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Do you want us to install dependencies for you? &lt;strong&gt;Y&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Should we continue and set up the dapp? &lt;strong&gt;Y&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;cd your-project-name
npm run dev
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;Now the installations is complete, "npm run dev" will start a local server for your dApp. Copy the link (localhost:3000) and paste on your Browser preferably Chrome&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%2Fv8ngnhi09ymh37wlvhdl.gif" 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%2Fv8ngnhi09ymh37wlvhdl.gif" alt=" " width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;We will be focusing on the "&lt;strong&gt;contracts&lt;/strong&gt;" folder in your project.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Navigate to contracts, then greetings folder, then src, then lib.rs (this is where we are to implement our functions). So the greetings folder is the smart contract. We can choose to rename the greetings folder, but i will leave it as it is. &lt;br&gt;
Remove the default functions and replace with the &lt;strong&gt;transfer_xlm()&lt;/strong&gt; function below&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;We will implement the "&lt;strong&gt;transfer_xlm()&lt;/strong&gt;" function&lt;/p&gt;&lt;/li&gt;
&lt;/ul&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%2Fjwk2o01q4m04uihctc6p.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%2Fjwk2o01q4m04uihctc6p.png" alt=" " width="800" height="770"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;I will explain the concepts here:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;This imports the necessary  dependencies, the "&lt;strong&gt;#![no_std]&lt;/strong&gt;" removes the big library tools from the project making the project light and small&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The "&lt;strong&gt;use soroban_sdk&lt;/strong&gt;" is using specific tools from the Soroban toolkit." Each item in the curly braces is a tool we might need for our smart contract.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;#![no_std]
use soroban_sdk::{contract, contractimpl, contracttype, Address, Env, String, Symbol, Vec};
use soroban_sdk::token::TokenClient;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;DataKey&lt;/strong&gt; are like special containers for information that you want to use in your smart contract. For example, we are going to store the result of our xlm token into the Datakey "Token".
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;#[derive(Clone)]
#[contracttype]
pub enum DataKey {
    Token
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;&lt;p&gt;In the transfer_xlm function, "env", "from", "to", and "amount" are parameters. The "env" typically represents the environment in which Soroban smart contracts execute.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;from.require_auth()&lt;/strong&gt; - it's used to ensure that certain operations within a smart contract are only performed by authorized parties. it does this by requesting for the secret key to authenticate the transaction.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;This holds and store the xlm contract address, the contract address here is the XLM testnet address. Then, we save this into the DataKey Token.&lt;br&gt;
&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;
assert!(amount &amp;gt; 0, "amount must be positive");
let xlm_address_str = String::from_str(&amp;amp;env,
       "CDLZFC3SYJYDZT7K67VZ75HPJVIEUVNIXF47ZG2FB2RMQQVU2HHGCYSC",
        );
let xlm_address = Address::from_string(&amp;amp;xlm_address_str);
env.storage().persistent().set(&amp;amp;DataKey::Token, &amp;amp;xlm_address);

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

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;TokenClient&lt;/strong&gt; then creates the token and using the .transfer() function it transfers the token from the "from" address to the "to" address, the "amount" of tokens. Now XLM smallest unit is stroops which is 10^7 so to get 1XLM token, 1 XLM (Lumen) = 10,000,000 stroops.
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;let token = TokenClient::new(&amp;amp;env, &amp;amp;xlm_address);
token.transfer(&amp;amp;from, &amp;amp;to, &amp;amp;amount);
true
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Finally, we send &lt;strong&gt;true&lt;/strong&gt; representing a successful transfer.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Navigate to &lt;strong&gt;greeting&lt;/strong&gt; folder, Run the command in the terminal, to build the contract&lt;br&gt;
&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;cd my-project-name
cd contracts
cd greeting
stellar contract build
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Go back to root directory using "&lt;strong&gt;cd ./&lt;/strong&gt;" multiple times
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;npm i @stellar/stellar-sdk
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Configure the CLI for Testnet, for Windows remove the "\" and replace with "`"&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;code&gt;&lt;/code&gt;&lt;code&gt;&lt;br&gt;
 stellar network add \&lt;br&gt;
  --global testnet \&lt;br&gt;
  --rpc-url https://soroban-testnet.stellar.org:443 \&lt;br&gt;
  --network-passphrase "Test SDF Network ; September 2015"&lt;br&gt;
&lt;/code&gt;&lt;code&gt;&lt;/code&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Configure an Identity, thats the "&lt;strong&gt;token-admin&lt;/strong&gt;" will be used as sourceAccount&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;code&gt;&lt;/code&gt;&lt;code&gt;&lt;br&gt;
 stellar keys generate --global token-admin --network testnet&lt;br&gt;
 stellar keys address token-admin  - (To see the Public key of token- &lt;br&gt;
 admin)&lt;br&gt;
&lt;/code&gt;&lt;code&gt;&lt;/code&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;By default "&lt;strong&gt;stellar keys generate&lt;/strong&gt;" will fund our &lt;strong&gt;token-admin&lt;/strong&gt; with 10,000XLM by the &lt;strong&gt;Friendbot&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Navigate back into "&lt;strong&gt;greeting&lt;/strong&gt;" folder using "&lt;strong&gt;cd&lt;/strong&gt;", Run the command to install &lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;code&gt;&lt;/code&gt;&lt;code&gt;&lt;br&gt;
 stellar contract upload \&lt;br&gt;
  --network testnet \&lt;br&gt;
  --source token-admin \&lt;br&gt;
  --wasm target/wasm32-unknown-unknown/release/greeting.wasm&lt;br&gt;
&lt;/code&gt;&lt;code&gt;&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;A &lt;strong&gt;WASM HASH&lt;/strong&gt; (WebAssembly) will be generated here, input it into the next step in the "&lt;strong&gt;(--wasm-hash)&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Now we are going to deploy the smart contract using this command.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;code&gt;&lt;/code&gt;&lt;code&gt;&lt;br&gt;
 stellar contract deploy \&lt;br&gt;
  --wasm-hash &lt;br&gt;
 f02ce4b958e5e5d426e40787486d6c46fdc4826c874b93e307dac74f1191f1db \&lt;br&gt;
  --source token-admin \&lt;br&gt;
  --network testnet&lt;br&gt;
&lt;/code&gt;&lt;code&gt;&lt;/code&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;At this point our smart contract is deployed, you should now see the contract address. For example "CA4KNSGXAI47V7AQLIOAXZ7FX4V4HLS6QNYFGRNFZM2UEOJTYFNM6OKC"&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Go on to &lt;a href="https://stellar.expert/explorer/public" rel="noopener noreferrer"&gt;Stella Expert&lt;/a&gt;, at the top-right side of the screen, select &lt;strong&gt;Network: testnet&lt;/strong&gt; and paste your contract address to view the deployed address&lt;/p&gt;&lt;/li&gt;
&lt;/ul&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%2Fftw7xdhqboa0i6lxqmwz.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%2Fftw7xdhqboa0i6lxqmwz.png" alt=" " width="800" height="431"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Now, you can see the transfer function in the contract by clicking "interface"&lt;/li&gt;
&lt;/ul&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%2F1k0libflxv6c4raqujyq.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%2F1k0libflxv6c4raqujyq.png" alt=" " width="800" height="412"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;To interact with the deployed smart contract, run this command.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;code&gt;&lt;/code&gt;&lt;code&gt;&lt;br&gt;
 stellar contract invoke \&lt;br&gt;
  --network testnet --source token-admin \&lt;br&gt;
  --id CA4KNSGXAI47V7AQLIOAXZ7FX4V4HLS6QNYFGRNFZM2UEOJTYFNM6OKC \&lt;br&gt;
  -- \&lt;br&gt;
  transfer_xlm \&lt;br&gt;
  --from token-admin \&lt;br&gt;
  --to "CA4KNSGXAI47V7AQLIOAXZ7FX4V4HLS6QNYFGRNFZM2UEOJTYFNM6OKC" \&lt;br&gt;
  --amount "10000000000"&lt;br&gt;
&lt;/code&gt;&lt;code&gt;&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Here, we run the "&lt;strong&gt;transfer_xlm&lt;/strong&gt;", we are transfering 1000XLM from the &lt;strong&gt;token-admin&lt;/strong&gt; address to our &lt;strong&gt;deployed contract address&lt;/strong&gt;. Its worthy to note that you can transfer from another public address not a must it should be from "token-admin".&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;View this post to understand in depth the various attribute used in the transfer_xlm() function&lt;/strong&gt;: &lt;a href="https://dev.to/chielokacodes/dvilla-e-commerce-project-a-dapp-that-promotes-healthy-living-5cam"&gt;View Post here&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;At this point, you should get "&lt;strong&gt;true&lt;/strong&gt;" showing a successful transfer of &lt;strong&gt;1000XLM&lt;/strong&gt; to your contract address. You can view the recent transaction at stellar expert.&lt;/li&gt;
&lt;/ul&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%2Fmqt6kaccthbf2tueo39f.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%2Fmqt6kaccthbf2tueo39f.png" alt=" " width="800" height="440"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I hope you learnt a lot.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;GitHub link:&lt;/strong&gt; &lt;a href="https://github.com/ChielokaCode/stellar_practice_tutorial" rel="noopener noreferrer"&gt;Github Repo&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Video Explanation
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://youtu.be/Jsl7OfSNfOw" rel="noopener noreferrer"&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%2Fqlm9fclbgv2d4kxxbhau.jpg" alt="smart_contract_explained" width="480" height="360"&gt;&lt;/a&gt;&lt;/p&gt;

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

&lt;p&gt;My Submission is a walk through showing a complete beginner how to start from an empty folder to deploying a smart contract and interacting with it. This supports developers in showing them how to deploy their smart contracts quickly in one page instead of looking through different pages online to get this information. They can quickly hit the ground running with this tutorial.&lt;/p&gt;

&lt;h2&gt;
  
  
  Journey
&lt;/h2&gt;

&lt;p&gt;I am particularly proud of participating in this challenge as it has helped me into understanding the basics of blockchain, cryptocurrency and decentralised applications. It is a wonderful experience but really tough when you have no experience, thats the major reason i created this tutorial to show beginner developers the easier way.&lt;/p&gt;

&lt;p&gt;Most of my research came from &lt;a href="https://developers.stellar.org/" rel="noopener noreferrer"&gt;Stellar documentation&lt;/a&gt;, Google and Stellar Discord channel.&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>stellarchallenge</category>
      <category>blockchain</category>
      <category>web3</category>
    </item>
    <item>
      <title>DVILLA E-Commerce Project: A dApp that promotes healthy living</title>
      <dc:creator>Chieloka Madubugwu</dc:creator>
      <pubDate>Thu, 15 Aug 2024 18:56:09 +0000</pubDate>
      <link>https://dev.to/chielokacodes/dvilla-e-commerce-project-a-dapp-that-promotes-healthy-living-5cam</link>
      <guid>https://dev.to/chielokacodes/dvilla-e-commerce-project-a-dapp-that-promotes-healthy-living-5cam</guid>
      <description>&lt;p&gt;This is a submission for the &lt;a href="https://dev.to/challenges/stellar"&gt;Build Better on Stellar: Smart Contract Challenge &lt;/a&gt;: Build a dApp&lt;/p&gt;

&lt;h2&gt;
  
  
  Table of Contents
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;What I Built&lt;/li&gt;
&lt;li&gt;Demo&lt;/li&gt;
&lt;li&gt;My Code&lt;/li&gt;
&lt;li&gt;Video Explanation&lt;/li&gt;
&lt;li&gt;Journey&lt;/li&gt;
&lt;li&gt;Concepts Learned&lt;/li&gt;
&lt;li&gt;Next Steps&lt;/li&gt;
&lt;/ul&gt;

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

&lt;p&gt;Dvilla Local Food Store project is a decentralised E-Commerce app where users can register an account and purchase organic foods and fruits, the app also rewards consistent users a little percentage to encourage people to stay on healthy foods and promote good living. The app leverages Stellar smart contracts to manage secure transactions, particularly in regions without credit card access, by placing assets in a vault during procurement and delivery. Payments are transferred only after safe delivery. Buyers are rest assured that payments are made or transferred to the local farms after their food items have been delivered safely to them. Its covers the Sustainability prompt and designed to fit into the category of a public goods application, where it incorporates features that contribute to real-world positive impacts. it promotes and sell products that are sustainably sourced from local farms.&lt;/p&gt;

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

&lt;p&gt;The dApp is built on Next js for the frontend and Rust programming language for the backend and it incorporated the Stellar SDK for the Cli commands to interact with the blockchain and Soroban for the wallet&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;NOTE&lt;/strong&gt; - To access the public url, make sure to install the Freighter wallet chrome extension. Currently, freighter wallet is unavailable for Android so download the &lt;a href="https://www.freighter.app/" rel="noopener noreferrer"&gt;Freighter chrome extension&lt;/a&gt;, create a wallet, and open the Public Url on Mac or Windows&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Public Url:&lt;/strong&gt; &lt;a href="https://stellar-ecommerce-project.vercel.app/" rel="noopener noreferrer"&gt;DVILLA E-commerce Project&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%2Fy8v06ynl0cm70jy3rlqs.gif" 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%2Fy8v06ynl0cm70jy3rlqs.gif" alt="Image description" width="750" height="1124"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  My Code
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;The Github Repo:&lt;/strong&gt; &lt;a href="https://github.com/ChielokaCode/stellar_ecommerce_project" rel="noopener noreferrer"&gt;Github Repo&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Video DEMO
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://youtu.be/JScRbujVQnU" rel="noopener noreferrer"&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%2Fbrspa7984edthleuzf2o.jpg" alt="smart_contract_explained" width="480" height="360"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Contract on Stella Expert&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Stellar Expert : &lt;a href="https://stellar.expert/explorer/testnet/contract/CA3SRV2OAEA2TUQEQ6AGK5YASPA5CHRXCX6LXHMND2URI4RTASM4SAVJ" rel="noopener noreferrer"&gt;Transactions done on the Contract address&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The other function i implemented is the "place_order" is implemented to pay or place a cart order, it transfer the amount from the user to the contract address, then saves the order and creates a tracker that calculates the user rewards&lt;/p&gt;

&lt;p&gt;Rust function implementation for the &lt;strong&gt;place_order&lt;/strong&gt; function&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%2Ftukohmgakxkyqju2qjkp.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%2Ftukohmgakxkyqju2qjkp.png" alt="Place_order_save_order" width="727" height="680"&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%2Ff1embkg8eoxrwrkkqxq9.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%2Ff1embkg8eoxrwrkkqxq9.png" alt="Place_order_reward tracker" width="788" height="777"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Then on the frontend to sign and submit the transaction, we first need to build the transaction&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%2Fm6dr1xg0lxmue6k6wo92.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%2Fm6dr1xg0lxmue6k6wo92.png" alt="Image description" width="589" height="528"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Journey
&lt;/h2&gt;

&lt;p&gt;For my project, I designed and implemented a smart contract on the Stellar network to facilitate seamless transactions for a local food store. The motivation behind this project was to create a decentralized application (dApp) that supports local businesses by enabling them to accept payments in XLM, thereby promoting financial inclusion and sustainability.&lt;/p&gt;

&lt;p&gt;One of the functions which i implemented and which made me understand a lot about the concept of blockchain is the "transfer_xlm()" function. This function was used to transfer token with in place_order function and process_user_reward function&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%2Fjvsau9c3hxdkxflsrtuc.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%2Fjvsau9c3hxdkxflsrtuc.png" alt="Transfer_xlm" width="751" height="334"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Concepts Learned
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;sourceAccount (--source)&lt;/strong&gt;: This is the admin that invokes the contract to do a transaction. The admin should be generated with its keyPair that is both public Key and Secret key. Its only with the secret key that a transaction is signed. Meaning the admin signs thats transaction. &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;id or contract_id (--id)&lt;/strong&gt;: This is the address of a contract after it has been deployed. The contract_id holds all the functions of that contract. So in the case, you want to transfer a token from an address to another address. The transaction must happen on a contract having “transfer” as one of its functions.   &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Network (--network)&lt;/strong&gt;: This is the network on which the contracts were built or deployed on and where you will also be invoking the “transfer” transaction. This is either "testnet", "futurenet" or "mainnet".&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;transfer_xlm&lt;/strong&gt;: This is the name of the function in my localfoodstore contract id/address.  &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;From (--from)&lt;/strong&gt;: This is still the admin address or sourceAccount. For the transfer transaction, the admin must have a lot of XLM tokens to send to the address “to”. The address here must have been generated having its key pair (public key and secret key) and have been funded by the friendbot or another address.It’s worthy to note that if you dont have the secret key of the public address here, the transaction will fail. This can also be called Issuer address.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;To (--to)&lt;/strong&gt;: This holds the address to which the tokens are sent to. This address can be a contract id/address or a personal public address. This can also be called recipient address.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Amount (--amount)&lt;/strong&gt;: this is the amount of tokens to be sent to the public or contract address. It can be the native XLM token or any non-native assest. &lt;/p&gt;&lt;/li&gt;
&lt;/ol&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%2Fgniyg5589yjxyn8b51e5.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%2Fgniyg5589yjxyn8b51e5.png" alt="Image description" width="434" height="176"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Here you can see the transfer of &lt;strong&gt;1000XLM&lt;/strong&gt; was successful to my contract address&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%2F2u9uv1x1wgjsdanqscwz.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%2F2u9uv1x1wgjsdanqscwz.png" alt="Image description" width="800" height="428"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Additional Prize Categories: Glorious Game and/or Super Sustainable&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;My Submission is largely under the Super Sustainable dApp category.&lt;/p&gt;

&lt;h2&gt;
  
  
  Next Steps
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;I hope to include feature to give the users the choice to donate their rewards to charity organisations&lt;/li&gt;
&lt;li&gt;Also I will need to improve the UI&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Reach me here for collaborations:&lt;br&gt;
&lt;a href="http://linkedin.com/in/chieloka-madubugwu-java" rel="noopener noreferrer"&gt;LinkedIn&lt;/a&gt; &lt;br&gt;
&lt;a href="//realmatec01@gmail.com"&gt;Gmail&lt;/a&gt;&lt;br&gt;
&lt;a href="https://wa.link/lxae1v" rel="noopener noreferrer"&gt;Whatsapp&lt;/a&gt; &lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>stellarchallenge</category>
      <category>blockchain</category>
      <category>web3</category>
    </item>
  </channel>
</rss>
