<?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: JAI NIRESH J</title>
    <description>The latest articles on DEV Community by JAI NIRESH J (@jainireshj).</description>
    <link>https://dev.to/jainireshj</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%2F1661775%2F0ac9a711-ecef-4852-bb84-0d78d93f1605.JPG</url>
      <title>DEV Community: JAI NIRESH J</title>
      <link>https://dev.to/jainireshj</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/jainireshj"/>
    <language>en</language>
    <item>
      <title>A Time Voyage for Tunes 🎵</title>
      <dc:creator>JAI NIRESH J</dc:creator>
      <pubDate>Thu, 19 Dec 2024 11:40:32 +0000</pubDate>
      <link>https://dev.to/jainireshj/a-time-voyage-for-tunes-3ej</link>
      <guid>https://dev.to/jainireshj/a-time-voyage-for-tunes-3ej</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for the &lt;a href="https://dev.to/challenges/devcycle"&gt;DevCycle Feature Flag Challenge&lt;/a&gt;: Feature Flag Funhouse&lt;/em&gt;&lt;/p&gt;

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

&lt;p&gt;Welcome to our Time-Traveling Music Store, where every visit takes you on a nostalgic journey through the decades. Leveraging a dynamic feature flag, the store adapts to showcase music from any chosen year, immersing you in an authentic experience of that era.&lt;/p&gt;

&lt;p&gt;For example, select 1999 to explore the hits of the late '90s, accompanied by a website design reminiscent of that era’s retro aesthetics. If you choose 1945, the store transforms into a vintage interface, echoing the charm and style of mid-century design, while displaying iconic music from the time.&lt;/p&gt;

&lt;p&gt;For modern-day enthusiasts, the experience updates with sleek and cutting-edge designs for 2023, 2024, and beyond, offering the latest tracks and an ultra-modern interface.&lt;/p&gt;

&lt;p&gt;You can refresh the page or click a dedicated button to fetch new music from the year you’ve selected, keeping your musical exploration as dynamic as time itself.&lt;/p&gt;

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

&lt;p&gt;Demo walkthrough on the application : &lt;br&gt;
&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/2fbL48dFoxs"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;Live website link : &lt;br&gt;
&lt;a href="https://time-travel-shop-react.onrender.com" rel="noopener noreferrer"&gt;https://time-travel-shop-react.onrender.com&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;When you travel back to 1990, here is how the website would look, a real 1990 feel , and the retro styles would make you feel nostalgic.&lt;br&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%2Fgw6f4081ba33tb1d0qi2.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%2Fgw6f4081ba33tb1d0qi2.png" alt="Image description" width="800" height="425"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;A space themed timeline that conveys your current position in time, and has the TIME TRAVEL button on it. (Click 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%2Fwrnrz2aa6cp5ho5gaxrx.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%2Fwrnrz2aa6cp5ho5gaxrx.png" alt="Image description" width="800" height="46"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The slider that allows you to choose, the year that you wanna time travel to , therefore choosing 1956 as your destination year , and click on "Travel here":&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%2F5vrkvkj39xkcmhffds6l.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%2F5vrkvkj39xkcmhffds6l.png" alt="Image description" width="800" height="422"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Hold tight, your into quantum space ....&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%2F3axpkmjwkvxw4e5jdctd.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%2F3axpkmjwkvxw4e5jdctd.png" alt="Image description" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The olden 1956's website, with music from the same year :&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%2F3vdlx59nr37jm8273lih.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%2F3vdlx59nr37jm8273lih.png" alt="Image description" width="800" height="422"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Feeling enough of olden music, travel back to the modern era to listen to modern music !&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%2F3lwch89kl1i8z46mqf86.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%2F3lwch89kl1i8z46mqf86.png" alt="Image description" width="800" height="422"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The Modern era website : &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%2F29ccw4xr3epme6jvg4gz.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%2F29ccw4xr3epme6jvg4gz.png" alt="Image description" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Click on change carousel, to display new styles of carousel :&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%2Fho891v0q2py3swzl7z0i.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%2Fho891v0q2py3swzl7z0i.png" alt="Image description" width="800" height="420"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  My Code
&lt;/h2&gt;


&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fassets.dev.to%2Fassets%2Fgithub-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/jainiresh" rel="noopener noreferrer"&gt;
        jainiresh
      &lt;/a&gt; / &lt;a href="https://github.com/jainiresh/time-travel-shop-react" rel="noopener noreferrer"&gt;
        time-travel-shop-react
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      
    &lt;/h3&gt;
  &lt;/div&gt;
  &lt;div class="ltag-github-body"&gt;
    
&lt;div id="readme" class="md"&gt;
&lt;p&gt;&lt;em&gt;This is a submission for the &lt;a href="https://dev.to/challenges/devcycle" rel="nofollow"&gt;DevCycle Feature Flag Challenge&lt;/a&gt;: Feature Flag Funhouse&lt;/em&gt;&lt;/p&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;What I Built&lt;/h2&gt;
&lt;/div&gt;
&lt;p&gt;Welcome to our Time-Traveling Music Store, where every visit takes you on a nostalgic journey through the decades. Leveraging a dynamic feature flag, the store adapts to showcase music from any chosen year, immersing you in an authentic experience of that era.&lt;/p&gt;
&lt;p&gt;For example, select 1999 to explore the hits of the late '90s, accompanied by a website design reminiscent of that era’s retro aesthetics. If you choose 1945, the store transforms into a vintage interface, echoing the charm and style of mid-century design, while displaying iconic music from the time.&lt;/p&gt;
&lt;p&gt;For modern-day enthusiasts, the experience updates with sleek and cutting-edge designs for 2023, 2024, and beyond, offering the latest tracks and an ultra-modern interface.&lt;/p&gt;
&lt;p&gt;You can refresh the page or click a dedicated button to fetch new music from the year you’ve…&lt;/p&gt;
&lt;/div&gt;
  &lt;/div&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/jainiresh/time-travel-shop-react" rel="noopener noreferrer"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;br&gt;
&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fassets.dev.to%2Fassets%2Fgithub-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/jainiresh" rel="noopener noreferrer"&gt;
        jainiresh
      &lt;/a&gt; / &lt;a href="https://github.com/jainiresh/time-travel-shop-react-server" rel="noopener noreferrer"&gt;
        time-travel-shop-react-server
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      
    &lt;/h3&gt;
  &lt;/div&gt;
  &lt;div class="ltag-github-body"&gt;
    
&lt;div id="readme" class="md"&gt;
&lt;p&gt;&lt;em&gt;This is a submission for the &lt;a href="https://dev.to/challenges/devcycle" rel="nofollow"&gt;DevCycle Feature Flag Challenge&lt;/a&gt;: Feature Flag Funhouse&lt;/em&gt;&lt;/p&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;What I Built&lt;/h2&gt;
&lt;/div&gt;
&lt;p&gt;Welcome to our Time-Traveling Music Store, where every visit takes you on a nostalgic journey through the decades. Leveraging a dynamic feature flag, the store adapts to showcase music from any chosen year, immersing you in an authentic experience of that era.&lt;/p&gt;
&lt;p&gt;For example, select 1999 to explore the hits of the late '90s, accompanied by a website design reminiscent of that era’s retro aesthetics. If you choose 1945, the store transforms into a vintage interface, echoing the charm and style of mid-century design, while displaying iconic music from the time.&lt;/p&gt;
&lt;p&gt;For modern-day enthusiasts, the experience updates with sleek and cutting-edge designs for 2023, 2024, and beyond, offering the latest tracks and an ultra-modern interface.&lt;/p&gt;
&lt;p&gt;You can refresh the page or click a dedicated button to fetch new music from the year you’ve…&lt;/p&gt;
&lt;/div&gt;
  &lt;/div&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/jainiresh/time-travel-shop-react-server" rel="noopener noreferrer"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;


&lt;h2&gt;
  
  
  Other tools used
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;MusicBrainz API : I made use of the MusicBrainz API, for fetching the music from different years.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Redux : I made use of Redux for state management varying from music to time year managing.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;archive.io : I made use of archive.io to fetch the thumbnail images of the music that were fetched, to be displayed.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Youtube Search API : I made use of the Youtube search api key, to search, fetch and play the video music of the selected track.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  My DevCycle Experience
&lt;/h2&gt;

