<?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: Brix Mavu</title>
    <description>The latest articles on DEV Community by Brix Mavu (@brixmavu).</description>
    <link>https://dev.to/brixmavu</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%2F116311%2F047983aa-d064-46f0-b9c5-4a69a5811820.jpeg</url>
      <title>DEV Community: Brix Mavu</title>
      <link>https://dev.to/brixmavu</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/brixmavu"/>
    <language>en</language>
    <item>
      <title>Getting Started with Hyperswitch, Nodejs, and Express for Payment Processing</title>
      <dc:creator>Brix Mavu</dc:creator>
      <pubDate>Fri, 11 Oct 2024 19:52:44 +0000</pubDate>
      <link>https://dev.to/brixmavu/getting-started-with-hyperswitch-nodejs-and-express-for-payment-processing-i3g</link>
      <guid>https://dev.to/brixmavu/getting-started-with-hyperswitch-nodejs-and-express-for-payment-processing-i3g</guid>
      <description>&lt;h2&gt;
  
  
  Introduction
&lt;/h2&gt;

&lt;p&gt;Welcome to this step-by-step tutorial on using the Hyperswitch API with Express and Node.js! In this first part, we'll walk you through creating a basic app using Node.js and Express. Later, in part two, we’ll integrate multiple payment gateways with the help of Hyperswitch.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why Hyperswitch?&lt;/strong&gt;  &lt;/p&gt;

&lt;p&gt;Hyperswitch allows you to connect to various payment processors and payment methods, making it easier to manage transactions. Meanwhile, Node.js enables you to run JavaScript on the server side, and Express simplifies the process of building web applications and APIs.&lt;/p&gt;




&lt;h2&gt;
  
  
  Requirements
&lt;/h2&gt;

&lt;p&gt;Before we start, make sure you have the following:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Node.js installed on your system&lt;/li&gt;
&lt;li&gt;Hyperswitch API keys&lt;/li&gt;
&lt;li&gt;A text editor (I’ll be using Vim on Termux, but feel free to use your favorite editor like VS Code)&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Step 1: Create a "Hello World" Application
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Open your terminal.&lt;/strong&gt;&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%2Fpg6wxe1e3au0fo08qb2m.jpg" 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%2Fpg6wxe1e3au0fo08qb2m.jpg" alt="new terminal" width="720" height="1560"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Create a new folder&lt;/strong&gt; for the project:&lt;br&gt;
&lt;/p&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;mkdir &lt;/span&gt;hyperswitch
&lt;/code&gt;&lt;/pre&gt;

&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Navigate to the folder:&lt;br&gt;
&lt;/p&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;cd &lt;/span&gt;hyperswitch
&lt;/code&gt;&lt;/pre&gt;

&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Initialize a Node.js project by running:&lt;br&gt;
&lt;/p&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npm init &lt;span class="nt"&gt;-y&lt;/span&gt;
&lt;/code&gt;&lt;/pre&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%2F3j4ai74g206qyw72n1de.jpg" 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%2F3j4ai74g206qyw72n1de.jpg" alt="package json" width="720" height="1560"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This will generate a package.json file that manages your project’s dependencies and configurations.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Create a server file.&lt;br&gt;
You can create it using your text editor’s UI or in the terminal:&lt;br&gt;
&lt;/p&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;touch &lt;/span&gt;app.js
&lt;/code&gt;&lt;/pre&gt;


&lt;p&gt;Since I’m using Vim, I’ll run:&lt;br&gt;
&lt;/p&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;vim app.js
&lt;/code&gt;&lt;/pre&gt;


&lt;p&gt;and paste the &lt;a href="https://expressjs.com/en/starter/hello-world.html" rel="noopener noreferrer"&gt;"Hello World"&lt;/a&gt; code from the Express documentation:&lt;br&gt;
&lt;/p&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;express&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;require&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;express&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;app&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;express&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;port&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;3000&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="nx"&gt;app&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;/&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;req&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;res&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;span class="nx"&gt;res&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;send&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;Hello World!&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="p"&gt;});&lt;/span&gt;

