<?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: Jayanta Ghosh</title>
    <description>The latest articles on DEV Community by Jayanta Ghosh (@jayanta2004).</description>
    <link>https://dev.to/jayanta2004</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%2F3269088%2Fe1a234a8-f89c-406a-a36f-320b7e8a6504.jpg</url>
      <title>DEV Community: Jayanta Ghosh</title>
      <link>https://dev.to/jayanta2004</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/jayanta2004"/>
    <language>en</language>
    <item>
      <title>Discovering Hidden Connections with Neo4j: My First Real Use Case</title>
      <dc:creator>Jayanta Ghosh</dc:creator>
      <pubDate>Sun, 31 Aug 2025 19:11:28 +0000</pubDate>
      <link>https://dev.to/jayanta2004/discovering-hidden-connections-with-neo4j-my-first-real-use-case-3i51</link>
      <guid>https://dev.to/jayanta2004/discovering-hidden-connections-with-neo4j-my-first-real-use-case-3i51</guid>
      <description>&lt;p&gt;When I first heard about graph databases, I was curious but also skeptical. I had been working mostly with relational databases, and I thought, “Why would I need a new type of database when SQL already works fine?”&lt;/p&gt;

&lt;p&gt;That mindset changed when I ran into a real-world problem. I needed to analyze relationships inside a university club where I’m an active member. We had multiple events, committees, and collaborations, and all the data was stored in spreadsheets. While it was easy to look up details about one member, it was extremely difficult to see connections between members. Who worked together the most? Who acted as a bridge between different committees? The answers weren’t obvious in rows and columns.&lt;/p&gt;

&lt;p&gt;That’s when I decided to try Neo4j.&lt;/p&gt;

&lt;h3&gt;
  
  
  Why Neo4j?
&lt;/h3&gt;

&lt;p&gt;Relational databases are great for structured data, but they struggle when you need to traverse multiple relationships quickly. For my use case, relationships mattered more than individual records. Neo4j’s model of nodes (entities) and relationships (connections) was a perfect fit.&lt;/p&gt;

&lt;p&gt;This graph structure allowed me to ask questions that would be nearly impossible (or painfully slow) in SQL.&lt;/p&gt;

&lt;h3&gt;
  
  
  Importing the Data
&lt;/h3&gt;

&lt;p&gt;I cleaned up the spreadsheet and imported the data into Neo4j. The Neo4j Browser made it simple, and soon I could visualize the network as a graph. Seeing members and their links for the first time was exciting—it already told me more than the tables ever did.&lt;/p&gt;

&lt;h3&gt;
  
  
  Running Cypher Queries
&lt;/h3&gt;

&lt;p&gt;Here’s where the magic happened. Using Cypher, Neo4j’s query language, I was able to uncover hidden patterns.&lt;/p&gt;

&lt;p&gt;For example, to find pairs of members who attended the most events together, I used:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;MATCH (m:Member)-[:ATTENDED]-&amp;gt;(e:Event)&amp;lt;-[:ATTENDED]-(n:Member)
WHERE m &amp;lt;&amp;gt; n
RETURN m.name AS Member1, n.name AS Member2, COUNT(e) AS SharedEvents
ORDER BY SharedEvents DESC
LIMIT 10;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This instantly showed me which members collaborated the most. Something that would’ve taken multiple complex SQL joins was just one neat query here.&lt;/p&gt;

&lt;p&gt;Another interesting query was using PageRank, one of Neo4j’s built-in graph algorithms:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;CALL gds.pageRank.stream({
  nodeProjection: 'Member',
  relationshipProjection: {
    ATTENDED: {
      type: 'ATTENDED',
      orientation: 'UNDIRECTED'
    }
  }
})
YIELD nodeId, score
RETURN gds.util.asNode(nodeId).name AS Member, score
ORDER BY score DESC
LIMIT 5;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This helped me identify the “influencers” in the club—the members most central to the network.&lt;/p&gt;

&lt;h3&gt;
  
  
  Visual Insights
&lt;/h3&gt;

