<?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: Suleiman Alhaji Mohammed</title>
    <description>The latest articles on DEV Community by Suleiman Alhaji Mohammed (@suleiman_alhajimohammed_).</description>
    <link>https://dev.to/suleiman_alhajimohammed_</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%2F1903438%2Fd58f8534-cbeb-4b84-b7b2-fb18ac96200b.jpg</url>
      <title>DEV Community: Suleiman Alhaji Mohammed</title>
      <link>https://dev.to/suleiman_alhajimohammed_</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/suleiman_alhajimohammed_"/>
    <language>en</language>
    <item>
      <title>FlashFeed AI News Summarizer</title>
      <dc:creator>Suleiman Alhaji Mohammed</dc:creator>
      <pubDate>Mon, 11 Aug 2025 02:33:49 +0000</pubDate>
      <link>https://dev.to/suleiman_alhajimohammed_/flashfeed-ai-news-summarizer-438i</link>
      <guid>https://dev.to/suleiman_alhajimohammed_/flashfeed-ai-news-summarizer-438i</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for the &lt;a href="https://dev.to/challenges/redis-2025-07-23"&gt;Redis AI Challenge&lt;/a&gt;: Real-Time AI Innovators&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;I built FlashFeed AI News Summarizer, a Node.js application that fetches the latest news headlines from multiple RSS feeds (including NYTimes World and BBC World), summarizes the news using Hugging Face’s state-of-the-art BART summarization model, and caches the summarized news in Redis. This ensures fast and efficient retrieval of concise, AI-generated summaries for each news article. The app exposes a REST API endpoint /news that returns fresh, summarized news in JSON format.&lt;/p&gt;

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

&lt;p&gt;&lt;a href="https://github.com/suleiman-dev/flashfeed-ai.git" rel="noopener noreferrer"&gt;https://github.com/suleiman-dev/flashfeed-ai.git&lt;/a&gt;&lt;br&gt;
You can run the app locally by cloning the repo, configuring environment variables, and running node index.js.&lt;br&gt;
Here’s an example response from the /news endpoint:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;[
  {
    "title": "The Russian Technocrat Who Helps Enable Putin and Manage the Ukraine War",
    "link": "https://www.nytimes.com/2025/08/10/world/europe/putin-russia-ukraine-war-sergei-kiriyenko.html",
    "pubDate": "Sun, 10 Aug 2025 09:23:00 +0000",
    "source": "NYTimes World",
    "ai_summary": "Sergei V. Kiriyenko has handled the political aspects of the war in Ukraine. ..."
  },
  ...
]
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



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

&lt;p&gt;How I Used Redis 8&lt;br&gt;
I used Redis 8 as a semantic caching layer for storing and quickly retrieving summarized news data. Each time the app fetches fresh news and generates AI summaries, it stores the combined result in Redis with an expiration time (TTL) of 1 hour. This reduces the need for repeated API calls to the Hugging Face service and accelerates response time for client requests.&lt;br&gt;
Although Redis 8 supports advanced AI features like vector search, this project primarily leveraged Redis for fast caching of AI-generated content, demonstrating efficient integration of Redis with real-time AI APIs.&lt;br&gt;
uploads.s3.amazonaws.com/uploads/articles/0bf3f40hyh1dhxdfuumv.PNG)&lt;/p&gt;

</description>
      <category>redischallenge</category>
      <category>devchallenge</category>
      <category>database</category>
      <category>ai</category>
    </item>
    <item>
      <title>Habit Tracker</title>
      <dc:creator>Suleiman Alhaji Mohammed</dc:creator>
      <pubDate>Sun, 19 Jan 2025 20:33:42 +0000</pubDate>
      <link>https://dev.to/suleiman_alhajimohammed_/habit-tracker-55bg</link>
      <guid>https://dev.to/suleiman_alhajimohammed_/habit-tracker-55bg</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for the &lt;a href="https://dev.to/challenges/github"&gt;GitHub Copilot Challenge &lt;/a&gt;: New Beginnings&lt;/em&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  Habit Tracker
&lt;/h1&gt;

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

&lt;p&gt;The Habit Tracker is a web application that helps you track your habits and get AI-powered suggestions to stay on track. It allows you to add, delete, and monitor your habits, as well as view motivational quotes.&lt;/p&gt;