&lt;span class="nx"&gt;app&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;listen&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;port&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;`Example app listening on port &lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;port&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;`&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="p"&gt;});&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Save and exit the editor (in Vim, this would be :wq).&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%2Foxntdfqqlzqetyr2a7qg.jpg" 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%2Foxntdfqqlzqetyr2a7qg.jpg" alt="vim in termux" width="720" height="1560"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Install Express by running:&lt;br&gt;
&lt;/p&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npm i express
&lt;/code&gt;&lt;/pre&gt;

&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Run the app and open your browser at &lt;a href="http://localhost:3000/" rel="noopener noreferrer"&gt;http://localhost:3000/&lt;/a&gt;. You should see "Hello World!" displayed.&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%2Fgh7uted7by2x9z280kgb.jpg" 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%2Fgh7uted7by2x9z280kgb.jpg" alt="app in browser" width="720" height="1560"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;




&lt;h2&gt;
  
  
  Step 2: Connecting to Hyperswitch
&lt;/h2&gt;

&lt;p&gt;Now that you have a basic app running, let’s connect it to Hyperswitch.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://app.hyperswitch.io/register" rel="noopener noreferrer"&gt;Sign up for Hyperswitch&lt;/a&gt;.&lt;br&gt;
For a smoother experience, it’s best to complete the sign-up process on a desktop or laptop.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Get your API key from the settings. This key will allow your app to interact with the Hyperswitch API.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Note: For this tutorial, we’ll paste the API key directly into our code. However, this is not recommended for production environments. We’ll cover a more secure method later.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Update your code to &lt;a href="https://api-reference.hyperswitch.io/api-reference/customers/customers--create" rel="noopener noreferrer"&gt;create a customer&lt;/a&gt; through Hyperswitch. Replace the previous code in app.js with the following:&lt;br&gt;
&lt;/p&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;express&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;require&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;express&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;app&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;express&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;port&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;3000&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="nx"&gt;app&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;/&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;req&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;res&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; 
&lt;span class="p"&gt;{&lt;/span&gt;
&lt;span class="cm"&gt;/* Fetching the API key from 
Hyperswitch to create a 
customer */&lt;/span&gt;
  &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;options&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="na"&gt;method&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;POST&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="na"&gt;headers&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;api-key&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;&amp;lt;api-key&amp;gt;&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; 
  &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;Content-Type&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;application/json&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;
&lt;span class="p"&gt;},&lt;/span&gt;
&lt;span class="na"&gt;body&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;JSON&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;stringify&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;
  &lt;span class="na"&gt;email&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;guest@example.com&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;John Doe&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;
&lt;span class="p"&gt;})&lt;/span&gt;
&lt;span class="p"&gt;};&lt;/span&gt; 
&lt;span class="nf"&gt;fetch&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;https://sandbox.hyperswitch.io/customers&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;options&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;then&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;response&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="nx"&gt;response&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;json&lt;/span&gt;&lt;span class="p"&gt;())&lt;/span&gt;
&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;then&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;response&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;response&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="k"&gt;catch&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;err&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;error&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;err&lt;/span&gt;&lt;span class="p"&gt;));&lt;/span&gt;
&lt;span class="nx"&gt;res&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;send&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;Customer creation initiated.&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="p"&gt;});&lt;/span&gt;

&lt;span class="nx"&gt;app&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;listen&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;port&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;`App listening on port &lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;port&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;`&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="p"&gt;});&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Insert your API key by replacing  with the actual key from Hyperswitch:&lt;br&gt;
&lt;/p&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="nx"&gt;headers&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;api-key&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;snd_xxxxxxxxxxxxx&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;Content-Type&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;application/json&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Save the changes to app.js and run the server:&lt;br&gt;
&lt;/p&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;node app.js
&lt;/code&gt;&lt;/pre&gt;

&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Refresh your browser and check the terminal. You should see your first customer entry logged!&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%2Fvmyrh592bql0gcc26wxm.jpg" 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%2Fvmyrh592bql0gcc26wxm.jpg" alt="first entry" width="720" height="1560"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;




&lt;p&gt;That’s it for part one! Now you’ve created a basic Express app and connected it to Hyperswitch to create customers. In the next part, we’ll dive deeper into handling payments and managing multiple gateways.&lt;/p&gt;

&lt;p&gt;Stay tuned!&lt;/p&gt;