&lt;p&gt;The most rewarding part was seeing the visualization. Members clustered into natural groups based on committees and shared events. Some acted as connectors between groups, making them key people in keeping the community together.&lt;/p&gt;

&lt;p&gt;This visualization not only gave us insights but also helped in decision-making—for example, assigning event leads or suggesting collaborations between members who hadn’t worked together yet.&lt;/p&gt;

&lt;h3&gt;
  
  
  What I Learned
&lt;/h3&gt;

&lt;p&gt;This project taught me a few important lessons:&lt;/p&gt;

&lt;p&gt;Relationships matter. When the problem is about connections, graph databases outperform relational ones.&lt;/p&gt;

&lt;p&gt;Cypher is intuitive. Once I learned the basics, writing queries felt almost natural.&lt;/p&gt;

&lt;p&gt;Visualization adds value. Data is more persuasive when you can see it.&lt;/p&gt;

</description>
      <category>productivity</category>
      <category>database</category>
    </item>
    <item>
      <title>🎮 Building Competitive Arcade Games with Amazon Q CLI and PyGame – #AmazonQCLI Challenge</title>
      <dc:creator>Jayanta Ghosh</dc:creator>
      <pubDate>Tue, 17 Jun 2025 13:49:46 +0000</pubDate>
      <link>https://dev.to/jayanta2004/building-competitive-arcade-games-with-amazon-q-cli-and-pygame-amazonqcli-challenge-1e6g</link>
      <guid>https://dev.to/jayanta2004/building-competitive-arcade-games-with-amazon-q-cli-and-pygame-amazonqcli-challenge-1e6g</guid>
      <description>&lt;p&gt;Hey everyone! 👋&lt;/p&gt;

&lt;p&gt;I recently participated in the #AmazonQCLI Game Development Challenge, where I explored building full-featured games using nothing but chat-based prompts with Amazon's new AI coding tool — Amazon Q CLI.&lt;/p&gt;

&lt;p&gt;In this blog, I’ll walk you through how I created a mini arcade hub with three competitive games using Amazon Q CLI + PyGame, how AI helped me solve classic programming problems, and how you can try it yourself.&lt;/p&gt;

&lt;h2&gt;
  
  
  🛠️ Tools Used
&lt;/h2&gt;

&lt;p&gt;💬 Amazon Q CLI (Generative AI for local dev)&lt;br&gt;
🐍 Python + PyGame&lt;br&gt;
💻 Windows 11&lt;br&gt;
📁 &lt;a href="https://github.com/Rocky2004-tech/arcade-games" rel="noopener noreferrer"&gt;My GitHub Repo&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  🎮 The Games I Built
&lt;/h2&gt;

&lt;p&gt;I created three fast-paced mini-games that you can choose and launch from a single arcade hub:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;🚀 &lt;strong&gt;Stack Dash&lt;/strong&gt;&lt;br&gt;
A simple game, where the player have to collect the stacks.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;👻 &lt;strong&gt;Ghost Chase&lt;/strong&gt;&lt;br&gt;
A suspenseful maze runner where you’re constantly pursued by a ghost that adapts to your path.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;🧱 &lt;strong&gt;Bullet Bounce&lt;/strong&gt;&lt;br&gt;
A physics-based ricochet game where bullets bounce off walls, and your job is to survive their chaos.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;All of these games are designed to be simple, addictive, and competitive — perfect for showcasing what AI-assisted game development can do.&lt;/p&gt;
&lt;h2&gt;
  
  
  Prompting Amazon Q CLI
&lt;/h2&gt;

&lt;p&gt;📌 &lt;strong&gt;Prompt Example – Game Setup&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Create a PyGame game where a player-controlled spaceship dodges falling asteroids. Add increasing speed, score tracking, and a game-over screen.

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

&lt;/div&gt;



&lt;p&gt;🔧 Q CLI automatically:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Generated the PyGame window &amp;amp; loop&lt;/li&gt;
&lt;li&gt;Added dynamic obstacles&lt;/li&gt;
&lt;li&gt;Created scoring and game-over UI&lt;/li&gt;
&lt;li&gt;Set difficulty progression&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;📌 &lt;strong&gt;Prompt Example – Bullet Bounce Physics&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Make bullets bounce off walls and keep moving at the same angle. Track collisions with player and reduce health.

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