&lt;p&gt;The Habit Tracker is a simple yet effective tool to help users build and maintain good habits. It provides a user-friendly interface to add, track, and delete habits, along with motivational quotes to keep users inspired.&lt;/p&gt;

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

&lt;p&gt;&lt;a href="https://suleiman743.github.io/habit-tracker/" rel="noopener noreferrer"&gt;https://suleiman743.github.io/habit-tracker/&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Repo
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://github.com/suleiman743/habit-tracker.git" rel="noopener noreferrer"&gt;GitHub Repository&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Copilot Experience
&lt;/h2&gt;

&lt;p&gt;Throughout the development process, I used GitHub Copilot to assist with writing HTML, CSS, and JavaScript. Copilot provided helpful suggestions for code snippets, animations, and overall structure, which significantly sped up the development process.&lt;/p&gt;

&lt;h2&gt;
  
  
  GitHub Models
&lt;/h2&gt;

&lt;p&gt;I utilized GitHub Models for prototyping LLM capabilities in the app, particularly for generating habit suggestions and improving the user experience with AI-powered features.&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;Building the Habit Tracker was a rewarding experience. It not only helped me improve my coding skills but also demonstrated the potential of AI-powered tools like GitHub Copilot in streamlining the development process. This project has the potential to positively impact users by helping them build and maintain good habits.&lt;/p&gt;

&lt;h2&gt;
  
  
  License
&lt;/h2&gt;

&lt;p&gt;This project is licensed under the MIT License.&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>githubchallenge</category>
      <category>webdev</category>
      <category>ai</category>
    </item>
    <item>
      <title>Fun with Files File-Upload-to-IPFS</title>
      <dc:creator>Suleiman Alhaji Mohammed</dc:creator>
      <pubDate>Sun, 13 Oct 2024 20:26:03 +0000</pubDate>
      <link>https://dev.to/suleiman_alhajimohammed_/fun-with-files-file-upload-to-ipfs-cpl</link>
      <guid>https://dev.to/suleiman_alhajimohammed_/fun-with-files-file-upload-to-ipfs-cpl</guid>
      <description>&lt;h2&gt;
  
  
  Overview
&lt;/h2&gt;

&lt;p&gt;Fun with Files is a web application that allows users to upload files to the InterPlanetary File System (IPFS) using Pinata's API. This application provides a user-friendly interface with drag-and-drop functionality, real-time upload feedback, and displays the IPFS hash for easy access to uploaded files.&lt;/p&gt;

&lt;h2&gt;
  
  
  Technologies Used
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Frontend:&lt;/strong&gt; HTML, CSS, JavaScript&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Backend:&lt;/strong&gt; Node.js, Express&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Database:&lt;/strong&gt; N/A (IPFS for decentralized storage)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;API:&lt;/strong&gt; Pinata for IPFS integration&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Installation
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Clone the repository:
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;   git clone &amp;lt;repository-url&amp;gt;
   &lt;span class="nb"&gt;cd &lt;/span&gt;fun-with-files/backend
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ol&gt;
&lt;li&gt;Install the necessary packages:
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;   npm &lt;span class="nb"&gt;install&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ol&gt;
&lt;li&gt;Set up environment variables in a &lt;code&gt;.env&lt;/code&gt; file:
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;   PINATA_API_KEY=&amp;lt;your_api_key&amp;gt;
   PINATA_SECRET_API_KEY=&amp;lt;your_secret_api_key&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ol&gt;
&lt;li&gt;Start the server:
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;   node app.js
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ol&gt;
&lt;li&gt;Access the application source codes at &lt;a href="https://github.com/SuleimanSoftDev/File-Upload-to-IPFS" rel="noopener noreferrer"&gt;https://github.com/SuleimanSoftDev/File-Upload-to-IPFS&lt;/a&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Usage
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Open the web application in your browser.&lt;/li&gt;
&lt;li&gt;Use the drag-and-drop area or click to select files for upload.&lt;/li&gt;
&lt;li&gt;Click the "Upload" button to initiate the upload.&lt;/li&gt;
&lt;li&gt;View the IPFS link displayed after a successful upload.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  File Upload Process
&lt;/h2&gt;

