<?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: Tanay Dwivedi</title>
    <description>The latest articles on DEV Community by Tanay Dwivedi (@tanay_dwivedi9098).</description>
    <link>https://dev.to/tanay_dwivedi9098</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%2F2818945%2F79d1db89-beae-4352-a0d1-0b966ca2b64b.png</url>
      <title>DEV Community: Tanay Dwivedi</title>
      <link>https://dev.to/tanay_dwivedi9098</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/tanay_dwivedi9098"/>
    <language>en</language>
    <item>
      <title>Nova: Your friendly and not-so-average extraterrestrial life coach.</title>
      <dc:creator>Tanay Dwivedi</dc:creator>
      <pubDate>Fri, 31 Jul 2026 13:35:29 +0000</pubDate>
      <link>https://dev.to/tanay_dwivedi9098/nova-your-friendly-and-not-so-average-extraterrestrial-life-coach-1jc8</link>
      <guid>https://dev.to/tanay_dwivedi9098/nova-your-friendly-and-not-so-average-extraterrestrial-life-coach-1jc8</guid>
      <description>&lt;p&gt;Long time no see. Many of you guys here at Dev.to might have forgotten me, as I was pretty much inactive for the past couple of weeks. Life happens, and sometimes you gotta prioritize stuff that's important. Now that I'm back, you guys will see me active and, if I'm lucky enough, winning a few hackathons as well.&lt;/p&gt;

&lt;p&gt;Two weeks ago, I completed an AI-powered application while learning Generative AI from &lt;a href="https://www.youtube.com/watch?v=vwncYfhxbR0" rel="noopener noreferrer"&gt;Shriyans Coding School&lt;/a&gt;. In this particular tutorial, it was taught how one can create their own personal assistant using LangChain. After completing it, I built my very own AI assistant, Nova, who will guide you through the struggles of your daily life with his philosophical insights, as he is way more evolved than us Earthlings.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;GitHub Repo&lt;/strong&gt;: &lt;a href="https://github.com/tanay9098/Nova" rel="noopener noreferrer"&gt;https://github.com/tanay9098/Nova&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;App Link&lt;/strong&gt;: &lt;a href="https://tanay9098-nova-app-ippn9j.streamlit.app/" rel="noopener noreferrer"&gt;https://tanay9098-nova-app-ippn9j.streamlit.app/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F0dudimmpdn4h2iiddgsz.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F0dudimmpdn4h2iiddgsz.png" alt="Nova app screenshot" width="800" height="362"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Tools I used 🧰
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;LangChain: A framework to build an LLM-powered application using Mistral AI.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Python: For coding and other stuff.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Streamlit: For UI and hosting.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Claude Code and Codex: To make development faster and easier.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Struggles I faced 😭
&lt;/h2&gt;

&lt;p&gt;It was my first time building a Gen AI-powered application, so I had to read LangChain documentation from scratch and figure out stuff on my own as I was progressing while building this application. Another struggle was that the tutorial video was recorded 3 months ago, and in just that much time, the LangChain docs got updated and many things got deprecated, so I had to fix that as well. One time accidently I exposed my Mistral API key to claude code so needed to rotate it as well. &lt;/p&gt;

&lt;h2&gt;
  
  
  Learnings 📖
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;One of the most important things I learnt that how I can activate and use virtual environment for python projects and how it resolves the version conflict issue when someone else is running my app locally on their machine.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Another thing I learnt about Messages Types properties in LangChain like &lt;strong&gt;SystemMessage&lt;/strong&gt;, &lt;strong&gt;HumanMessage&lt;/strong&gt;, &lt;strong&gt;AIMessage&lt;/strong&gt; from &lt;strong&gt;langchain_core.messages&lt;/strong&gt; and how they can use to structure chat while talking with LLM model.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Conversation history and how I can implement in my LLM-powered application&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Embeddings and how they power LLMs (it can be a separate topic on its own which I will write about in my later blogs)&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;That's all from my side. I hope that you guys enjoyed my content. Feedback and suggestions to improve my content quality is welcome. &lt;/p&gt;

&lt;p&gt;Thanks for reading :)&lt;/p&gt;