</description>
      <category>node</category>
      <category>express</category>
      <category>hyperswitch</category>
      <category>paymentgateways</category>
    </item>
    <item>
      <title>Setting Up Termux and Node.js on Android for Web Development</title>
      <dc:creator>Brix Mavu</dc:creator>
      <pubDate>Fri, 22 Jul 2022 20:35:27 +0000</pubDate>
      <link>https://dev.to/brixmavu/setup-android-phone-for-web-dev-iae</link>
      <guid>https://dev.to/brixmavu/setup-android-phone-for-web-dev-iae</guid>
      <description>&lt;p&gt;Want to start web development on your Android phone? This guide will show you how to use Termux and Node.js to set up a web development environment and create your first project.&lt;/p&gt;




&lt;h3&gt;
  
  
  Step 1: Install Termux and Node.js
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Download &lt;a href="https://f-droid.org/en/packages/com.termux/" rel="noopener noreferrer"&gt;Termux&lt;/a&gt;&lt;br&gt;
Termux is a powerful terminal emulator for Android. Download it from F-Droid, and make sure to get the latest APK file from the bottom of the page.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Update Termux&lt;br&gt;
Open the Termux app and run the following commands to update the package list:&lt;br&gt;
&lt;/p&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nv"&gt;$ &lt;/span&gt;pkg update &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; pkg upgrade
&lt;/code&gt;&lt;/pre&gt;

&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Install Git&lt;br&gt;
Git is essential for version control. Install it by running:&lt;br&gt;
&lt;/p&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nv"&gt;$ &lt;/span&gt;pkg &lt;span class="nb"&gt;install &lt;/span&gt;git
&lt;/code&gt;&lt;/pre&gt;

&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Install Vim&lt;br&gt;
Vim is a popular text editor for developers. Install it by running:&lt;br&gt;
&lt;/p&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nv"&gt;$ &lt;/span&gt;pkg &lt;span class="nb"&gt;install &lt;/span&gt;vim
&lt;/code&gt;&lt;/pre&gt;

&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Install Node.js&lt;br&gt;
Node.js is a JavaScript runtime that allows you to run JavaScript outside the browser. In this tutorial, we will use Node.js to run &lt;code&gt;http-server&lt;/code&gt; , a simple tool to serve your web projects locally. To install Node.js, run the following command:&lt;br&gt;
&lt;/p&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nv"&gt;$ &lt;/span&gt;pkg &lt;span class="nb"&gt;install &lt;/span&gt;nodejs
&lt;/code&gt;&lt;/pre&gt;

&lt;/li&gt;
&lt;/ol&gt;




&lt;h2&gt;
  
  
  Step 2: Start Your First Project
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Set Up Storage Access&lt;br&gt;
To access your phone’s internal storage in Termux, run:&lt;br&gt;
&lt;/p&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nv"&gt;$ &lt;/span&gt;termux-setup-storage
&lt;/code&gt;&lt;/pre&gt;

&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Navigate to the Internal Storage&lt;br&gt;
After running the above command, you can navigate to the storage directory by typing:&lt;br&gt;
&lt;/p&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nv"&gt;$ &lt;/span&gt;&lt;span class="nb"&gt;cd &lt;/span&gt;storage/shared
&lt;/code&gt;&lt;/pre&gt;

&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Create a Project Folder&lt;br&gt;
Create a new directory for your project:&lt;br&gt;
&lt;/p&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nv"&gt;$ &lt;/span&gt;&lt;span class="nb"&gt;mkdir &lt;/span&gt;project
&lt;span class="nv"&gt;$ &lt;/span&gt;&lt;span class="nb"&gt;cd &lt;/span&gt;project
&lt;/code&gt;&lt;/pre&gt;

&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Create Your First Files&lt;br&gt;
Now, create the HTML and CSS files for your project:&lt;br&gt;
&lt;/p&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nv"&gt;$ &lt;/span&gt;&lt;span class="nb"&gt;touch &lt;/span&gt;index.html style.css
&lt;/code&gt;&lt;/pre&gt;

&lt;/li&gt;
&lt;/ol&gt;




&lt;h2&gt;
  
  
  Step 3: Writing Your First HTML Page in Vim
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Open the HTML File in Vim&lt;br&gt;
Use Vim to open and edit your index.html file:&lt;br&gt;
&lt;/p&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nv"&gt;$ &lt;/span&gt;vim index.html
&lt;/code&gt;&lt;/pre&gt;