&lt;p&gt;When a file is uploaded:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The file is sent to the backend server.&lt;/li&gt;
&lt;li&gt;The server processes the file and uploads it to IPFS via the Pinata API.&lt;/li&gt;
&lt;li&gt;The IPFS hash is returned and displayed on the frontend.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Accessibility Considerations
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Keyboard Navigation:&lt;/strong&gt; Users can navigate the application using the keyboard.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Color Contrast:&lt;/strong&gt; Colors used meet WCAG guidelines for sufficient contrast.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Alt Text:&lt;/strong&gt; All images will have descriptive alt attributes (if applicable).&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Installation
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Clone the repository:
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;   git clone &amp;lt;repository-url&amp;gt;
   &lt;span class="nb"&gt;cd &lt;/span&gt;fun-with-files/backend
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ol&gt;
&lt;li&gt;Install the necessary packages:
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;   npm &lt;span class="nb"&gt;install&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ol&gt;
&lt;li&gt;Set up environment variables in a &lt;code&gt;.env&lt;/code&gt; file:
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;   PINATA_API_KEY=&amp;lt;your_api_key&amp;gt;
   PINATA_SECRET_API_KEY=&amp;lt;your_secret_api_key&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ol&gt;
&lt;li&gt;Start the server:
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;   node app.js
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ol&gt;
&lt;li&gt;Access the application in your browser at &lt;code&gt;http://localhost:5000/index.html&lt;/code&gt;.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Usage
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Open the web application in your browser.&lt;/li&gt;
&lt;li&gt;Use the drag-and-drop area or click to select files for upload.&lt;/li&gt;
&lt;li&gt;Click the "Upload" button to initiate the upload.&lt;/li&gt;
&lt;li&gt;View the IPFS link displayed after a successful upload.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  File Upload Process
&lt;/h2&gt;

&lt;p&gt;When a file is uploaded:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The file is sent to the backend server.&lt;/li&gt;
&lt;li&gt;The server processes the file and uploads it to IPFS via the Pinata API.&lt;/li&gt;
&lt;li&gt;The IPFS hash is returned and displayed on the frontend.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Accessibility Considerations
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Keyboard Navigation:&lt;/strong&gt; Users can navigate the application using the keyboard.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Color Contrast:&lt;/strong&gt; Colors used meet WCAG guidelines for sufficient contrast.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Alt Text:&lt;/strong&gt; All images will have descriptive alt attributes (if applicable).&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Contributing
&lt;/h2&gt;

&lt;p&gt;Contributions are welcome! Please feel free to submit a pull request or create an issue for any feature requests or bug reports.&lt;/p&gt;

&lt;h2&gt;
  
  
  License
&lt;/h2&gt;

&lt;p&gt;This project is licensed under the MIT License.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;
## License
This project is licensed under the MIT License.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



</description>
      <category>devchallenge</category>
      <category>pinatachallenge</category>
      <category>webdev</category>
      <category>api</category>
    </item>
    <item>
      <title>Alien Math Game</title>
      <dc:creator>Suleiman Alhaji Mohammed</dc:creator>
      <pubDate>Sat, 21 Sep 2024 14:24:53 +0000</pubDate>
      <link>https://dev.to/suleiman_alhajimohammed_/alien-math-game-3ecm</link>
      <guid>https://dev.to/suleiman_alhajimohammed_/alien-math-game-3ecm</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for the &lt;a href="https://dev.to/challenges/webgame"&gt;Web Game Challenge&lt;/a&gt;, Build a Game: Alien Edition&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;The Alien Math Game is an educational HTML5 game designed to help players improve their math skills while having fun. Players solve math problems to destroy aliens that descend from the top of the screen. The game includes various features such as levels, timers, and a leaderboard (Performance).&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Different types of math problems (addition, subtraction, multiplication, division)&lt;/li&gt;