</description>
      <category>ai</category>
      <category>webdev</category>
      <category>github</category>
      <category>python</category>
    </item>
    <item>
      <title>I developed an App that can k!ll you.</title>
      <dc:creator>Tanay Dwivedi</dc:creator>
      <pubDate>Sat, 20 Jun 2026 07:57:26 +0000</pubDate>
      <link>https://dev.to/tanay_dwivedi9098/i-developed-an-app-that-can-kll-you-2oad</link>
      <guid>https://dev.to/tanay_dwivedi9098/i-developed-an-app-that-can-kll-you-2oad</guid>
      <description>&lt;p&gt;Now as I got all the attention, I would like to tell it's not like that😆. Recently, I watched a Kdrama, &lt;strong&gt;"If wishes could kill"&lt;/strong&gt;. Taking inspiration from that, I built &lt;strong&gt;Girigo&lt;/strong&gt;(app's name in the show).&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fmthg0vt1tllgiaognlr5.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fmthg0vt1tllgiaognlr5.png" alt=" " width="562" height="909"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;GitHub repo&lt;/strong&gt;: &lt;a href="https://github.com/tanay9098/Girigo" rel="noopener noreferrer"&gt;https://github.com/tanay9098/Girigo&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;App live link&lt;/strong&gt;: &lt;a href="https://girigofrontend.netlify.app/" rel="noopener noreferrer"&gt;https://girigofrontend.netlify.app/&lt;/a&gt;   &lt;/p&gt;

&lt;h2&gt;
  
  
  Tech stacks used 🤖
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Layer&lt;/th&gt;
&lt;th&gt;Technology&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Web Frontend&lt;/td&gt;
&lt;td&gt;React 19, Vite 8, PWA (Workbox), Web Crypto API&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Backend&lt;/td&gt;
&lt;td&gt;Node.js, Express 5&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Database&lt;/td&gt;
&lt;td&gt;Supabase (PostgreSQL + Storage + Auth)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Job Queue&lt;/td&gt;
&lt;td&gt;BullMQ, Redis, IORedis&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Push Notifications&lt;/td&gt;
&lt;td&gt;Web Push API (VAPID), web-push&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Encryption&lt;/td&gt;
&lt;td&gt;AES-256-GCM, PBKDF2 (310k iterations)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Deployment&lt;/td&gt;
&lt;td&gt;Netlify (frontend), Render.com (backend + worker)&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  Project Directory 📖
&lt;/h2&gt;

&lt;p&gt;Girigo/&lt;br&gt;
├── frontend/          # React + Vite SPA&lt;br&gt;
│   └── src/&lt;br&gt;
│       ├── components/    # VideoRecorder, WishForm, CountDown, …&lt;br&gt;
│       ├── hooks/         # useMediaRecorder, useCountdown, usePush&lt;br&gt;
│       ├── lib/           # crypto.js, api.js, supabase.js&lt;br&gt;
│       └── pages/         # AuthPage, DashboardPage&lt;br&gt;
├── backend/           # Express API + BullMQ worker&lt;br&gt;
│   ├── routes/        # wishes.js, push.js&lt;br&gt;
│   ├── jobs/          # worker.js (scheduled notifications)&lt;br&gt;
│   ├── middleware/    # auth.js (Supabase JWT)&lt;br&gt;
│   └── lib/           # queue.js, storage.js, webpush.js, supabase.js&lt;br&gt;
└── supabase/&lt;br&gt;
    └── migrations/    # SQL schema migrations&lt;/p&gt;

&lt;h2&gt;
  
  
  Struggles and learnings 🎓
&lt;/h2&gt;

&lt;p&gt;It was my one of the few apps that I put in production so I had to resolve production issues which many AI and LLM tools were not able to do so,it helps me to improve my debugging skills to a great extent and most importantly, I learnt how to prompt properly.&lt;/p&gt;

&lt;p&gt;I also knew what &lt;strong&gt;.toml&lt;/strong&gt; and &lt;strong&gt;.yaml&lt;/strong&gt; files are, and how it saves our time for configuring our application for deployment.&lt;/p&gt;

&lt;p&gt;Earlier I didn't knew much about security concepts but building this application pushed me to learn security concepts to prevent users to access someone's else data and video-encryption. Few of these concepts are, &lt;strong&gt;Row-Level-Security&lt;/strong&gt;, &lt;strong&gt;SHA-256&lt;/strong&gt;,&lt;strong&gt;PBKDF-2&lt;/strong&gt;, and, &lt;strong&gt;AES 256 GCM&lt;/strong&gt; for video encryption. Now explaining these security concepts and how they work in tandem with each other deserves its own dedicated blog, which I will share next time.&lt;/p&gt;