&lt;p&gt;We leveraged the YEAR (as time), as our feature flag variable, and used this variable as a feature flag, changing the current era of experience on the website.&lt;/p&gt;

&lt;p&gt;Changing the YEAR in the website, would trigger a feature flag update API (Refer devcycle's management API for more info), and updates the year on the feature flag.&lt;/p&gt;

&lt;p&gt;This update internally rerenders the whole application, making it feel as if the website had time travelled to any year possible.&lt;/p&gt;

&lt;p&gt;Working with devCycle was super easy, especially with their documentation.&lt;br&gt;
We personally feel this would be a game changer on the world of feature flags, provided their support to multiple client and server side SDKs, which are becoming and have become quite popular.&lt;/p&gt;

&lt;h3&gt;
  
  
  Additional Prize Categories
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;OpenFeature Aficionado :
My submission is also eligible to the above mentioned Additional Prize category, since my application is using OpenFeature of React client SDK from dev cycle.&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>devchallenge</category>
      <category>devcyclechallenge</category>
      <category>webdev</category>
      <category>devops</category>
    </item>
    <item>
      <title>Security headers</title>
      <dc:creator>JAI NIRESH J</dc:creator>
      <pubDate>Thu, 21 Nov 2024 13:13:57 +0000</pubDate>
      <link>https://dev.to/jainireshj/security-headers-19pj</link>
      <guid>https://dev.to/jainireshj/security-headers-19pj</guid>
      <description></description>
      <category>security</category>
    </item>
    <item>
      <title>SafeTransfer Hub: Contactless and Secure End-to-End Encrypted File Sharing</title>
      <dc:creator>JAI NIRESH J</dc:creator>
      <pubDate>Mon, 14 Oct 2024 05:44:03 +0000</pubDate>
      <link>https://dev.to/jainireshj/safetransfer-hub-contactless-and-secure-end-to-end-encrypted-file-sharing-1jg1</link>
      <guid>https://dev.to/jainireshj/safetransfer-hub-contactless-and-secure-end-to-end-encrypted-file-sharing-1jg1</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for the &lt;a href="https://dev.to/challenges/pinata"&gt;The Pinata Challenge&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

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

&lt;p&gt;I built &lt;strong&gt;SafeTransfer Hub&lt;/strong&gt;, a secure file-sharing application where users can create accounts, and without sharing any personal information like phonenumbers, emails with other users can send and receive files securely. The core idea is that files can be uploaded and targeted to specific recipients in the app, with top-tier security through encryption.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Encryption Mechanism&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;SafeTransfer Hub employs a &lt;strong&gt;hybrid encryption approach&lt;/strong&gt; using both &lt;strong&gt;symmetric and asymmetric encryption&lt;/strong&gt; for robust security. The process is as follows:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Upon registration, each user is assigned a &lt;strong&gt;public key&lt;/strong&gt; and a &lt;strong&gt;private key&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;When a sender uploads a file targeting a recipient, the file is encrypted with the recipient's public key.&lt;/li&gt;
&lt;li&gt;The encrypted file is stored on Pinata and added to a global file pool visible to all users, including the recipient.&lt;/li&gt;
&lt;li&gt;While anyone can view file entries, all files remain encrypted. Users can attempt to decrypt files using their private key.&lt;/li&gt;
&lt;li&gt;If the file is not intended for that user, their private key cannot decrypt it, ensuring privacy and security.&lt;/li&gt;
&lt;li&gt;The application provides an abstraction in the form of &lt;strong&gt;"Unlock"&lt;/strong&gt; and &lt;strong&gt;"Unlock All"&lt;/strong&gt; buttons, which automatically handle the decryption process in the background. The &lt;strong&gt;"Unlock All"&lt;/strong&gt; feature attempts to decrypt all files in the system, but only files intended for the user are successfully unlocked, as only their private key can decrypt them.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Global Pool, Yet Secure&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;All users in the system can view a &lt;strong&gt;global pool of files&lt;/strong&gt;—entries for every file uploaded—but files remain completely inaccessible unless the user is the intended recipient. When someone tries to access a file they don’t own, they won’t be able to decrypt it because the file is locked with the recipient’s public key, and only that recipient can use their private key to unlock it.&lt;/p&gt;

&lt;p&gt;This ensures that files can be securely stored and transferred between users without any unauthorized access, making it an ideal platform for sharing sensitive information.&lt;/p&gt;

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

&lt;p&gt;Here is the live website link : &lt;a href="https://pinata-secure-vault-client.onrender.com/" rel="noopener noreferrer"&gt;Live website&lt;/a&gt;&lt;/p&gt;

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

&lt;p&gt;Client side code :&lt;br&gt;
&lt;/p&gt;
&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev.to%2Fassets%2Fgithub-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/jainiresh" rel="noopener noreferrer"&gt;
        jainiresh
      &lt;/a&gt; / &lt;a href="https://github.com/jainiresh/pinata_Secure_Vault_Client" rel="noopener noreferrer"&gt;
        pinata_Secure_Vault_Client
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      
    &lt;/h3&gt;
  &lt;/div&gt;
  &lt;div class="ltag-github-body"&gt;
    
&lt;div id="readme" class="md"&gt;
&lt;p&gt;&lt;em&gt;This is a submission for the &lt;a href="https://dev.to/challenges/pinata" rel="nofollow"&gt;The Pinata Challenge&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;What I Built&lt;/h2&gt;
&lt;/div&gt;
&lt;p&gt;I built &lt;strong&gt;SafeTransfer Hub&lt;/strong&gt;, a secure file-sharing application where users can create accounts, and without sharing any personal information like phonenumbers, emails with other users can send and receive files securely. The core idea is that files can be uploaded and targeted to specific recipients in the app, with top-tier security through encryption.&lt;/p&gt;
&lt;div class="markdown-heading"&gt;
&lt;h3 class="heading-element"&gt;&lt;strong&gt;Encryption Mechanism&lt;/strong&gt;&lt;/h3&gt;
&lt;/div&gt;
&lt;p&gt;SafeTransfer Hub employs a &lt;strong&gt;hybrid encryption approach&lt;/strong&gt; using both &lt;strong&gt;symmetric and asymmetric encryption&lt;/strong&gt; for robust security. The process is as follows:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Upon registration, each user is assigned a &lt;strong&gt;public key&lt;/strong&gt; and a &lt;strong&gt;private key&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;When a sender uploads a file targeting a recipient, the file is encrypted with the recipient's public key.&lt;/li&gt;
&lt;li&gt;The encrypted file is stored on Pinata and added to a global file pool visible to all users, including the recipient.&lt;/li&gt;
&lt;li&gt;While anyone can view file entries, all files…&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
  &lt;/div&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/jainiresh/pinata_Secure_Vault_Client" rel="noopener noreferrer"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;


&lt;p&gt;Server side code : &lt;br&gt;
&lt;/p&gt;
&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev.to%2Fassets%2Fgithub-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/jainiresh" rel="noopener noreferrer"&gt;
        jainiresh
      &lt;/a&gt; / &lt;a href="https://github.com/jainiresh/Pinata_secure_vault_server" rel="noopener noreferrer"&gt;
        Pinata_secure_vault_server
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      
    &lt;/h3&gt;
  &lt;/div&gt;
  &lt;div class="ltag-github-body"&gt;
    
&lt;div id="readme" class="MD"&gt;
&lt;p&gt;&lt;em&gt;This is a submission for the &lt;a href="https://dev.to/challenges/pinata" rel="nofollow"&gt;The Pinata Challenge&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;What I Built&lt;/h2&gt;
&lt;/div&gt;
&lt;p&gt;I built &lt;strong&gt;SafeTransfer Hub&lt;/strong&gt;, a secure file-sharing application where users can create accounts, and without sharing any personal information like phonenumbers, emails with other users can send and receive files securely. The core idea is that files can be uploaded and targeted to specific recipients in the app, with top-tier security through encryption.&lt;/p&gt;
&lt;div class="markdown-heading"&gt;
&lt;h3 class="heading-element"&gt;&lt;strong&gt;Encryption Mechanism&lt;/strong&gt;&lt;/h3&gt;
&lt;/div&gt;
&lt;p&gt;SafeTransfer Hub employs a &lt;strong&gt;hybrid encryption approach&lt;/strong&gt; using both &lt;strong&gt;symmetric and asymmetric encryption&lt;/strong&gt; for robust security. The process is as follows:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Upon registration, each user is assigned a &lt;strong&gt;public key&lt;/strong&gt; and a &lt;strong&gt;private key&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;When a sender uploads a file targeting a recipient, the file is encrypted with the recipient's public key.&lt;/li&gt;
&lt;li&gt;The encrypted file is stored on Pinata and added to a global file pool visible to all users, including the recipient.&lt;/li&gt;
&lt;li&gt;While anyone can view file entries, all files…&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
  &lt;/div&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/jainiresh/Pinata_secure_vault_server" rel="noopener noreferrer"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;


&lt;h2&gt;
  
  
  More Details
&lt;/h2&gt;

&lt;p&gt;SafeTransfer Hub is built with simplicity, security, and user privacy in mind. Users can safely store and share files with recipients while being assured that no one else can access their data.&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>pinatachallenge</category>
      <category>webdev</category>
      <category>api</category>
    </item>
    <item>
      <title>Detective Simulator - Powered by pinata</title>
      <dc:creator>JAI NIRESH J</dc:creator>
      <pubDate>Thu, 10 Oct 2024 06:44:19 +0000</pubDate>
      <link>https://dev.to/jainireshj/detective-simulator-powered-by-pinata-4c9b</link>
      <guid>https://dev.to/jainireshj/detective-simulator-powered-by-pinata-4c9b</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for the &lt;a href="https://dev.to/challenges/pinata"&gt;The Pinata Challenge &lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

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

&lt;p&gt;This is a full fledged crime investigation scenario simulation game, mocking a real life crime investigation, using AI , Email apis and PINATA , managing file uploads and displays to give you a simulation of a real investigation scenario.&lt;/p&gt;

&lt;p&gt;Haven't each and everyone, dreamt about investigating and finding clues, leading to the ground breaking discovery of the villains/culprits, like the ones they show in the movies.&lt;/p&gt;

&lt;p&gt;well, this one is a complete crime solver, leveraging AI to give yout the exact simulation you need, along with the frontend magic that make you feel you are investigaing a real crime scene.&lt;/p&gt;

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

&lt;p&gt;Live Deployed version : &lt;a href="https://ai-solvethecase-clientside.onrender.com" rel="noopener noreferrer"&gt;https://ai-solvethecase-clientside.onrender.com&lt;/a&gt;&lt;/p&gt;

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

&lt;p&gt;Our client : &lt;a href="https://github.com/jainiresh/AI-SolveTheCase-Client" rel="noopener noreferrer"&gt;https://github.com/jainiresh/AI-SolveTheCase-Client&lt;/a&gt;&lt;br&gt;
Our server : &lt;a href="https://github.com/jainiresh/AI-SolveTheCase" rel="noopener noreferrer"&gt;https://github.com/jainiresh/AI-SolveTheCase&lt;/a&gt;&lt;/p&gt;


&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev.to%2Fassets%2Fgithub-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/jainiresh" rel="noopener noreferrer"&gt;
        jainiresh
      &lt;/a&gt; / &lt;a href="https://github.com/jainiresh/AI-SolveTheCase-Client" rel="noopener noreferrer"&gt;
        AI-SolveTheCase-Client
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      
    &lt;/h3&gt;
  &lt;/div&gt;
  &lt;div class="ltag-github-body"&gt;
    
&lt;div id="readme" class="md"&gt;
&lt;p&gt;&lt;em&gt;This is a submission for the &lt;a href="https://dev.to/challenges/pinata" rel="nofollow"&gt;The Pinata Challenge &lt;/a&gt;&lt;/em&gt;&lt;/p&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;What I Built and Why&lt;/h2&gt;
&lt;/div&gt;
&lt;p&gt;This is a full fledged crime investigation scenario simulation game, mocking a real life crime investigation, using AI , Email apis and PINATA , managing file uploads and displays to give you a simulation of a real investigation scenario.&lt;/p&gt;
&lt;p&gt;Haven't each and everyone, dreamt about investigating and finding clues, leading to the ground breaking discovery of the villains/culprits, like the ones they show in the movies.&lt;/p&gt;
&lt;p&gt;well, this one is a complete crime solver, leveraging AI to give yout the exact simulation you need, along with the frontend magic that make you feel you are investigaing a real crime scene.&lt;/p&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;Demo&lt;/h2&gt;
&lt;/div&gt;
&lt;p&gt;Live Deployed version : &lt;a href="https://ai-solvethecase-clientside.onrender.com" rel="nofollow noopener noreferrer"&gt;https://ai-solvethecase-clientside.onrender.com&lt;/a&gt;&lt;/p&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;Code&lt;/h2&gt;

&lt;/div&gt;
&lt;p&gt;Our client : &lt;a href="https://github.com/jainiresh/AI-SolveTheCase-Client" rel="noopener noreferrer"&gt;https://github.com/jainiresh/AI-SolveTheCase-Client&lt;/a&gt;
Our server : &lt;a href="https://github.com/jainiresh/AI-SolveTheCase" rel="noopener noreferrer"&gt;https://github.com/jainiresh/AI-SolveTheCase&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;{% embed &lt;a href="https://github.com/jainiresh/AI-SolveTheCase-Client" rel="noopener noreferrer"&gt;https://github.com/jainiresh/AI-SolveTheCase-Client&lt;/a&gt; %}
{% embed &lt;a href="https://github.com/jainiresh/AI-SolveTheCase" rel="noopener noreferrer"&gt;https://github.com/jainiresh/AI-SolveTheCase&lt;/a&gt; %}&lt;/p&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;Feature Workflows&lt;/h2&gt;

&lt;/div&gt;
&lt;p&gt;Since this is a crime investigating simulation game, we used Nylas…&lt;/p&gt;
&lt;/div&gt;
  &lt;/div&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/jainiresh/AI-SolveTheCase-Client" rel="noopener noreferrer"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;br&gt;
&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev.to%2Fassets%2Fgithub-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/jainiresh" rel="noopener noreferrer"&gt;
        jainiresh
      &lt;/a&gt; / &lt;a href="https://github.com/jainiresh/AI-SolveTheCase" rel="noopener noreferrer"&gt;
        AI-SolveTheCase
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      
    &lt;/h3&gt;
  &lt;/div&gt;
  &lt;div class="ltag-github-body"&gt;
    
&lt;div id="readme" class="md"&gt;
&lt;p&gt;&lt;em&gt;This is a submission for the &lt;a href="https://dev.to/challenges/pinata" rel="nofollow"&gt;The Pinata Challenge &lt;/a&gt;&lt;/em&gt;&lt;/p&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;What I Built and Why&lt;/h2&gt;
&lt;/div&gt;
&lt;p&gt;This is a full fledged crime investigation scenario simulation game, mocking a real life crime investigation, using AI , Email apis and PINATA , managing file uploads and displays to give you a simulation of a real investigation scenario.&lt;/p&gt;
&lt;p&gt;Haven't each and everyone, dreamt about investigating and finding clues, leading to the ground breaking discovery of the villains/culprits, like the ones they show in the movies.&lt;/p&gt;
&lt;p&gt;well, this one is a complete crime solver, leveraging AI to give yout the exact simulation you need, along with the frontend magic that make you feel you are investigaing a real crime scene.&lt;/p&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;Demo&lt;/h2&gt;
&lt;/div&gt;
&lt;p&gt;Live Deployed version : &lt;a href="https://ai-solvethecase-clientside.onrender.com" rel="nofollow noopener noreferrer"&gt;https://ai-solvethecase-clientside.onrender.com&lt;/a&gt;&lt;/p&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;Code&lt;/h2&gt;

&lt;/div&gt;
&lt;p&gt;Our client : &lt;a href="https://github.com/jainiresh/AI-SolveTheCase-Client" rel="noopener noreferrer"&gt;https://github.com/jainiresh/AI-SolveTheCase-Client&lt;/a&gt;
Our server : &lt;a href="https://github.com/jainiresh/AI-SolveTheCase" rel="noopener noreferrer"&gt;https://github.com/jainiresh/AI-SolveTheCase&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;{% embed &lt;a href="https://github.com/jainiresh/AI-SolveTheCase-Client" rel="noopener noreferrer"&gt;https://github.com/jainiresh/AI-SolveTheCase-Client&lt;/a&gt; %}
{% embed &lt;a href="https://github.com/jainiresh/AI-SolveTheCase" rel="noopener noreferrer"&gt;https://github.com/jainiresh/AI-SolveTheCase&lt;/a&gt; %}&lt;/p&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;Feature Workflows&lt;/h2&gt;

&lt;/div&gt;
&lt;p&gt;Since this is a crime investigating simulation game, we used Nylas…&lt;/p&gt;
&lt;/div&gt;
  &lt;/div&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/jainiresh/AI-SolveTheCase" rel="noopener noreferrer"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;


&lt;h2&gt;
  
  
  Feature Workflows
&lt;/h2&gt;

&lt;p&gt;Since this is a crime investigating simulation game, we used Nylas API and an AI agent to form a thread of emails, for each case, which has the content of the crime story, context, input or the investigation , along with a descriptive image of the crime.&lt;/p&gt;

&lt;p&gt;Each of the case that you newly open, a new thread is opened for the current user, and is maintained throughout untill the case gets solved.&lt;/p&gt;

&lt;p&gt;There are a lot of features implemented here, which will be discussed below.&lt;/p&gt;

&lt;p&gt;Here is a sample workflow,&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Sign in to your account :&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.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%2Fjfw3l12ga12n5whitqo1.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.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%2Fjfw3l12ga12n5whitqo1.png" alt="Image description" width="800" height="405"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Make sure you provide access to your account, and proceed.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.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%2Fdo9lewvr26xmdrps34yq.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.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%2Fdo9lewvr26xmdrps34yq.png" alt="Image description" width="800" height="394"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Read the INSTRUCTIONS carefully, to start playing the game.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.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%2F6o18xdziczrwiy7nckmz.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.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%2F6o18xdziczrwiy7nckmz.png" alt="Image description" width="800" height="394"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;You can choose to enter your own input, or click to copy the AI generated one, and paste it.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.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%2F9qnkb8kupslxgvxbx54l.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.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%2F9qnkb8kupslxgvxbx54l.png" alt="Image description" width="800" height="394"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Now you will be redirected to the main Rules and Engagements page, which you have to look carefully and understand the game, about how to play it.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.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%2Ftqe29uxsep1r2w8iv1jm.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.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%2Ftqe29uxsep1r2w8iv1jm.png" alt="Image description" width="800" height="394"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Upon closing the previous dialog, you will be presented with the actual AI created story context, with help of your input as below.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.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%2Fctz8mcd0eeu9pa2zd5wk.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.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%2Fctz8mcd0eeu9pa2zd5wk.png" alt="Image description" width="800" height="394"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Additionally, for portable view and summarized view, you would also be receiving the case details in your inbox , that has a well formatted structure, like :&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.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%2F4u5gwzaaz7l8qdosbqv0.PNG" class="article-body-image-wrapper"&gt;&lt;img src="https://media.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%2F4u5gwzaaz7l8qdosbqv0.PNG" alt="Image description" width="800" height="1487"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;You can start investigating about the people you met, referring the sample suggestions, in the investigation input&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.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%2Fmkgp72hob0izt1o53rx2.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.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%2Fmkgp72hob0izt1o53rx2.png" alt="Image description" width="800" height="395"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;This is how you would receive the response, of your investigation. A well written response, along with a safe image generated, that matches with the response.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.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%2F6bfiuaikj0plke59ozms.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.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%2F6bfiuaikj0plke59ozms.png" alt="Image description" width="800" height="395"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;You would also receive each investigation of yours, in your email as well, as a snigle thread of emails per case.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.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%2F5bqis8bxo7tyvswtuba0.PNG" class="article-body-image-wrapper"&gt;&lt;img src="https://media.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%2F5bqis8bxo7tyvswtuba0.PNG" alt="Image description" width="800" height="1474"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Similarly, you can perform any number of investigations as you please, and you would have a neatly arranged investigation panel, with all of them at your ease of access&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.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%2Fy9dzr34s4cyb75q05pyr.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.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%2Fy9dzr34s4cyb75q05pyr.png" alt="Image description" width="800" height="405"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Your email inbox thread would look like this :&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.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%2F37473m3emb6elazpl5ie.PNG" class="article-body-image-wrapper"&gt;&lt;img src="https://media.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%2F37473m3emb6elazpl5ie.PNG" alt="Image description" width="800" height="990"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Feeling fun, or difficult to solve it yourselves ?
You can choose to invite your friends, using the button&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.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%2F9pq86nqcjhaonopafijb.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.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%2F9pq86nqcjhaonopafijb.png" alt="Image description" width="800" height="405"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;All your investigations will be shared with your friend's email as well, and he can read your investigations from the email itself as well, or he can choose to login to the game with his invited email to investigate more by himself.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The case gets solved / closed, if atleast one player per case submits an answer.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.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%2Fz0vuu43jwx7i6cb3pkby.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.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%2Fz0vuu43jwx7i6cb3pkby.png" alt="Image description" width="800" height="689"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Close the final dialog box, to exit the case and start a new one.&lt;/p&gt;

&lt;h2&gt;
  
  
  Feature overview
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;User can start with just their SSO email address with well known third party hosted authentication.&lt;/li&gt;
&lt;li&gt;User can input their own custom day's experience, or opt to choose an AI generated one.&lt;/li&gt;
&lt;li&gt;Users receive awesome text images, in response to the investigations, and the story.&lt;/li&gt;
&lt;li&gt;Each of the gerenated image is been uploaded to pinata, and pinata powers and drives the file uploads and retrieval for the application.&lt;/li&gt;
&lt;li&gt;Users can choose to view their friends, to invite to the game.&lt;/li&gt;
&lt;li&gt;Invited friends, and Uninivited friends are segregated in the UI&lt;/li&gt;
&lt;li&gt;Investigations performed, upto the point of inviting will be shared the invited friend.&lt;/li&gt;
&lt;li&gt;The UI shows only the investigation made by the current logged in user.&lt;/li&gt;
&lt;li&gt;The email thread of a particular case shows the investigations made by all the people who are invited to that case.&lt;/li&gt;
&lt;li&gt;You can revisit the rules, story context, or the day input whenever you please.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  More details
&lt;/h2&gt;

&lt;h3&gt;
  
  
  PINATA
&lt;/h3&gt;

&lt;p&gt;Pinata is used to store , upload and retrieve the AI generated images that are being sent via the email, as well as to the frontend for simulation.&lt;/p&gt;

&lt;h3&gt;
  
  
  AI products
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;gemini-1.5-flash , for story and investigation text generation.&lt;/li&gt;
&lt;li&gt;
&lt;a class="mentioned-user" href="https://dev.to/cf"&gt;@cf&lt;/a&gt;/stabilityai/stable-diffusion-xl-base-1.0, for image generation.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Third party products have been used for efficient email communication, and contacts retrieval.&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>pinatachallenge</category>
      <category>webdev</category>
      <category>api</category>
    </item>
    <item>
      <title>PINA-AI : A simple AI generated image hosting solution</title>
      <dc:creator>JAI NIRESH J</dc:creator>
      <pubDate>Tue, 08 Oct 2024 18:26:58 +0000</pubDate>
      <link>https://dev.to/jainireshj/pina-ai-image-hosting-23e3</link>
      <guid>https://dev.to/jainireshj/pina-ai-image-hosting-23e3</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for the &lt;a href="https://dev.to/challenges/pinata"&gt;The Pinata Challenge &lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

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

&lt;p&gt;Many AI image generation models output only image blobs, which can create a significant challenge for developers seeking reliable hosting solutions. This often involves a tedious series of steps to find an appropriate hosting service and integrate it into their workflow.&lt;/p&gt;

&lt;p&gt;Enter PINA-AI Image hosting: my project streamlines this process by providing a comprehensive solution for generating and hosting AI images in one seamless package. I have packaged this functionality into an npm module, making it even easier for developers to access and utilize.&lt;/p&gt;

&lt;p&gt;With PINA-AI Image hosting, users can effortlessly generate images of various open-source tools such as Hugging Face, OpenAI, and Cloudflare, etc.,. Developers can choose any of these options to generate images through a simple function call, which returns the hosted URL as a response. This integration eliminates the hassle of managing separate hosting arrangements and allows developers to focus on their projects rather than the complexities of image management.&lt;/p&gt;

&lt;p&gt;By combining image generation and hosting into a single, user-friendly npm package, Pina-AI Image Hub serves as a valuable resource for developers looking to enhance their workflows and showcase their projects with minimal effort.&lt;/p&gt;

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

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

&lt;p&gt;Npm package link : &lt;br&gt;
&lt;/p&gt;
&lt;div class="crayons-card c-embed text-styles text-styles--secondary"&gt;
      &lt;div class="c-embed__cover"&gt;
        &lt;a href="https://www.npmjs.com/package/ai-generate-and-pinata-host" class="c-link s:max-w-50 align-middle" rel="noopener noreferrer"&gt;
          &lt;img alt="" src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fstatic-production.npmjs.com%2F338e4905a2684ca96e08c7780fc68412.png" height="420" class="m-0" width="800"&gt;
        &lt;/a&gt;
      &lt;/div&gt;
    &lt;div class="c-embed__body"&gt;
      &lt;h2 class="fs-xl lh-tight"&gt;
        &lt;a href="https://www.npmjs.com/package/ai-generate-and-pinata-host" rel="noopener noreferrer" class="c-link"&gt;
          ai-generate-and-pinata-host - npm
        &lt;/a&gt;
      &lt;/h2&gt;
        &lt;p class="truncate-at-3"&gt;
          &amp;gt; Smart solution for hosting AI generated images. Latest version: 1.1.1, last published: 6 days ago. Start using ai-generate-and-pinata-host in your project by running `npm i ai-generate-and-pinata-host`. There are no other projects in the npm registry using ai-generate-and-pinata-host.
        &lt;/p&gt;
      &lt;div class="color-secondary fs-s flex items-center"&gt;
          &lt;img alt="favicon" class="c-embed__favicon m-0 mr-2 radius-0" src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fstatic-production.npmjs.com%2Fb0f1a8318363185cc2ea6a40ac23eeb2.png" width="32" height="32"&gt;
        npmjs.com
      &lt;/div&gt;
    &lt;/div&gt;
&lt;/div&gt;


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

&lt;p&gt;Source code : &lt;br&gt;
&lt;/p&gt;
&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev.to%2Fassets%2Fgithub-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/jainiresh" rel="noopener noreferrer"&gt;
        jainiresh
      &lt;/a&gt; / &lt;a href="https://github.com/jainiresh/AI-ImageUploader-Pinata" rel="noopener noreferrer"&gt;
        AI-ImageUploader-Pinata
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      
    &lt;/h3&gt;
  &lt;/div&gt;
  &lt;div class="ltag-github-body"&gt;
    
&lt;div id="readme" class="md"&gt;
&lt;div class="markdown-heading"&gt;
&lt;h1 class="heading-element"&gt;ai-generate-and-pinata-host&lt;/h1&gt;
&lt;/div&gt;
&lt;blockquote&gt;
&lt;p&gt;Smart solution for hosting AI generated images&lt;/p&gt;
&lt;/blockquote&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;Why&lt;/h2&gt;
&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;Offers popular integrated AI image generation options from &lt;strong&gt;Hugging Face&lt;/strong&gt;, &lt;strong&gt;OpenAI&lt;/strong&gt;, and &lt;strong&gt;Cloudflare&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Automatically hosts generated images on &lt;strong&gt;Pinata’s Web3 platform&lt;/strong&gt;, returning a usable URL immediately.&lt;/li&gt;
&lt;li&gt;Solves the hosting problem for developers who need to quickly store and access AI-generated images.&lt;/li&gt;
&lt;li&gt;Flexible, decentralized hosting without the need for centralized storage services.&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="markdown-heading"&gt;
&lt;h3 class="heading-element"&gt;Why not&lt;/h3&gt;
&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;Requires setting up Pinata API keys for hosting, which adds a bit of configuration overhead.&lt;/li&gt;
&lt;li&gt;You may need to manage API rate limits depending on the image generation tool used (e.g., OpenAI, Hugging Face).&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;Prerequisite&lt;/h2&gt;

&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;A valid Pinata account with access to API keys for file hosting.&lt;/li&gt;
&lt;li&gt;API keys or access tokens from &lt;strong&gt;Hugging Face&lt;/strong&gt;, &lt;strong&gt;OpenAI&lt;/strong&gt;, &lt;strong&gt;Cloudflare&lt;/strong&gt;, or any supported AI image generation service.&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;Install&lt;/h2&gt;

&lt;/div&gt;
&lt;div class="highlight highlight-source-shell notranslate position-relative overflow-auto js-code-highlight"&gt;
&lt;pre&gt;npm install ai-generate-and-pinata-host@latest&lt;/pre&gt;

&lt;/div&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;Config&lt;/h2&gt;

&lt;/div&gt;
&lt;p&gt;Make sure you have your .env file populated with the mandatory and…&lt;/p&gt;
&lt;/div&gt;
  &lt;/div&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/jainiresh/AI-ImageUploader-Pinata" rel="noopener noreferrer"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;


&lt;h2&gt;
  
  
  More Details
&lt;/h2&gt;

&lt;p&gt;Pina-AI Image Hub leverages the Pinata IPFS service to provide seamless image hosting. Here are some clear examples of how Pinata is integrated into the project:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. Image Uploading:&lt;/strong&gt;&lt;br&gt;
 After generating an image blob using one of the supported AI models (e.g., Hugging Face, OpenAI, Cloudflare), the package automatically uploads the image to Pinata. This is done through a NODE JS SDK's functional call, ensuring that users don't have to deal with complex hosting configurations.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. Quick Access:&lt;/strong&gt; Once uploaded, the hosted image is immediately accessible via the returned URL. This allows developers to integrate the generated images into their projects without waiting for manual uploads or other delays.&lt;/p&gt;

&lt;p&gt;*&lt;em&gt;3. Pinata Service Integration: *&lt;/em&gt;&lt;br&gt;
The package utilizes the Pinata node js sdk service to handle uploads. When the user calls the function to generate an image, the image blob is sent directly to PinataSDK, which returns a unique IPFS URL. This URL can then be used anywhere—be it in documentation, presentations, or shared with others.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;4. Example with Multiple Tools:&lt;/strong&gt;&lt;br&gt;
Users can easily switch between different AI models when generating images. The package abstracts the complexity, allowing for straightforward usage.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;5. Error Handling:&lt;/strong&gt; The integration includes robust error handling to manage potential issues during the upload process. If an upload fails (e.g., due to network issues), the package provides informative error messages, guiding users on how to resolve the problem.&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>pinatachallenge</category>
      <category>webdev</category>
      <category>api</category>
    </item>
    <item>
      <title>RESUME SPAMMER - No more stressing over sending resumes</title>
      <dc:creator>JAI NIRESH J</dc:creator>
      <pubDate>Mon, 02 Sep 2024 07:06:27 +0000</pubDate>
      <link>https://dev.to/jainireshj/resume-spammer-no-more-stressing-over-sending-resumes-26pb</link>
      <guid>https://dev.to/jainireshj/resume-spammer-no-more-stressing-over-sending-resumes-26pb</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for the &lt;a href="https://dev.to/challenges/nylas"&gt;Nylas Challenge&lt;/a&gt;: Galaxy Brain.&lt;/em&gt;&lt;/p&gt;

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

&lt;p&gt;I have built an job applying automation setup, that helps unemployed people out there to apply to any number of job vacancies , leveraging from "Naukri"'s api, via email.&lt;/p&gt;

&lt;p&gt;You no more need to modify each resume, depending on the job you are applying for.&lt;/p&gt;

&lt;p&gt;Just login to the application, allows email access via nylas , and fill up the necessary information once, and you can generate more than 50, even a hundred ready to send unique resumes, each one different and unique adaptable to the role you are applying for.&lt;/p&gt;

&lt;p&gt;You no more need to modify each resume, depending on the job you are applying for.&lt;/p&gt;

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

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

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

&lt;p&gt;This is my public github repo containing my code.&lt;br&gt;
&lt;/p&gt;
&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev.to%2Fassets%2Fgithub-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/jainiresh" rel="noopener noreferrer"&gt;
        jainiresh
      &lt;/a&gt; / &lt;a href="https://github.com/jainiresh/JobAutomator" rel="noopener noreferrer"&gt;
        JobAutomator
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      
    &lt;/h3&gt;
  &lt;/div&gt;
&lt;/div&gt;


&lt;h2&gt;
  
  
  Who is it for ?
&lt;/h2&gt;

&lt;p&gt;Unemployed, or people who search for another job while in a job, can utilize this, and can create hundreds of draft resumes, to apply for current in vacant job positions, that are hosted in Naukri.&lt;/p&gt;

&lt;h2&gt;
  
  
  TECH STACK
&lt;/h2&gt;

&lt;p&gt;Naukri's endpoint is used, to send a keyword and get the current intrend job vacancies, and google's gemini flash model has been used to create resumes, with your skills, and the expectation of the naukri posted job requirements, to give you an unique resume for each and every job, directly to your email draft box.&lt;/p&gt;

&lt;p&gt;You can directly include the company's email to the draft, and send it quickly.&lt;/p&gt;

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

&lt;p&gt;It was a really an amazing learning cum thinking out of the box, when everyone creates email related schedulers etc., i thought to help the unemployed out there, and this actually helps me myself&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>nylaschallenge</category>
      <category>api</category>
      <category>nylas</category>
    </item>
    <item>
      <title>MYSTERY TRAILS - Bring out the detective in you</title>
      <dc:creator>JAI NIRESH J</dc:creator>
      <pubDate>Mon, 26 Aug 2024 19:52:56 +0000</pubDate>
      <link>https://dev.to/jainireshj/mystery-trails-bring-out-the-detective-in-you-oj7</link>
      <guid>https://dev.to/jainireshj/mystery-trails-bring-out-the-detective-in-you-oj7</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for the &lt;a href="https://dev.to/challenges/nylas"&gt;Nylas Challenge&lt;/a&gt;: AI Expedition, and Galaxy Brain&lt;/em&gt;&lt;/p&gt;

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

&lt;p&gt;This is a full fledged crime investigation scenario simulation game, mocking a real life crime investigation, using AI and Nylas api's to give you a simulation of a real investigation scenario.&lt;/p&gt;

&lt;p&gt;Haven't each and everyone, dreamt about investigating and finding clues, leading to the ground breaking discovery of the villains/culprits, like the ones they show in the movies.&lt;/p&gt;

&lt;p&gt;well, this one is a complete crime solver, leveraging AI to give yout the exact simulation you need, along with the frontend magic that make you feel you are investigaing a real crime scene.&lt;/p&gt;

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

&lt;p&gt;Live Deployed version : &lt;a href="https://ai-solvethecase-clientside.onrender.com" rel="noopener noreferrer"&gt;https://ai-solvethecase-clientside.onrender.com&lt;/a&gt;&lt;/p&gt;

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

&lt;p&gt;Our client : &lt;a href="https://github.com/jainiresh/AI-SolveTheCase-Client" rel="noopener noreferrer"&gt;https://github.com/jainiresh/AI-SolveTheCase-Client&lt;/a&gt;&lt;br&gt;
Our server : &lt;a href="https://github.com/jainiresh/AI-SolveTheCase" rel="noopener noreferrer"&gt;https://github.com/jainiresh/AI-SolveTheCase&lt;/a&gt;&lt;/p&gt;


&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev.to%2Fassets%2Fgithub-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/jainiresh" rel="noopener noreferrer"&gt;
        jainiresh
      &lt;/a&gt; / &lt;a href="https://github.com/jainiresh/AI-SolveTheCase-Client" rel="noopener noreferrer"&gt;
        AI-SolveTheCase-Client
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      
    &lt;/h3&gt;
  &lt;/div&gt;
  &lt;div class="ltag-github-body"&gt;
    
&lt;div id="readme" class="md"&gt;
&lt;p&gt;&lt;em&gt;This is a submission for the &lt;a href="https://dev.to/challenges/pinata" rel="nofollow"&gt;The Pinata Challenge &lt;/a&gt;&lt;/em&gt;&lt;/p&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;What I Built and Why&lt;/h2&gt;
&lt;/div&gt;
&lt;p&gt;This is a full fledged crime investigation scenario simulation game, mocking a real life crime investigation, using AI , Email apis and PINATA , managing file uploads and displays to give you a simulation of a real investigation scenario.&lt;/p&gt;
&lt;p&gt;Haven't each and everyone, dreamt about investigating and finding clues, leading to the ground breaking discovery of the villains/culprits, like the ones they show in the movies.&lt;/p&gt;
&lt;p&gt;well, this one is a complete crime solver, leveraging AI to give yout the exact simulation you need, along with the frontend magic that make you feel you are investigaing a real crime scene.&lt;/p&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;Demo&lt;/h2&gt;
&lt;/div&gt;
&lt;p&gt;Live Deployed version : &lt;a href="https://ai-solvethecase-clientside.onrender.com" rel="nofollow noopener noreferrer"&gt;https://ai-solvethecase-clientside.onrender.com&lt;/a&gt;&lt;/p&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;Code&lt;/h2&gt;

&lt;/div&gt;
&lt;p&gt;Our client : &lt;a href="https://github.com/jainiresh/AI-SolveTheCase-Client" rel="noopener noreferrer"&gt;https://github.com/jainiresh/AI-SolveTheCase-Client&lt;/a&gt;
Our server : &lt;a href="https://github.com/jainiresh/AI-SolveTheCase" rel="noopener noreferrer"&gt;https://github.com/jainiresh/AI-SolveTheCase&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;{% embed &lt;a href="https://github.com/jainiresh/AI-SolveTheCase-Client" rel="noopener noreferrer"&gt;https://github.com/jainiresh/AI-SolveTheCase-Client&lt;/a&gt; %}
{% embed &lt;a href="https://github.com/jainiresh/AI-SolveTheCase" rel="noopener noreferrer"&gt;https://github.com/jainiresh/AI-SolveTheCase&lt;/a&gt; %}&lt;/p&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;Feature Workflows&lt;/h2&gt;

&lt;/div&gt;
&lt;p&gt;Since this is a crime investigating simulation game, we used Nylas…&lt;/p&gt;
&lt;/div&gt;
  &lt;/div&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/jainiresh/AI-SolveTheCase-Client" rel="noopener noreferrer"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;br&gt;
&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev.to%2Fassets%2Fgithub-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/jainiresh" rel="noopener noreferrer"&gt;
        jainiresh
      &lt;/a&gt; / &lt;a href="https://github.com/jainiresh/AI-SolveTheCase" rel="noopener noreferrer"&gt;
        AI-SolveTheCase
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      
    &lt;/h3&gt;
  &lt;/div&gt;
  &lt;div class="ltag-github-body"&gt;
    
&lt;div id="readme" class="md"&gt;
&lt;p&gt;&lt;em&gt;This is a submission for the &lt;a href="https://dev.to/challenges/pinata" rel="nofollow"&gt;The Pinata Challenge &lt;/a&gt;&lt;/em&gt;&lt;/p&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;What I Built and Why&lt;/h2&gt;
&lt;/div&gt;
&lt;p&gt;This is a full fledged crime investigation scenario simulation game, mocking a real life crime investigation, using AI , Email apis and PINATA , managing file uploads and displays to give you a simulation of a real investigation scenario.&lt;/p&gt;
&lt;p&gt;Haven't each and everyone, dreamt about investigating and finding clues, leading to the ground breaking discovery of the villains/culprits, like the ones they show in the movies.&lt;/p&gt;
&lt;p&gt;well, this one is a complete crime solver, leveraging AI to give yout the exact simulation you need, along with the frontend magic that make you feel you are investigaing a real crime scene.&lt;/p&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;Demo&lt;/h2&gt;
&lt;/div&gt;
&lt;p&gt;Live Deployed version : &lt;a href="https://ai-solvethecase-clientside.onrender.com" rel="nofollow noopener noreferrer"&gt;https://ai-solvethecase-clientside.onrender.com&lt;/a&gt;&lt;/p&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;Code&lt;/h2&gt;

&lt;/div&gt;
&lt;p&gt;Our client : &lt;a href="https://github.com/jainiresh/AI-SolveTheCase-Client" rel="noopener noreferrer"&gt;https://github.com/jainiresh/AI-SolveTheCase-Client&lt;/a&gt;
Our server : &lt;a href="https://github.com/jainiresh/AI-SolveTheCase" rel="noopener noreferrer"&gt;https://github.com/jainiresh/AI-SolveTheCase&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;{% embed &lt;a href="https://github.com/jainiresh/AI-SolveTheCase-Client" rel="noopener noreferrer"&gt;https://github.com/jainiresh/AI-SolveTheCase-Client&lt;/a&gt; %}
{% embed &lt;a href="https://github.com/jainiresh/AI-SolveTheCase" rel="noopener noreferrer"&gt;https://github.com/jainiresh/AI-SolveTheCase&lt;/a&gt; %}&lt;/p&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;Feature Workflows&lt;/h2&gt;

&lt;/div&gt;
&lt;p&gt;Since this is a crime investigating simulation game, we used Nylas…&lt;/p&gt;
&lt;/div&gt;
  &lt;/div&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/jainiresh/AI-SolveTheCase" rel="noopener noreferrer"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;


&lt;h2&gt;
  
  
  Feature Workflows
&lt;/h2&gt;

&lt;p&gt;Since this is a crime investigating simulation game, we used Nylas API and an AI agent to form a thread of emails, for each case, which has the content of the crime story, context, input or the investigation , along with a descriptive image of the crime.&lt;/p&gt;

&lt;p&gt;Each of the case that you newly open, a new thread is opened for the current user, and is maintained throughout untill the case gets solved.&lt;/p&gt;

&lt;p&gt;There are a lot of features implemented here, which will be discussed below.&lt;/p&gt;

&lt;p&gt;Here is a sample workflow,&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Sign in to your account :&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.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%2Fjfw3l12ga12n5whitqo1.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.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%2Fjfw3l12ga12n5whitqo1.png" alt="Image description" width="800" height="405"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Make sure you provide access to your account, and proceed.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.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%2Fdo9lewvr26xmdrps34yq.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.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%2Fdo9lewvr26xmdrps34yq.png" alt="Image description" width="800" height="394"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Read the INSTRUCTIONS carefully, to start playing the game.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.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%2F6o18xdziczrwiy7nckmz.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.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%2F6o18xdziczrwiy7nckmz.png" alt="Image description" width="800" height="394"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;You can choose to enter your own input, or click to copy the AI generated one, and paste it.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.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%2F9qnkb8kupslxgvxbx54l.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.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%2F9qnkb8kupslxgvxbx54l.png" alt="Image description" width="800" height="394"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Now you will be redirected to the main Rules and Engagements page, which you have to look carefully and understand the game, about how to play it.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.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%2Ftqe29uxsep1r2w8iv1jm.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.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%2Ftqe29uxsep1r2w8iv1jm.png" alt="Image description" width="800" height="394"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Upon closing the previous dialog, you will be presented with the actual AI created story context, with help of your input as below.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.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%2Fctz8mcd0eeu9pa2zd5wk.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.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%2Fctz8mcd0eeu9pa2zd5wk.png" alt="Image description" width="800" height="394"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Additionally, for portable view and summarized view, you would also be receiving the case details in your inbox , that has a well formatted structure, like :&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.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%2F4u5gwzaaz7l8qdosbqv0.PNG" class="article-body-image-wrapper"&gt;&lt;img src="https://media.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%2F4u5gwzaaz7l8qdosbqv0.PNG" alt="Image description" width="800" height="1487"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;You can start investigating about the people you met, referring the sample suggestions, in the investigation input&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.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%2Fmkgp72hob0izt1o53rx2.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.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%2Fmkgp72hob0izt1o53rx2.png" alt="Image description" width="800" height="395"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;This is how you would receive the response, of your investigation. A well written response, along with a safe image generated, that matches with the response.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.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%2F6bfiuaikj0plke59ozms.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.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%2F6bfiuaikj0plke59ozms.png" alt="Image description" width="800" height="395"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;You would also receive each investigation of yours, in your email as well, as a snigle thread of emails per case.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.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%2F5bqis8bxo7tyvswtuba0.PNG" class="article-body-image-wrapper"&gt;&lt;img src="https://media.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%2F5bqis8bxo7tyvswtuba0.PNG" alt="Image description" width="800" height="1474"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Similarly, you can perform any number of investigations as you please, and you would have a neatly arranged investigation panel, with all of them at your ease of access&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.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%2Fy9dzr34s4cyb75q05pyr.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.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%2Fy9dzr34s4cyb75q05pyr.png" alt="Image description" width="800" height="405"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Your email inbox thread would look like this :&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.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%2F37473m3emb6elazpl5ie.PNG" class="article-body-image-wrapper"&gt;&lt;img src="https://media.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%2F37473m3emb6elazpl5ie.PNG" alt="Image description" width="800" height="990"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Feeling fun, or difficult to solve it yourselves ?
You can choose to invite your friends, using the button&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.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%2F9pq86nqcjhaonopafijb.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.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%2F9pq86nqcjhaonopafijb.png" alt="Image description" width="800" height="405"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;All your investigations will be shared with your friend's email as well, and he can read your investigations from the email itself as well, or he can choose to login to the game with his invited email to investigate more by himself.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The case gets solved / closed, if atleast one player per case submits an answer.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.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%2Fz0vuu43jwx7i6cb3pkby.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.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%2Fz0vuu43jwx7i6cb3pkby.png" alt="Image description" width="800" height="689"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Close the final dialog box, to exit the case and start a new one.&lt;/p&gt;

&lt;h2&gt;
  
  
  Feature overview
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;User can start with just their SSO email address with Nylas hosted authentication.&lt;/li&gt;
&lt;li&gt;User can input their own custom day's experience, or opt to choose an AI generated one.&lt;/li&gt;
&lt;li&gt;Users receive awesome text images, in response to the investigations, and the story.&lt;/li&gt;
&lt;li&gt;Users can choose to view their friends, to invite to the game.&lt;/li&gt;
&lt;li&gt;Invited friends, and Uninivited friends are segregated in the UI&lt;/li&gt;
&lt;li&gt;Investigations performed, upto the point of inviting will be shared the invited friend.&lt;/li&gt;
&lt;li&gt;The UI shows only the investigation made by the current logged in user.&lt;/li&gt;
&lt;li&gt;The email thread of a particular case shows the investigations made by all the people who are invited to that case.&lt;/li&gt;
&lt;li&gt;You can revisit the rules, story context, or the day input whenever you please.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Nylas and AI Role in the project
&lt;/h2&gt;

&lt;h3&gt;
  
  
  NYLAS products
&lt;/h3&gt;

&lt;p&gt;Nylas EMAIL API has been utilized to send email investigations, story contexts to the players.&lt;br&gt;
(&lt;a href="https://github.com/jainiresh/AI-SolveTheCase/blob/master/service/nylasService.js" rel="noopener noreferrer"&gt;https://github.com/jainiresh/AI-SolveTheCase/blob/master/service/nylasService.js&lt;/a&gt;)&lt;/p&gt;

&lt;p&gt;Nylas CONTACTS API has been utilized as a means to share the case with your contacts/friends.&lt;br&gt;
(&lt;a href="https://github.com/jainiresh/AI-SolveTheCase/blob/master/routes/contactRouter.js" rel="noopener noreferrer"&gt;https://github.com/jainiresh/AI-SolveTheCase/blob/master/routes/contactRouter.js&lt;/a&gt;)&lt;/p&gt;

&lt;p&gt;Nylas Hosted Authentication is used to authenticate users, fetch their grantIDS and email and other information about them.&lt;/p&gt;

&lt;h3&gt;
  
  
  AI products
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;gemini-1.5-flash , for story and investigation text generation.&lt;/li&gt;
&lt;li&gt;
&lt;a class="mentioned-user" href="https://dev.to/cf"&gt;@cf&lt;/a&gt;/stabilityai/stable-diffusion-xl-base-1.0, for image generation.&lt;/li&gt;
&lt;/ul&gt;

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

&lt;p&gt;It has been an incredible learning cum out of the box thinking experience.&lt;br&gt;
The first challenge was the usecase.&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>nylaschallenge</category>
      <category>api</category>
      <category>ai</category>
    </item>
    <item>
      <title>DP - Memoization, The Esoteric concept, busted out in a line.</title>
      <dc:creator>JAI NIRESH J</dc:creator>
      <pubDate>Sat, 22 Jun 2024 19:05:57 +0000</pubDate>
      <link>https://dev.to/jainireshj/dp-memoization-the-esoteric-concept-busted-out-in-a-line-3a3h</link>
      <guid>https://dev.to/jainireshj/dp-memoization-the-esoteric-concept-busted-out-in-a-line-3a3h</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for &lt;a href="https://dev.to/challenges/cs"&gt;DEV Computer Science Challenge v24.06.12: One Byte Explainer&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Explainer
&lt;/h2&gt;

&lt;p&gt;Memoization is like a Tile Fall Race, where the initial runners spend their lives clearing out the fake tiles, making it easy, time effective, and fast for the latter people to run on the right tile. Though they start from the start, they finish off fast.&lt;/p&gt;

&lt;h2&gt;
  
  
  Additional Context
&lt;/h2&gt;

&lt;p&gt;Tile fall : &lt;br&gt;
It is a fictious race, popular on games, like "Stumble Guys" .&lt;br&gt;
Where group of players try to reach from one end to the other, trying to cross a look alike group of tiles.&lt;br&gt;
Only to find, only a few are strong, and others fall on being stepped on.&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>cschallenge</category>
      <category>computerscience</category>
      <category>beginners</category>
    </item>
    <item>
      <title>The MoodScout, An innovative invention for those unplanned lazy geeze</title>
      <dc:creator>JAI NIRESH J</dc:creator>
      <pubDate>Sat, 22 Jun 2024 18:22:47 +0000</pubDate>
      <link>https://dev.to/jainireshj/the-moodscout-an-innovative-invention-for-those-unplanned-lazy-geeze-545m</link>
      <guid>https://dev.to/jainireshj/the-moodscout-an-innovative-invention-for-those-unplanned-lazy-geeze-545m</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for the &lt;a href="https://dev.to/challenges/twilio"&gt;Twilio Challenge &lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

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

&lt;p&gt;We have built a Mood Scout web application, which takes in your mood or "what you feel like doing, right now", as an input, and suggests you the best places according to your mood, around you with their directions, sent right down to your phone for easy navigation.&lt;/p&gt;

&lt;h2&gt;
  
  
  The AI catch of our application
&lt;/h2&gt;

&lt;p&gt;Unlike the exisiting location finders, place finders, maps, blah, blah, etc.,&lt;br&gt;
This application leverages Google's Gemini AI, in getting suggestions of places, according to the user's mood !&lt;br&gt;
Whose data is then processed along with the geo location and returned.&lt;/p&gt;
&lt;h4&gt;
  
  
  A Simple Yet Innovative Idea ...
&lt;/h4&gt;
&lt;h3&gt;
  
  
  TECH STACK
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Twilio (Our sponsor)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Handling our messaging service, and delivering instant directions and links to our consumers.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Python 3.11&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Used due to it's Robust and fast natured theme, and optimized perfomance.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Flask&lt;/li&gt;
&lt;li&gt;Gemini AI&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Our AI providing the life to our application, giving the AI'esthetic touch we need, in our place suggestions.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;OpenCage Maps&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Improved accuracy, on getting precise locations&lt;/p&gt;

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

&lt;p&gt;The distance matrix api key, providing with real time distance, and time information between source and the destination. &lt;/p&gt;
&lt;h2&gt;
  
  
  The Architecture
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media.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%2Fcwz1p2mx9p4tcvjpcahk.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.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%2Fcwz1p2mx9p4tcvjpcahk.png" alt="Architecture diagram" width="800" height="468"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  Demo
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;GitHub &lt;a href="https://github.com/jainiresh/locationSuggestor/tree/readme-add" rel="noopener noreferrer"&gt;github.com&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Web URL &lt;a href="https://locationsuggestor.onrender.com/" rel="noopener noreferrer"&gt;Live Url&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;
  
  
  Short video of the application
&lt;/h2&gt;

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

&lt;h3&gt;
  
  
  The Head
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media.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%2F4qbo1s7300ilxet4l1x6.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.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%2F4qbo1s7300ilxet4l1x6.png" alt="Our protogonist page ." width="800" height="533"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  The Protagonist
&lt;/h3&gt;

&lt;p&gt;The content page, that lists down all the releveant places your mood would love to be.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.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%2Frvlc1k7q53u5cmi1df9r.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.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%2Frvlc1k7q53u5cmi1df9r.png" alt="Not to get deceived of the simplicity, but powerful! " width="800" height="411"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  The cameo
&lt;/h3&gt;

&lt;p&gt;Using our awesome Twilio's api to send directions right down to our phone number :&lt;br&gt;
&lt;a href="https://media.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%2F0dc3tmythglqnma5ph8o.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.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%2F0dc3tmythglqnma5ph8o.png" alt="Twilio" width="787" height="325"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  The Feel Good
&lt;/h3&gt;

&lt;p&gt;Here comes our directions.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.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%2Fi1ddg5bt35beca4jskf2.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.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%2Fi1ddg5bt35beca4jskf2.png" alt="Twilio" width="800" height="1619"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Twilio and AI
&lt;/h2&gt;

&lt;p&gt;The traditional fetch from API / DB is so boring, and redundant.&lt;br&gt;
How about leveraging our AI, to pickup the scent of our mood, and automatically suggest places around us for the best feel.&lt;/p&gt;

&lt;p&gt;Not to mention, our awesome Twilio's SMS integration, allowing a free flow of SMS to the consumers, for instant directions and sending other links.&lt;/p&gt;

&lt;h2&gt;
  
  
  Additional Prize Categories
&lt;/h2&gt;

&lt;p&gt;Yes, our submission qualifies for &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;"Impactful Innovators" and &lt;/li&gt;
&lt;li&gt;"Entertaining Endeavors"&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The reason for "Impactful Innovators" being : &lt;br&gt;
A lot of foreigners or ourselves when we visit a new place, or a city end up getting unplanned for the day, most of the time.&lt;br&gt;
Our application, gets just your mood as an input via a web interface, and suggests you the best spots/places, to feel your best.&lt;/p&gt;

&lt;p&gt;This is a must use application, for all those unplanned travellers, to explore a lot on every new place they travel to.&lt;/p&gt;

&lt;p&gt;The reason for "Entertaining Endeavors" being :&lt;br&gt;
Not only it does cover the  spots like, temples, forts, etc.,&lt;br&gt;
But also it can take in your mood to give you good pubs, drink bars, and fun activity malls, which gives you the real fun of new places.&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>twiliochallenge</category>
      <category>ai</category>
      <category>twilio</category>
    </item>
  </channel>
</rss>