&lt;li&gt;Increasing difficulty as players progress&lt;/li&gt;
&lt;li&gt;Time-based challenges with a countdown timer&lt;/li&gt;
&lt;li&gt;Special rewards and power-ups&lt;/li&gt;
&lt;li&gt;Leaderboard to track top scores&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;How to Play&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Enter your name in the input box and click "Start Game".&lt;/li&gt;
&lt;li&gt;Solve the math problems presented to you by entering the answer in the provided input box.&lt;/li&gt;
&lt;li&gt;Destroy aliens by answering correctly before the timer runs out.&lt;/li&gt;
&lt;li&gt;Keep an eye on your lives, score, and remaining aliens!&lt;/li&gt;
&lt;li&gt;Try to complete all levels and achieve the highest score on the leaderboard!&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://binarybridge2024.github.io/Alien-Math-Blast/demo.html" rel="noopener noreferrer"&gt;https://binarybridge2024.github.io/Alien-Math-Blast/demo.html&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;License&lt;/strong&gt;&lt;br&gt;
This project is open-source and available under the MIT License&lt;br&gt;
@Suleiman_Alhaji_Mohammed&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>gamechallenge</category>
      <category>gamedev</category>
      <category>webdev</category>
    </item>
    <item>
      <title>3D Solar System Simulation</title>
      <dc:creator>Suleiman Alhaji Mohammed</dc:creator>
      <pubDate>Thu, 12 Sep 2024 12:06:01 +0000</pubDate>
      <link>https://dev.to/suleiman_alhajimohammed_/3d-solar-system-simulation-fp3</link>
      <guid>https://dev.to/suleiman_alhajimohammed_/3d-solar-system-simulation-fp3</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for &lt;a href="https://dev.to/challenges/frontend-2024-09-04"&gt;Frontend Challenge v24.09.04&lt;/a&gt;, Glam Up My Markup: Space&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;3D Solar System Simulation&lt;br&gt;
The 3D Solar System Simulation is an interactive visualization that displays the planets of our solar system orbiting the sun in real-time. The planets' relative sizes and distances are modeled based on actual astronomical data, providing a realistic and engaging experience. This simulation was built using JavaScript and Three.js, a popular 3D graphics library, to create and render the planets in a web browser.&lt;/p&gt;

&lt;p&gt;Demo&lt;br&gt;
You can experience a live demo of the Solar System Simulation by visiting the following link:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/BinaryBridge2024/solar-system-simulation/" rel="noopener noreferrer"&gt;https://github.com/BinaryBridge2024/solar-system-simulation/&lt;/a&gt;&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>frontendchallenge</category>
      <category>css</category>
      <category>javascript</category>
    </item>
    <item>
      <title>User Management System</title>
      <dc:creator>Suleiman Alhaji Mohammed</dc:creator>
      <pubDate>Mon, 02 Sep 2024 04:18:49 +0000</pubDate>
      <link>https://dev.to/suleiman_alhajimohammed_/my-starter-kit-3d28</link>
      <guid>https://dev.to/suleiman_alhajimohammed_/my-starter-kit-3d28</guid>
      <description>&lt;h2&gt;
  
  
  My Kit Overview
&lt;/h2&gt;

&lt;p&gt;Is a User Management System built using Node.js, Express.js, and PostgreSQL. The system allows for basic CRUD (Create, Read, Update, Delete) operations on user data. It includes a RESTful API for backend operations and a simple frontend to interact with the API.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;User Registration:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Allows new users to register by providing a username, email, and password.&lt;/li&gt;
&lt;li&gt;Passwords are hashed before being stored in the database for security.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Retrieve Users:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Fetch all users from the database or retrieve a single user by their unique ID.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Update User Information:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Update the username, email, or password of an existing user.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Delete Users:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Remove a user from the database based on their ID.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Error Handling:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Enhanced error handling ensures that meaningful error messages are returned, aiding in debugging.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Technologies Used:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Backend:

&lt;ul&gt;
&lt;li&gt;Node.js: Server-side runtime for handling requests.&lt;/li&gt;
&lt;li&gt;Express.js: Web framework for building the RESTful API.&lt;/li&gt;
&lt;li&gt;PostgreSQL: Database for storing user data.&lt;/li&gt;
&lt;li&gt;pg: Node.js library for interfacing with PostgreSQL.&lt;/li&gt;
&lt;li&gt;bcrypt: For hashing passwords before storing them in the database.&lt;/li&gt;
&lt;li&gt;CORS: Middleware to enable Cross-Origin Resource Sharing.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;