&lt;p&gt;Thanks for reading :)&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>javascript</category>
      <category>opensource</category>
      <category>web</category>
    </item>
    <item>
      <title>PokeDex: A pokemon based NFT platform</title>
      <dc:creator>Tanay Dwivedi</dc:creator>
      <pubDate>Sun, 07 Jun 2026 21:17:48 +0000</pubDate>
      <link>https://dev.to/tanay_dwivedi9098/pokedex-a-pokemon-based-nft-platform-1352</link>
      <guid>https://dev.to/tanay_dwivedi9098/pokedex-a-pokemon-based-nft-platform-1352</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for the &lt;a href="https://dev.to/challenges/github-2026-05-21"&gt;GitHub Finish-Up-A-Thon Challenge&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Pokémon and all Pokémon character names are trademarks of Nintendo. This project is intended for educational purposes only.&lt;/p&gt;
&lt;/blockquote&gt;

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

&lt;p&gt;I built a full stack Pokemon based NFT platform where you can trade, collect and battle Pokemon based NFT cards hosted on Polygon blockchain. All the Pokemon based digital collectibles properties is fetched from &lt;a href="https://pokeapi.co/" rel="noopener noreferrer"&gt;PokeApi&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Tech stacks I used 🤖
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Layer&lt;/th&gt;
&lt;th&gt;Technology&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Smart Contracts&lt;/td&gt;
&lt;td&gt;Solidity 0.8.25, Hardhat, OpenZeppelin v5&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Blockchain&lt;/td&gt;
&lt;td&gt;Polygon (Amoy Testnet / Mainnet)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Web Frontend&lt;/td&gt;
&lt;td&gt;React 19, TypeScript, Vite 5, ethers.js v6&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Mobile App&lt;/td&gt;
&lt;td&gt;Expo ~54, React Native 0.81, Expo Router&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Data&lt;/td&gt;
&lt;td&gt;PokéAPI (pokemon data), Pinata (IPFS metadata; planned for future release)&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

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

&lt;p&gt;&lt;strong&gt;GitHub repo:&lt;/strong&gt;&lt;a href="https://github.com/tanay9098/PokeDex" rel="noopener noreferrer"&gt;https://github.com/tanay9098/PokeDex&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;Web app version:&lt;/strong&gt;&lt;a href="https://pokedex9098.netlify.app/" rel="noopener noreferrer"&gt;https://pokedex9098.netlify.app/&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;Mobile version(Android build stable version):&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://expo.dev/accounts/tanay9098/projects/PokeDex/builds/53d0f4cf-14a8-4856-bcb4-12d5314cf417" rel="noopener noreferrer"&gt;https://expo.dev/accounts/tanay9098/projects/PokeDex/builds/53d0f4cf-14a8-4856-bcb4-12d5314cf417&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;  &lt;iframe src="https://www.youtube.com/embed/BTO3eJf65rg"&gt;
  &lt;/iframe&gt;
&lt;/p&gt;

&lt;h2&gt;
  
  
  The Comeback Story 🏋️‍♂️
&lt;/h2&gt;

&lt;p&gt;Few months ago, I was learning React Native from &lt;a href="https://www.linkedin.com/in/betomoedano/" rel="noopener noreferrer"&gt;Alberto Moedano&lt;/a&gt; on one of his  &lt;a href="https://www.youtube.com/watch?v=BUXnASp_WyQ&amp;amp;t=1502s" rel="noopener noreferrer"&gt;tutorial&lt;/a&gt; video on his &lt;a href="https://www.youtube.com/@codewithbeto" rel="noopener noreferrer"&gt;Youtube channel&lt;/a&gt; where he taught React Native by building an application named, PokeDex, hence lazy me named it just like that 😂. Now coming to the main part, it was just a simple React Native project which used to fetch Pokemons from &lt;a href="https://pokeapi.co/" rel="noopener noreferrer"&gt;PokeApi&lt;/a&gt; and later I thought of improvising and adding new changes such as building a Pokemon based NFT trading card platform or Pokemon based battle game but I procrastinated and almost gave up on it, until one day I saw a mail from DEV.to for GitHub Finish-Up-A-Thon challenge which ignited a fire🔥 in me to complete it. &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%2F4ahm81n9kld0cmlhtq3d.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%2F4ahm81n9kld0cmlhtq3d.png" alt="Earlier static version of PokeDex" width="800" height="500"&gt;&lt;/a&gt;&lt;br&gt;
          &lt;em&gt;Earlier static version of PokeDex&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  How GitHub Copilot helped me ❤️‍🩹
&lt;/h2&gt;