&lt;/div&gt;



&lt;p&gt;This generated logic using vector reflection:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;if bullet.rect.left &amp;lt;= 0 or bullet.rect.right &amp;gt;= WIDTH:
    bullet.dx *= -1
if bullet.rect.top &amp;lt;= 0 or bullet.rect.bottom &amp;gt;= HEIGHT:
    bullet.dy *= -1

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

&lt;/div&gt;



&lt;p&gt;✅ AI handled tricky math and physics beautifully!&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%2Fzr9zxwm6bpvztuc4olxf.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%2Fzr9zxwm6bpvztuc4olxf.png" alt="Image description" width="800" height="315"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  ⏱️ Development Time Saved
&lt;/h2&gt;

&lt;p&gt;Tasks that usually take hours took minutes:&lt;/p&gt;

&lt;p&gt;Sprites and animations&lt;br&gt;
Scoring system and UI&lt;br&gt;
Event handling for power-ups and enemies&lt;br&gt;
Game restart logic&lt;/p&gt;

&lt;p&gt;🧠 Prompting Tip: Ask Amazon Q to “refactor this into separate files” or “add comments for clarity” — it works great!&lt;/p&gt;

&lt;h2&gt;
  
  
  📸 Screenshots
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Menu:&lt;/strong&gt;&lt;/p&gt;

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

&lt;p&gt;&lt;strong&gt;Bullet Bounce:&lt;/strong&gt;&lt;/p&gt;

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

&lt;p&gt;&lt;strong&gt;Stack Dash:&lt;/strong&gt;&lt;/p&gt;

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

&lt;p&gt;&lt;strong&gt;Ghost Chase:&lt;/strong&gt;&lt;/p&gt;

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

&lt;h2&gt;
  
  
  📂 GitHub Repo
&lt;/h2&gt;

&lt;p&gt;🕹️ Play or explore the code here:&lt;br&gt;
🔗 &lt;a href="https://github.com/Rocky2004-tech/arcade-games" rel="noopener noreferrer"&gt;https://github.com/Rocky2004-tech/arcade-games&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Feel free to fork it or suggest new arcade games for the hub!&lt;/p&gt;

&lt;h2&gt;
  
  
  🚀 Why You Should Try Amazon Q CLI
&lt;/h2&gt;

&lt;p&gt;This experience completely changed how I view game development. Instead of starting with blank files, I could express my vision in natural language and refine it rapidly with code suggestions.&lt;/p&gt;

&lt;p&gt;You can do this too:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Create an AWS Builder ID&lt;/li&gt;
&lt;li&gt;Install Amazon Q CLI&lt;/li&gt;
&lt;li&gt;Build with prompts&lt;/li&gt;
&lt;li&gt;Share your creation using #AmazonQCLI&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  🙌 Final Thoughts
&lt;/h2&gt;

&lt;p&gt;This project was a blast to build — not only did I finish multiple games faster than ever, but I also discovered a new way of thinking about development through collaboration with AI.&lt;/p&gt;

&lt;p&gt;Thanks to Amazon Q CLI, my creative ideas turned into playable prototypes within hours, not days.&lt;/p&gt;

&lt;p&gt;Give it a shot — build, learn, and have fun!&lt;br&gt;
Let me know what you think, and feel free to share your own projects in the comments.&lt;/p&gt;

&lt;p&gt;✍️ &lt;strong&gt;Blog Post by&lt;/strong&gt; &lt;a href="https://github.com/Rocky2004-tech" rel="noopener noreferrer"&gt;@Rocky2004-tech&lt;/a&gt;&lt;br&gt;
🎮 #AmazonQCLI #PyGame #GameDev #AI #Python #ArcadeGames&lt;/p&gt;

</description>
      <category>amazonqcli</category>
      <category>programming</category>
      <category>gamedev</category>
    </item>
  </channel>
</rss>