&lt;p&gt;-Frontend:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Simple HTML and JavaScript to interact with the API endpoints for registration, updating, and deleting users.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Steps Involved:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Database Setup:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A PostgreSQL database was configured with a &lt;code&gt;users&lt;/code&gt; table containing fields for &lt;code&gt;id&lt;/code&gt;, &lt;code&gt;username&lt;/code&gt;, &lt;code&gt;email&lt;/code&gt;, &lt;code&gt;password&lt;/code&gt;, and &lt;code&gt;created_at&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;API Development:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Routes were created for each CRUD operation (&lt;code&gt;/api/register&lt;/code&gt;, &lt;code&gt;/api/users&lt;/code&gt;, &lt;code&gt;/api/users/:id&lt;/code&gt;, etc.).&lt;/li&gt;
&lt;li&gt;Controllers were implemented to handle the business logic for each operation.&lt;/li&gt;
&lt;li&gt;Middleware was used for handling errors and parsing JSON bodies.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Frontend Integration:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A basic user interface was developed to allow for registration, viewing, updating, and deleting users.&lt;/li&gt;
&lt;li&gt;Fetch API was used to send HTTP requests to the backend.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Deployment:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The project was uploaded to GitHub for version control and sharing.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The system can be used as a starter kit for building more complex user management applications or integrated into larger systems where user authentication and management are required. This project serves as a comprehensive example of building a full-stack web application, from backend API development to frontend interaction, using modern web technologies.&lt;/p&gt;