&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Add Boilerplate HTML Code&lt;br&gt;
Copy and paste the following code into index.html:&lt;br&gt;
&lt;/p&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="cp"&gt;&amp;lt;!DOCTYPE html&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;html&lt;/span&gt; &lt;span class="na"&gt;lang=&lt;/span&gt;&lt;span class="s"&gt;"en"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;head&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;meta&lt;/span&gt; &lt;span class="na"&gt;charset=&lt;/span&gt;&lt;span class="s"&gt;"UTF-8"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;meta&lt;/span&gt; &lt;span class="na"&gt;name=&lt;/span&gt;&lt;span class="s"&gt;"viewport"&lt;/span&gt; &lt;span class="na"&gt;content=&lt;/span&gt;&lt;span class="s"&gt;"width=device-width, initial-scale=1.0"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;meta&lt;/span&gt; &lt;span class="na"&gt;http-equiv=&lt;/span&gt;&lt;span class="s"&gt;"X-UA-Compatible"&lt;/span&gt; &lt;span class="na"&gt;content=&lt;/span&gt;&lt;span class="s"&gt;"ie=edge"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;title&amp;gt;&lt;/span&gt;My Website&lt;span class="nt"&gt;&amp;lt;/title&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;link&lt;/span&gt; &lt;span class="na"&gt;rel=&lt;/span&gt;&lt;span class="s"&gt;"stylesheet"&lt;/span&gt; &lt;span class="na"&gt;href=&lt;/span&gt;&lt;span class="s"&gt;"./style.css"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/head&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;body&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;h1&amp;gt;&lt;/span&gt;My First Heading&lt;span class="nt"&gt;&amp;lt;/h1&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;p&amp;gt;&lt;/span&gt;My first paragraph.&lt;span class="nt"&gt;&amp;lt;/p&amp;gt;&lt;/span&gt;

&lt;span class="nt"&gt;&amp;lt;script &lt;/span&gt;&lt;span class="na"&gt;src=&lt;/span&gt;&lt;span class="s"&gt;"./script.js"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&amp;lt;/script&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/body&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/html&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Add Some Basic Styling&lt;br&gt;
Next, open the style.css file and paste this CSS code to style your HTML elements:&lt;br&gt;
&lt;/p&gt;
&lt;pre class="highlight css"&gt;&lt;code&gt;&lt;span class="nt"&gt;h1&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;span class="nl"&gt;color&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="no"&gt;red&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="nt"&gt;p&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;span class="nl"&gt;color&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="no"&gt;blue&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/li&gt;
&lt;/ol&gt;




&lt;h2&gt;
  
  
  Step 4: Serve Your Project Locally
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Install HTTP Server&lt;br&gt;
To preview your project, you need to use a lightweight web server. You can run one easily using npx:&lt;br&gt;
&lt;/p&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nv"&gt;$ &lt;/span&gt;&lt;span class="nb"&gt;cd &lt;/span&gt;storage/shared/project
&lt;span class="nv"&gt;$ &lt;/span&gt;npx http-server
&lt;/code&gt;&lt;/pre&gt;