&lt;p&gt;GitHub Copilot helped me to save a lot of time by rewriting a separate version for web which otherwise would take a hell lot of time.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fs5feqlq09uteiws01pfw.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%2Fs5feqlq09uteiws01pfw.png" alt="Separate version web" width="799" height="513"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;It also helped me with Blockchain implementation wherever necessary&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%2Fywhdvspc7nyxc5wke65l.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%2Fywhdvspc7nyxc5wke65l.png" alt="Blockchain implementation" width="800" height="184"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;It critiqued my development approach and corrected me wherever I was going wrong&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%2Fsg649aow41eb8mrfvjzm.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%2Fsg649aow41eb8mrfvjzm.png" alt="Critiquing my approach" width="800" height="557"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Struggles and learning 😣
&lt;/h2&gt;

&lt;p&gt;This was my first web3/blockchain project and at that time I just had a surface level knowledge of it, hence I had to learn web3/blockchain-based technologies especially &lt;strong&gt;Solidity&lt;/strong&gt; programming language.&lt;/p&gt;

&lt;p&gt;I was using claude Haiku model in GitHub copilot free tier and there were times when it was generating hallucinated codes so I had  go through the code structure and read each code line by line which enabled me to debug the issues and make few contextual changes. &lt;/p&gt;

&lt;p&gt;Also I encountered several build errors related to android and I learned a lesson the hard way, that always keep a separate branch for preview and production and don't push everything to main/production branch.&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%2Fyybs2rn4gwqr6yrlbz97.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%2Fyybs2rn4gwqr6yrlbz97.png" alt="Build errors" width="800" height="600"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Limitations and Future Enhancements 📚
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Unintentional Technical Trade-offs
&lt;/h3&gt;

&lt;p&gt;This project demonstrates the web 3 enabled frontend and how it interacts with wallet integration(Metamask), Smart Contracts and Blockchain based transactions, but I didn't fully implement NFT based market architecture. Instead of that, I implemented the logic of NFT like ownership such that it can be simulated locally on your machine. Other trade-offs were no integration of multiplayer battle mode, rudimentary implementation of Mobile app and zero synchronization between mobile and web app.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Limitations due to Technical Trade-offs&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Ownership is not stored on-chain as purchased pokemons are tracked locally.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Non transferable assests as Pokemon cards aren't minted as NFTs.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Purchased collectibles are stored locally on browser and mobile device hence if you clear the browsing data,cache, or switch devices then it will reset the collection.  &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;The application only demonstrates the purchase flow but doesn't demonstrate peer-to-peer trade or transactions. The transaction gets send to a hardcoded deployer address only(which is me).&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;No sync between mobile and web due to changes being implemented locally.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Pokemon battle feature includes battle logic(single player only) but doesn't have multiplayer feature.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Right now there are few issues with respect to wallet connection in mobile version as for it I am using &lt;a href="https://thirdweb.com/" rel="noopener noreferrer"&gt;thirdweb&lt;/a&gt; whose few package is in conflict with few of react-native packages hence need to find a workaround. Hence implementation is pretty much rudimentary in nature.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;It's all because of few things that I didn't factor in while starting this project. One of the few thing I thought to implement was minted NFT Pokemon cards(or purchased Pokemon cards) can be used in Battles but due to lack of technical knowledge for now, I wasn't able to implement multiplayer mode. Another issue is there is no synchronization between web and mobile due to absence of a unified backend and blockchain services to keep track of changes remotely, which brings me to the last part, that &lt;a href="https://pokeapi.co/" rel="noopener noreferrer"&gt;PokeApi&lt;/a&gt; being a read only public API, it has no such concept of ownership because it is accessible to everyone for public use. Hence for example, if one have to purchase Bulbasaur NFT card from my app, its data will be fetched from &lt;a href="https://pokeapi.co/" rel="noopener noreferrer"&gt;PokeApi&lt;/a&gt;, hence the question would be who owns the Bulbasaur NFT before a user buys it? Someone has to mint it and put it for sale and that someone has to have a proof of an actual ownership of the Bulbasaur NFT but as mentioned that data is being fetched from a public API.  &lt;/p&gt;

&lt;h3&gt;
  
  
  Future Enhancements and Solutions
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Adding multiplayer battle mode by implementing socket.io or WebRTC&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Enabling sync between mobile and web&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;To support actual NFT ownership and trading, I would need to design and maintain my own data layer consisting of a dedicated database for Pokémon assets, user inventories, marketplace listings, transaction records, and metadata. This would also require implementing custom read and write APIs, backend services, authentication, and synchronization between the database and blockchain smart contracts. Inculcating all these changes just would expand the scope and complexity of the project further which is why it has a dedicated space for itself for a full-scale project which I will implement it in future. &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Solve the conflict issue of mobile version with &lt;a href="https://thirdweb.com/" rel="noopener noreferrer"&gt;Third web&lt;/a&gt;. &lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

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