&lt;p&gt;Project Link (&lt;a href="https://github.com/BinaryBridge2024/My-Starter-Kit.git" rel="noopener noreferrer"&gt;https://github.com/BinaryBridge2024/My-Starter-Kit.git&lt;/a&gt;)&lt;/p&gt;

&lt;p&gt;The Stack is very nice, Dev Community are good in providing educatable project for helping developers to get deep into their skills and I choose this stack to give my contributions to Developers to use my starter kit for developing their Apps. I learned how to work PostgreSQL database on Neon.  &lt;/p&gt;

&lt;p&gt;&lt;a class="mentioned-user" href="https://dev.to/suleiman_alhajimohammed_"&gt;@suleiman_alhajimohammed_&lt;/a&gt;&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>neonchallenge</category>
      <category>postgres</category>
      <category>database</category>
    </item>
    <item>
      <title>Creating and Sending Transactions with Stellar’s JavaScript SDK</title>
      <dc:creator>Suleiman Alhaji Mohammed</dc:creator>
      <pubDate>Sun, 18 Aug 2024 05:37:17 +0000</pubDate>
      <link>https://dev.to/suleiman_alhajimohammed_/creating-and-sending-transactions-with-stellars-javascript-sdk-1mla</link>
      <guid>https://dev.to/suleiman_alhajimohammed_/creating-and-sending-transactions-with-stellars-javascript-sdk-1mla</guid>
      <description>&lt;p&gt;&lt;strong&gt;Let’s get into the tutorial on how to interact with the Stellar blockchain using its SDK. We’ll focus on creating and sending transactions with Steller's JavaScript SDK, which is useful for developers who want to integrate Stellar into their applications&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Tutorial: Creating and Sending Transactions with Stellar’s JavaScript SDK&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Prerequisites&lt;/strong&gt;&lt;br&gt;
&lt;strong&gt;Node.js:&lt;/strong&gt; Ensure you have Node.js installed on your system. You can download it from nodejs.org.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Stellar SDK:&lt;/strong&gt; We will use the Stellar SDK for JavaScript. You can install it using npm.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Basic JavaScript Knowledge:&lt;/strong&gt; Understanding of JavaScript basics is helpful.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Stellar Account&lt;/strong&gt;: You’ll need a Stellar account to interact with the Stellar network. You can create one using the Stellar Laboratory or other Stellar wallet providers.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 1: Setting Up Your Environment&lt;/strong&gt;&lt;br&gt;
First, create a new project directory and initialize it with npm:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;mkdir stellar-tutorial&lt;br&gt;
cd stellar-tutorial&lt;br&gt;
npm init -y&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Install the Stellar SDK:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;npm install @stellar/sdk&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 2: Writing the Code&lt;/strong&gt;&lt;br&gt;
Create a file named &lt;strong&gt;'index.js'&lt;/strong&gt; in your project directory and open it in your favorite code editor eg. Sublime Text, Visual Studio code and Bracket etc.&lt;br&gt;
Add the following code to &lt;strong&gt;'index.js'&lt;/strong&gt;:&lt;/p&gt;

&lt;p&gt;`const StellarSdk = require('@stellar/sdk');&lt;br&gt;
const fetch = require('node-fetch');&lt;br&gt;
global.fetch = fetch;&lt;/p&gt;

&lt;p&gt;// Configure network&lt;br&gt;
const server = new StellarSdk.Server('&lt;a href="https://horizon-testnet.stellar.org'" rel="noopener noreferrer"&gt;https://horizon-testnet.stellar.org'&lt;/a&gt;); // Use testnet for development&lt;br&gt;
const networkPassphrase = StellarSdk.Networks.TESTNET;&lt;/p&gt;

&lt;p&gt;// Replace with your Stellar account details&lt;br&gt;
const sourceSecretKey = 'YOUR_SOURCE_ACCOUNT_SECRET_KEY';&lt;br&gt;
const destinationPublicKey = 'DESTINATION_ACCOUNT_PUBLIC_KEY';&lt;br&gt;
const amount = '10'; // Amount to send in XLM&lt;/p&gt;

&lt;p&gt;// Create a keypair from the source secret key&lt;br&gt;
const sourceKeypair = StellarSdk.Keypair.fromSecret(sourceSecretKey);&lt;/p&gt;

&lt;p&gt;// Create a transaction object&lt;br&gt;
async function sendTransaction() {&lt;br&gt;
    try {&lt;br&gt;
        // Load source account&lt;br&gt;
        const account = await server.loadAccount(sourceKeypair.publicKey());&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;    // Create a payment operation
    const paymentOperation = StellarSdk.Operation.payment({
        destination: destinationPublicKey,
        asset: StellarSdk.Asset.native(),
        amount: amount
    });

    // Create a transaction
    const transaction = new StellarSdk.TransactionBuilder(account, {
        fee: StellarSdk.BASE_FEE,
        networkPassphrase: networkPassphrase
    })
    .addOperation(paymentOperation)
    .setTimeout(30)
    .build();

    // Sign the transaction
    transaction.sign(sourceKeypair);

    // Submit the transaction
    const response = await server.submitTransaction(transaction);
    console.log('Transaction successful:', response);
} catch (error) {
    console.error('Transaction failed:', error);
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;}&lt;/p&gt;

&lt;p&gt;// Run the function&lt;br&gt;
sendTransaction();`&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 3: Understanding the Code&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Network Configuration:&lt;/strong&gt; We use the Stellar Testnet for development to avoid using real assets. For production, you’d use &lt;strong&gt;'&lt;a href="https://horizon.stellar.org" rel="noopener noreferrer"&gt;https://horizon.stellar.org&lt;/a&gt;'&lt;/strong&gt; and &lt;strong&gt;'StellarSdk.Networks.PUBLIC'&lt;/strong&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Source and Destination Accounts:&lt;/strong&gt; Replace &lt;strong&gt;'YOUR_SOURCE_ACCOUNT_SECRET_KEY'&lt;/strong&gt; with the secret key of the account sending the XLM, and &lt;strong&gt;'DESTINATION_ACCOUNT_PUBLIC_KEY'&lt;/strong&gt; with the public key of the recipient account.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Building the Transaction:&lt;/strong&gt; We create a &lt;strong&gt;'Payment'&lt;/strong&gt; operation, build the transaction, sign it with the source account’s private key, and submit it to the network.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Error Handling: *&lt;em&gt;The *&lt;/em&gt;'try...catch'&lt;/strong&gt; block helps handle any errors that might occur during the transaction process.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Step 4: Running the Code&lt;/strong&gt;&lt;br&gt;
Run the script using Node.js:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;node index.js&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;You should see a success message if everything goes smoothly. If there are issues, the error message will provide details on what went wrong.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Additional Tips&lt;/strong&gt;&lt;br&gt;
&lt;strong&gt;Stellar Laboratory:&lt;/strong&gt; Use Stellar Laboratory for experimenting with transactions and key management.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Environment Variables:&lt;/strong&gt; For security reasons, consider using environment variables to store sensitive information like secret keys.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Error Codes:&lt;/strong&gt; Familiarize yourself with common Stellar error codes to troubleshoot issues effectively.&lt;/p&gt;

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