&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Access Your Website&lt;br&gt;
After running the command, Termux will display a local address (e.g., &lt;a href="http://127.0.0.1:8080" rel="noopener noreferrer"&gt;http://127.0.0.1:8080&lt;/a&gt;). Open Chrome or any web browser and paste the address into the URL bar to see your website in action.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;




&lt;p&gt;You’ve successfully set up your Android phone for web development and created your first project! You can now experiment and build more complex websites using this setup.&lt;/p&gt;




</description>
      <category>android</category>
      <category>webdev</category>
      <category>termux</category>
      <category>node</category>
    </item>
    <item>
      <title>Day 5</title>
      <dc:creator>Brix Mavu</dc:creator>
      <pubDate>Mon, 04 Apr 2022 21:45:41 +0000</pubDate>
      <link>https://dev.to/brixmavu/day-5-3cf6</link>
      <guid>https://dev.to/brixmavu/day-5-3cf6</guid>
      <description>&lt;p&gt;Make use of templating engine - I will use Handlebars&lt;/p&gt;

&lt;p&gt;Introduce a generated base for quick development - &lt;a href="https://expressjs.com/en/starter/generator.html"&gt;express-generator&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Reason for express generator we can't always built things from scratch the plan is to start from a base.&lt;/p&gt;

&lt;p&gt;In terminal run&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;code&gt;npx express-generator --view=hbs --git day5&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;cd day5&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;npm i&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;If problems arise just run:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;npm audit --force&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Start server&lt;/p&gt;

&lt;p&gt;&lt;code&gt;npm start&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;You can check the command in package.json&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;When server is running open browser and open :&lt;/p&gt;

&lt;p&gt;&lt;code&gt;localhost:3000&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;From day4 prject copy authenticate folder and files inside public folder&lt;/p&gt;

&lt;p&gt;style.css will be replace the one in /public/stylesheets&lt;/p&gt;

&lt;p&gt;script.js goes inside /public/javascripts&lt;/p&gt;

&lt;p&gt;add script tag inside /views/layouts.hbs file &lt;/p&gt;

&lt;p&gt;Inside /views/index.hbs file add html forms from day4/index.html &lt;/p&gt;

&lt;p&gt;Inside /views/index.hbs login form tag change action tag must be &lt;code&gt;action="users/login"&lt;/code&gt;&lt;/p&gt;

</description>
      <category>expressgenerator</category>
      <category>express</category>
      <category>javascript</category>
    </item>
    <item>
      <title>Day 4</title>
      <dc:creator>Brix Mavu</dc:creator>
      <pubDate>Mon, 04 Apr 2022 06:19:00 +0000</pubDate>
      <link>https://dev.to/brixmavu/day-4-1akc</link>
      <guid>https://dev.to/brixmavu/day-4-1akc</guid>
      <description>&lt;p&gt;The idea is to make a simple login with express &lt;/p&gt;

&lt;p&gt;copy day3 folder into day4 folder&lt;/p&gt;

&lt;p&gt;moving just contents from one folder into next folder in same root folder in terminal&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;code&gt;cp -r folder1/* folder2&lt;/code&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;create folder authenticate&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;code&gt;mkdir authenticate&lt;/code&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Inside authenticate folder create new file login.js&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;code&gt;touch login.js&lt;/code&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Paste this code&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;const login = function (user,password) {
    if(user==="brix" &amp;amp;&amp;amp; password==="brix"){
        return true;
    }
    else{
        return false;
    }

}

module.exports = login
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;blockquote&gt;
&lt;h3&gt;
  
  
  Edit
&lt;/h3&gt;

&lt;p&gt;You have to add the two lines below to start working with json in express&lt;br&gt;
&lt;code&gt;app.use(express.json());&lt;/code&gt;&lt;br&gt;
&lt;code&gt;app.use(express.urlencoded({ extended: false }));&lt;/code&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;app.js should look more like this&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;const express = require('express')
const path = require('path')
const login = require('./authenticate/login')

const app = express()
const port = 3000

app.use(express.json());
app.use(express.urlencoded({ extended: false }));
app.use(express.static(path.join(__dirname, 'public')))

app.get('/',(req,res) =&amp;gt; {
  res.sendFile(path.join(__dirname,'public/index.html'));
})

app.post('/login', function (req, res, next) {
    const user = req.body.username
    const pass = req.body.password
    let loginResult = login(user,pass)

    if(loginResult) {
      //show main content
      res.send('Hello World Again!')
    }else{
      //show error 
    }

})

app.listen(port, () =&amp;gt; {
  console.log(`Example app listening on port ${port}`)
})
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



</description>
      <category>express</category>
      <category>javascript</category>
      <category>node</category>
    </item>
    <item>
      <title>Day 3</title>
      <dc:creator>Brix Mavu</dc:creator>
      <pubDate>Sun, 03 Apr 2022 11:08:29 +0000</pubDate>
      <link>https://dev.to/brixmavu/day-3-4d92</link>
      <guid>https://dev.to/brixmavu/day-3-4d92</guid>
      <description>&lt;h3&gt;
  
  
  Requirements
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;NodeJS installed&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  To do
&lt;/h2&gt;

&lt;p&gt;Inside Workspace folder create folder day 3&lt;/p&gt;

&lt;p&gt;&lt;code&gt;mkdir day3&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Enter day3 folder&lt;/p&gt;

&lt;p&gt;&lt;code&gt;cd day3&lt;/code&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Running Express
&lt;/h3&gt;

&lt;p&gt;Run commands inside terminal to install express &lt;/p&gt;

&lt;blockquote&gt;
&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;npm init -y&lt;/code&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;npm i express&lt;/code&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;touch app.js&lt;/code&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;copy and paste &lt;a href="https://expressjs.com/en/starter/hello-world.html"&gt;Hello World Example&lt;/a&gt; &lt;br&gt;
inside app.js file&lt;br&gt;
&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;/blockquote&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;const express = require('express')
const app = express()
const port = 3000

app.get('/', (req, res) =&amp;gt; {
  res.send('Hello World!')
})

app.listen(port, () =&amp;gt; {
  console.log(`Example app listening on port ${port}`)
})
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Inside your terminal type&lt;/p&gt;

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

&lt;p&gt;In browser go localhost:3000&lt;/p&gt;

&lt;h3&gt;
  
  
  Static Files e.g. html, CSS and JavaScript
&lt;/h3&gt;

&lt;p&gt;Inside day3 folder - create new folder - public&lt;/p&gt;

&lt;p&gt;&lt;code&gt;mkdir public&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Inside public paste project files from day 2.&lt;/p&gt;

&lt;p&gt;Files &lt;/p&gt;

&lt;blockquote&gt;
&lt;ul&gt;
&lt;li&gt;index.html &lt;/li&gt;
&lt;li&gt;style.css &lt;/li&gt;
&lt;li&gt;script.js&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;

&lt;p&gt;Inside app.js remove&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;app.get('/', (req, res) =&amp;gt; {
  res.send('Hello World!')
})
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;and add&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;const path = require('path')
app.use('/', express.static(path.join(__dirname, 'public')))

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

&lt;/div&gt;



&lt;p&gt;Learn more about &lt;a href="https://expressjs.com/en/starter/static-files.html"&gt;express.static&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The code should look more like this&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;const express = require('express')
const path = require('path')

const app = express()
const port = 3000

app.use('/', express.static(path.join(__dirname, 'public')))

app.listen(port, () =&amp;gt; {
  console.log(`Example app listening on port ${port}`)
})
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Check again localhost:3000&lt;/p&gt;

</description>
      <category>node</category>
      <category>html</category>
      <category>css</category>
      <category>express</category>
    </item>
    <item>
      <title>Day 2</title>
      <dc:creator>Brix Mavu</dc:creator>
      <pubDate>Fri, 01 Apr 2022 06:03:25 +0000</pubDate>
      <link>https://dev.to/brixmavu/day-2-2621</link>
      <guid>https://dev.to/brixmavu/day-2-2621</guid>
      <description>&lt;p&gt;I will use &lt;a href="https://scrimba.com/"&gt;Scrimba&lt;/a&gt; please check out the platform if you want to learn programing interactively.&lt;/p&gt;

&lt;p&gt;Biggest reason  of using scrimba is it make playing with code easy.&lt;/p&gt;

&lt;p&gt;Check the banner to see coding in action&lt;/p&gt;

&lt;p&gt;Day 2 code on Scrimba &lt;a href="https://scrimba.com/scrim/canvzECW"&gt;Code&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  The Plan
&lt;/h3&gt;

&lt;p&gt;Copy code from day 1&lt;/p&gt;

&lt;p&gt;Make login and registration toggle using js &lt;/p&gt;

&lt;p&gt;Link *.js page to the index.html file&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;code&gt;&amp;lt;script src="./*.js"&amp;gt;&amp;lt;/script&amp;gt;&lt;/code&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Inside *.js file create two functions next() and prev()&lt;/p&gt;

&lt;p&gt;The idea is to toggle between login interface and registration interface&lt;/p&gt;

&lt;p&gt;By default we see login interface when click event is clicked we see registration interface&lt;/p&gt;

&lt;p&gt;Just changing CSS propeties via JavaScript&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Currently in style.css&lt;/p&gt;


&lt;pre class="highlight plaintext"&gt;&lt;code&gt;#registration{
   display: none
}
&lt;/code&gt;&lt;/pre&gt;


&lt;p&gt;JavaScript will dynamically add css style to #login and #registration&lt;/p&gt;


&lt;pre class="highlight plaintext"&gt;&lt;code&gt;#login{
   display: none
}

#registration{
   display: block
}
&lt;/code&gt;&lt;/pre&gt;


&lt;p&gt;The inverse happens when click event is clicked again&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  JavaScript code to achieve that
&lt;/h3&gt;

&lt;blockquote&gt;

&lt;pre class="highlight plaintext"&gt;&lt;code&gt;function next() {
   document.getElementById('login').style.display = "none";
   document.getElementById('registration').style.display = "block";
}
function prev() {
   document.getElementById('registration').style.display = "none";
   document.getElementById('login').style.display = "block";
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/blockquote&gt;

&lt;p&gt;In index.html we setup for the click event on the event on a new user&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;anchor tag inside Login form  add &lt;code&gt;onclick="next()"&lt;/code&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;You don't have an account yet? Register Here&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;anchor tag inside Registration form  add &lt;code&gt;onclick="next()"&lt;/code&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;You have an account already? Login Here&lt;/p&gt;

</description>
      <category>html</category>
      <category>css</category>
      <category>javascript</category>
    </item>
    <item>
      <title>Day 1</title>
      <dc:creator>Brix Mavu</dc:creator>
      <pubDate>Thu, 31 Mar 2022 16:18:41 +0000</pubDate>
      <link>https://dev.to/brixmavu/day-1-4ij6</link>
      <guid>https://dev.to/brixmavu/day-1-4ij6</guid>
      <description>&lt;h3&gt;
  
  
  Create Login and Registration page
&lt;/h3&gt;

&lt;p&gt;Souce code can be found on &lt;a href="https://github.com/brixmavu/100-Days-of-Code/tree/main/day1"&gt;github&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Technologies used
&lt;/h3&gt;

&lt;p&gt;Bash - HTML - CSS - JavaScript&lt;/p&gt;

&lt;p&gt;Create a project folder&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;code&gt;mkdir project&lt;/code&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Enter project folder&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;code&gt;cd project&lt;/code&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Create project files&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;code&gt;touch index.html style.css script.js&lt;/code&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;From code editor explorer open index.html&lt;/p&gt;

&lt;p&gt;Inside index.html file paste Sticky Footer code from &lt;a href="https://raw.githubusercontent.com/mdn/css-examples/main/css-cookbook/sticky-footer--download.html"&gt;mdn github repo&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Rearrange code &lt;/p&gt;

&lt;p&gt;Add new heading :&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;100 days of code&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Add copyright to footer&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;© 2022&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Add login and registration forms inside index.html file &lt;a href="https://gist.github.com/brixmavu/fd3ed94769a0a788bd0525ca170251ab"&gt;forms&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I have added a video check the banner which is audio-less it's due to the fact it got heavy on my PC. I'm using the xbox game bar app on Windows.  The focus is to show how I went about my solution in 8 minutes &lt;a href="https://youtu.be/xajheVmU1xk"&gt;Day 1. Session 1. YouTube&lt;/a&gt;&lt;/p&gt;

</description>
      <category>html</category>
      <category>css</category>
      <category>registration</category>
      <category>login</category>
    </item>
    <item>
      <title>100 Days of Code</title>
      <dc:creator>Brix Mavu</dc:creator>
      <pubDate>Thu, 31 Mar 2022 11:48:07 +0000</pubDate>
      <link>https://dev.to/brixmavu/100-days-of-code-24i8</link>
      <guid>https://dev.to/brixmavu/100-days-of-code-24i8</guid>
      <description>&lt;p&gt;Please join me on my journey of writing code for 100 days.&lt;/p&gt;

&lt;p&gt;As this is to motivate me or someone out there, I will try my best to write simple code.&lt;/p&gt;

&lt;p&gt;These are not tutorials, it just my comeback in writing code and showing off 😂 😂 😂 .&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Simplicity is the ultimate sophistication. ― Leonardo da Vinci&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;All the code will be available on &lt;a href="https://github.com/brixmavu/100-Days-of-Code"&gt;github&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Countdown
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;&lt;a href="https://dev.to/brixmavu/day-1-4ij6"&gt;Day 1: Login and Registration interface&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://dev.to/brixmavu/day-2-2621"&gt;Day 2: Make interface change&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Day 3: expressjs intro
&lt;/li&gt;
&lt;/ol&gt;

</description>
      <category>html</category>
      <category>css</category>
      <category>javascript</category>
      <category>freestyling</category>
    </item>
  </channel>
</rss>
