<?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: SIYUM</title>
    <description>The latest articles on DEV Community by SIYUM (@codercrux).</description>
    <link>https://dev.to/codercrux</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%2F993082%2F34798703-0362-4601-a03c-d91c2d1b1e0e.jpeg</url>
      <title>DEV Community: SIYUM</title>
      <link>https://dev.to/codercrux</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/codercrux"/>
    <language>en</language>
    <item>
      <title>Authentication and Authorization with NodeJS Nethsara Siyum</title>
      <dc:creator>SIYUM</dc:creator>
      <pubDate>Wed, 13 Sep 2023 09:10:29 +0000</pubDate>
      <link>https://dev.to/codercrux/authentication-and-authorization-with-nodejsnethsara-siyum-2pfp</link>
      <guid>https://dev.to/codercrux/authentication-and-authorization-with-nodejsnethsara-siyum-2pfp</guid>
      <description>&lt;p&gt;Hey guyss!!&lt;/p&gt;

&lt;p&gt;In this tutorial I am going to show you the Authentication and Authorization, how to use it and what is the different between that two.&lt;/p&gt;

&lt;h2&gt;
  
  
  Authentication
&lt;/h2&gt;

&lt;p&gt;Authentication is the process of verifying the identity of a user, system, or entity trying to access a resource or perform an action. It ensures that the claimed identity is legitimate and not forged.&lt;/p&gt;

&lt;h2&gt;
  
  
  Authorization
&lt;/h2&gt;

&lt;p&gt;These two are little bit same so we are mostly confusing with the two words, While we are verifying the identity using Authentication we are using Authorization to determine who will have the access to the Service.&lt;/p&gt;

&lt;p&gt;For example we can have role based system, where the regular user cant edit or delete the product while Admin can. Both of them must be verify identity using the Authentication&lt;/p&gt;

&lt;p&gt;Hope that make sense.&lt;/p&gt;




&lt;p&gt;In here on I am showing you a example project that we can used to Authentication and Authorization using NodeJS.&lt;/p&gt;

&lt;p&gt;Lets make our environment first. I hope to use NodeJS + MongoDB for this.&lt;/p&gt;

&lt;p&gt;We will run our NodeJS Application with Express and use the MongoDB as our Database.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;.env&lt;/strong&gt; File&lt;/p&gt;

&lt;p&gt;&lt;code&gt;PORT = 8000&lt;br&gt;
MONGO_URI = YOUR URI TO MONGODB&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;We need these &lt;strong&gt;dependencies&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;bcrypt, dotenv, express, mongoose, morgan&lt;/code&gt;&lt;/p&gt;




&lt;p&gt;So our &lt;strong&gt;package.json&lt;/strong&gt; will look like this&lt;/p&gt;

&lt;p&gt;&lt;code&gt;{&lt;br&gt;
  "name": "authentication-and-authorization",&lt;br&gt;
  "version": "1.0.0",&lt;br&gt;
  "description": "",&lt;br&gt;
  "main": "index.js",&lt;br&gt;
  "scripts": {&lt;br&gt;
    "dev": "nodemon index.js"&lt;br&gt;
  },&lt;br&gt;
  "keywords": [],&lt;br&gt;
  "type": "module",&lt;br&gt;
  "author": "SIYUM",&lt;br&gt;
  "license": "ISC",&lt;br&gt;
  "dependencies": {&lt;br&gt;
    "bcrypt": "^5.1.1",&lt;br&gt;
    "dotenv": "^16.3.1",&lt;br&gt;
    "express": "^4.18.2",&lt;br&gt;
    "mongoose": "^7.5.1",&lt;br&gt;
    "morgan": "^1.10.0"&lt;br&gt;
  }&lt;br&gt;
}&lt;/code&gt;&lt;/p&gt;




&lt;p&gt;Lets move to the &lt;strong&gt;index.js&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;`import express, { json } from "express";&lt;br&gt;
import morgan from "morgan";&lt;br&gt;
import { config } from "dotenv";&lt;br&gt;
import mongoose from "mongoose";&lt;br&gt;
import authRouter from "./api/auth.js";&lt;/p&gt;

&lt;p&gt;config();&lt;/p&gt;

&lt;p&gt;const PORT = process.env.PORT || 3000;&lt;/p&gt;

&lt;p&gt;const app = express();&lt;/p&gt;

&lt;p&gt;app.use(json());&lt;br&gt;
app.use(morgan("dev"));&lt;/p&gt;

&lt;p&gt;app.use("/api/v1/auth", authRouter);&lt;/p&gt;

&lt;p&gt;mongoose&lt;br&gt;
  .connect(process.env.MONGO_URI)&lt;br&gt;
  .then(() =&amp;gt; app.listen(PORT))&lt;br&gt;
  .then(() =&amp;gt; {&lt;br&gt;
    () =&amp;gt; {&lt;br&gt;
      console.log(&lt;code&gt;Server is running on port ${PORT}&lt;/code&gt;);&lt;br&gt;
    };&lt;br&gt;
  })&lt;br&gt;
  .catch((err) =&amp;gt; {&lt;br&gt;
    console.error(err);&lt;br&gt;
  });`&lt;/p&gt;

&lt;p&gt;What I did here is I created our server on the Port I mentioned in the env file or 3000. Then I imported my route “&lt;em&gt;&lt;strong&gt;./api/auth.js&lt;/strong&gt;&lt;/em&gt;” for routing. In there Implemented the routing for the users authentication&lt;br&gt;
Lets begin the Authentication&lt;/p&gt;

&lt;p&gt;Here is &lt;strong&gt;auth.js&lt;/strong&gt; I created the registration route.&lt;/p&gt;

&lt;p&gt;`import { Router } from "express";&lt;br&gt;
import { register } from "../controller/userController.js";&lt;/p&gt;

&lt;p&gt;const authRouter = Router();&lt;/p&gt;

&lt;p&gt;authRouter.route("/").post(register);&lt;br&gt;
export default authRouter;`&lt;/p&gt;

&lt;p&gt;Whenever We got &lt;strong&gt;api/v1/auth&lt;/strong&gt; POST request our registration will be fired&lt;/p&gt;

&lt;p&gt;Here is the Register Logic&lt;/p&gt;

&lt;p&gt;`import User from "../models/User.js";&lt;br&gt;
import bcrypt from "bcrypt";&lt;/p&gt;

&lt;p&gt;export const register = async (req, res) =&amp;gt; {&lt;br&gt;
  const salt = await bcrypt.genSalt(10);&lt;br&gt;
  const hasPassword = await bcrypt.hash(req.body.password, salt);&lt;/p&gt;

&lt;p&gt;const user = new User({ ...req.body, password: hasPassword });&lt;br&gt;
  try {&lt;br&gt;
    await user.save();&lt;br&gt;
    res.send(user);&lt;br&gt;
  } catch (err) {&lt;br&gt;
    res.status(500).send(err);&lt;br&gt;
  }&lt;br&gt;
};`&lt;/p&gt;

&lt;p&gt;We are creating a Model name &lt;strong&gt;User.js&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;`import mongoose from "mongoose";&lt;/p&gt;

&lt;p&gt;import { Schema } from "mongoose";&lt;/p&gt;

&lt;p&gt;const userSchema = new Schema(&lt;br&gt;
  {&lt;br&gt;
    email: {&lt;br&gt;
      type: String,&lt;br&gt;
      required: true,&lt;br&gt;
    },&lt;br&gt;
    password: {&lt;br&gt;
      type: String,&lt;br&gt;
      required: true,&lt;br&gt;
    },&lt;br&gt;
    status: {&lt;br&gt;
      type: Number,&lt;br&gt;
      unique: true,&lt;br&gt;
      default: 1,&lt;br&gt;
    },&lt;br&gt;
  },&lt;br&gt;
  { timestamps: true }&lt;br&gt;
);&lt;/p&gt;

&lt;p&gt;const User = mongoose.model("User", userSchema);&lt;/p&gt;

&lt;p&gt;export default User;`&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--WIkQSRnQ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ulu55k9os7xl8xjiu2y8.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--WIkQSRnQ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ulu55k9os7xl8xjiu2y8.png" alt="Image description" width="720" height="471"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;Lets go basic here, whenever we want to create a user from the request, we are reading his body and adding the database relevant values, such as Email and Password. We are using bcrypt to encrypt the password before it stored in the DB. This way we are making our passwords safe to store. After saving our first user it will look like this.&lt;/p&gt;

&lt;p&gt;Now moving to login logic.&lt;/p&gt;

&lt;p&gt;We are saving the data in the DB, but how can we access it. Lets see.&lt;/p&gt;

&lt;p&gt;I am hoping to do like this, Whenever we get hit to &lt;strong&gt;&lt;em&gt;/api/v1/login&lt;/em&gt;&lt;/strong&gt; we will decrypt our password and verify whether this is the legitimate user. Lets gooo.&lt;/p&gt;

&lt;p&gt;We need to install additional dependency called jsonwebtoken, and we need to add additional attribute to our .env file.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;TOKEN_SECRET = ILOVEMEDIUM&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;This can be any word, you can customize it, here is the login logic&lt;/p&gt;

&lt;p&gt;`export const login = async (req, res) =&amp;gt; {&lt;br&gt;
  try {&lt;br&gt;
    const user = await User.findOne({ email: req.body.email });&lt;br&gt;
    if (user) {&lt;br&gt;
      const validPass = await bcrypt.compare(req.body.password, user.password);&lt;br&gt;
      if (!validPass)&lt;br&gt;
        return res.status(400).send("Mobile/Email or Password is wrong");&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;  const token = jwt.sign(
    { id: user._id, user_type_id: user.status },
    process.env.TOKEN_SECRET
  );
  res.header("auth-token", token).send({ token: token });
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;} catch (err) {&lt;br&gt;
    if (err instanceof NotFoundError) {&lt;br&gt;
      res.status(401).send(&lt;code&gt;Mobile/Email or Password is wrong&lt;/code&gt;);&lt;br&gt;
    } else {&lt;br&gt;
      res.status(500).send("Error retrieving User");&lt;br&gt;
    }&lt;br&gt;
  }&lt;br&gt;
};`&lt;/p&gt;

&lt;p&gt;After we send correct password you will get return like this&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--xbdKz_IH--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/2opmu8z5533q6vji7ry0.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--xbdKz_IH--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/2opmu8z5533q6vji7ry0.png" alt="Image description" width="720" height="471"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;So my friends that is how you are doing the authentication and authorization. Also we can see it injected our auth-token to header&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--EEkfQ1bu--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/9grpmrnrc5yrajhhxyoi.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--EEkfQ1bu--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/9grpmrnrc5yrajhhxyoi.png" alt="Image description" width="720" height="31"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Authorization
&lt;/h2&gt;

&lt;p&gt;We often used interchangeably, authentication and authorization, but those words represent fundamentally different functions.&lt;/p&gt;

&lt;p&gt;In simple terms, authentication is the process of verifying who a user is, while authorization is the process of verifying what they have access to.&lt;/p&gt;

&lt;p&gt;We will use middle ware to check whether &lt;strong&gt;userLoggedIn&lt;/strong&gt; or &lt;strong&gt;isUserAdmin&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;I created &lt;strong&gt;authMiddleware.js&lt;/strong&gt; and add the code below.&lt;/p&gt;

&lt;p&gt;`import { TOKEN_SECRET } from "../config/config";&lt;br&gt;
import { verify } from "jsonwebtoken";&lt;/p&gt;

&lt;p&gt;export function loggedIn(req, res, next) {&lt;br&gt;
  let token = req.header("Authorization");&lt;br&gt;
  if (!token) return res.status(401).send("Access Denied");&lt;/p&gt;

&lt;p&gt;try {&lt;br&gt;
    if (token.startsWith("Bearer ")) {&lt;br&gt;
      token = token.slice(7, token.length).trimLeft();&lt;br&gt;
    }&lt;br&gt;
    const verified = verify(token, TOKEN_SECRET);&lt;br&gt;
    if (verified.user_type_id === 2) {&lt;br&gt;
      let req_url = req.baseUrl + req.route.path;&lt;br&gt;
      if (&lt;br&gt;
        req_url.includes("users/:id") &amp;amp;&amp;amp;&lt;br&gt;
        parseInt(req.params.id) !== verified.id&lt;br&gt;
      ) {&lt;br&gt;
        return res.status(401).send("Unauthorized!");&lt;br&gt;
      }&lt;br&gt;
    }&lt;br&gt;
    req.user = verified;&lt;br&gt;
    next();&lt;br&gt;
  } catch (err) {&lt;br&gt;
    res.status(400).send("Invalid Token");&lt;br&gt;
  }&lt;br&gt;
}&lt;/p&gt;

&lt;p&gt;export async function adminOnly(req, res, next) {&lt;br&gt;
  if (req.user.user_type_id === 2) {&lt;br&gt;
    return res.status(401).send("Access Denied");&lt;br&gt;
  }&lt;br&gt;
  next();&lt;br&gt;
}`&lt;/p&gt;

&lt;p&gt;And you should add the flag to the route , index.js&lt;/p&gt;

&lt;p&gt;&lt;code&gt;app.use("/api/v1/user", loggedIn, userRouter);&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Folder Structure&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--WZnOK6sG--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/m9toh3go3hmilu3hmnf1.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--WZnOK6sG--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/m9toh3go3hmilu3hmnf1.png" alt="Image description" width="532" height="890"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Thats how we are doing Authentication and Authorization in the NodeJS App. Hope you like this tutorial.&lt;/p&gt;

&lt;p&gt;Final Code : &lt;a href="https://github.com/Nethsara/node-authentication---authorization"&gt;https://github.com/Nethsara/node-authentication---authorization&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Thanks for reading.&lt;/p&gt;

</description>
      <category>jwt</category>
      <category>node</category>
      <category>javascript</category>
      <category>backend</category>
    </item>
    <item>
      <title>JS - FAQ</title>
      <dc:creator>SIYUM</dc:creator>
      <pubDate>Mon, 26 Jun 2023 12:17:06 +0000</pubDate>
      <link>https://dev.to/codercrux/js-faq-3n04</link>
      <guid>https://dev.to/codercrux/js-faq-3n04</guid>
      <description>&lt;h2&gt;
  
  
  What is javascript.?
&lt;/h2&gt;

&lt;p&gt;JavaScript is scripting language that is usually using to dynamically updating the content.&lt;/p&gt;

&lt;h2&gt;
  
  
  Explain about the history of JavaScript.
&lt;/h2&gt;

&lt;p&gt;LiveScript(Mocha) is created by Brendan Eich in 10 days, which is later renamed to JavaScript.&lt;/p&gt;

&lt;h2&gt;
  
  
  Whatis ECMA Script.?
&lt;/h2&gt;

&lt;p&gt;ECMA specification is defining the syntax to how it should work, ensuring consistnce of the script&lt;/p&gt;

&lt;h2&gt;
  
  
  What are the methods of creating valid identifiers in JS.?
&lt;/h2&gt;

&lt;p&gt;Valid Methods&lt;br&gt;
&lt;code&gt;var firstName;&lt;br&gt;
var _privateVariable;&lt;br&gt;
var $element;&lt;br&gt;
var counter;&lt;br&gt;
var camelCaseVariable;&lt;br&gt;
&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Invalid methods&lt;br&gt;
&lt;code&gt;var 123abc; // Cannot start with a digit&lt;br&gt;
var my-variable; // Hyphens are not allowed&lt;br&gt;
var if; // Reserved word as an identifier&lt;br&gt;
var first name; // Spaces are not allowed&lt;br&gt;
&lt;/code&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  How JS Works
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--6CR0Y6Hj--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/z2mydzrniwrd7mlq9miu.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--6CR0Y6Hj--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/z2mydzrniwrd7mlq9miu.png" alt="Image description" width="700" height="374"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What is bigint.?
&lt;/h2&gt;

&lt;p&gt;The numbers greater than 2^53 - 1 &lt;/p&gt;

&lt;h2&gt;
  
  
  What is the difference between null and undefined?
&lt;/h2&gt;

&lt;p&gt;Undefined mean variable declared, but value is not assigned. Null mean there is no value in it(Empty value). &lt;/p&gt;

&lt;h2&gt;
  
  
  What is a DOM.? Explain.
&lt;/h2&gt;

&lt;p&gt;Document Object Modal. Programming interface for web document. We can use the JS to manupulate this.&lt;/p&gt;

&lt;h2&gt;
  
  
  Difference of the For In and For Of
&lt;/h2&gt;

&lt;p&gt;&lt;code&gt;{&lt;br&gt;
a : 1,&lt;br&gt;
b : 2&lt;br&gt;
}&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;For in will return the attributes - {a, b}&lt;br&gt;
For of will return the actual values - {1, 2}&lt;/p&gt;

&lt;h2&gt;
  
  
  What are literals.? and what is a literal base object.?
&lt;/h2&gt;

&lt;h2&gt;
  
  
  What are the two types of functions in JS. Explain with examples.
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Named functions - &lt;code&gt;function name(){}&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Unnamed(Anonymous) functions - &lt;code&gt;()=&amp;gt;{}&lt;/code&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  What is a event object
&lt;/h2&gt;

&lt;p&gt;Event is object that is keep track of the events that is happening in the web page, it contains target...etc.For each event JS is creating E object which is can be passed to a handler function&lt;/p&gt;

&lt;h2&gt;
  
  
  What is jQuery.?
&lt;/h2&gt;

&lt;p&gt;jQuery is a third party library that make an abstraction layer on the js. It makes write common js function easier. Fast and simple&lt;/p&gt;

&lt;h2&gt;
  
  
  What are the benefits of using jQuery?
&lt;/h2&gt;

&lt;p&gt;Simplified DOM Manipulation, Increased productivity, Documentation and Community Support&lt;/p&gt;

&lt;h2&gt;
  
  
  What are the traversing methods that you have used in jQuery and when do we need them.?
&lt;/h2&gt;

&lt;p&gt;&lt;code&gt;.find()&lt;/code&gt;: This method selects all descendant elements that match a specified selector. &lt;br&gt;
&lt;code&gt;.parent()&lt;/code&gt;: This method selects the direct parent element of the selected element(s). &lt;br&gt;
&lt;code&gt;.children()&lt;/code&gt;: This method selects all direct child elements of the selected element(s).&lt;br&gt;
&lt;code&gt;.siblings()&lt;/code&gt;: This method selects all sibling elements of the selected element(s).&lt;br&gt;
&lt;code&gt;.prev()&lt;/code&gt;: This method selects the immediately preceding sibling of the selected element(s).&lt;br&gt;
&lt;code&gt;.next()&lt;/code&gt;: This method selects the immediately following sibling of the selected element(s).&lt;br&gt;
&lt;code&gt;.closest()&lt;/code&gt;: This method selects the closest ancestor element that matches a specified selector. &lt;/p&gt;

&lt;h2&gt;
  
  
  Why JS is introduced to have first class functions.?
&lt;/h2&gt;

&lt;p&gt;In JavaScript, functions are first-class objects, because they can have properties and methods just like any other object. What distinguishes them from other objects is that functions can be called. In brief, they are Function objects.&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>webdev</category>
      <category>web</category>
      <category>programming</category>
    </item>
    <item>
      <title>HTML FAQ</title>
      <dc:creator>SIYUM</dc:creator>
      <pubDate>Mon, 26 Jun 2023 08:21:22 +0000</pubDate>
      <link>https://dev.to/codercrux/html-faq-463b</link>
      <guid>https://dev.to/codercrux/html-faq-463b</guid>
      <description>&lt;p&gt;Here is some most common FAQ in the HTML&lt;/p&gt;

&lt;h2&gt;
  
  
  What is HTML.?
&lt;/h2&gt;

&lt;p&gt;HTML stands for Hyper Text Markup, Which is commonly used in web pages. It usually provides a strucutre for the web page&lt;/p&gt;

&lt;h2&gt;
  
  
  Describe the meaning of the word Hyper.
&lt;/h2&gt;

&lt;p&gt;"hyper" refers to the ability to go beyond linear text and navigate to different sections or related content within a document or across different documents.&lt;/p&gt;

&lt;h2&gt;
  
  
  Give a brief introduction about HTML history.
&lt;/h2&gt;

&lt;p&gt;In 1980 HTML was introduced, now its version in 5 which is introduced in 2008.&lt;/p&gt;

&lt;h2&gt;
  
  
  What is an IP address.?
&lt;/h2&gt;

&lt;p&gt;IP - Internet Protocol is used to indentify the devices uniquely acoross a same network&lt;/p&gt;

&lt;h2&gt;
  
  
  Why was IPV 6 introduced.?
&lt;/h2&gt;

&lt;p&gt;It was introduced due to limitations with the IPV4. This gives us access to more devices.&lt;/p&gt;

&lt;h2&gt;
  
  
  Explain the process of a web server and why do we need it.?
&lt;/h2&gt;

&lt;p&gt;Usually web server provides us some specific functionality&lt;/p&gt;

&lt;h2&gt;
  
  
  What is a web browser.?
&lt;/h2&gt;

&lt;p&gt;We are using Web Browsers to access a web site that is in the internet&lt;/p&gt;

&lt;h2&gt;
  
  
  How HTTP works and what does it really do.?
&lt;/h2&gt;

&lt;p&gt;HTTP is also known as Hyper Text Transfer Protocol, which acts a request response server that mainly communicate through TCP in Hyper Text Mode&lt;/p&gt;

&lt;h2&gt;
  
  
  Describe the anatomy of a HTML element.
&lt;/h2&gt;


&lt;p&gt; Text (Content) &lt;/p&gt;(Closing Tag)
&lt;h2&gt;
  
  
  What are meta tags and why do we want meta tags in HTML.?
&lt;/h2&gt;

&lt;p&gt;We are using meta tags for special occasions such as defining meta data that will use by third parties. This helpful when SEO, Sharing links ..etc&lt;/p&gt;

&lt;h2&gt;
  
  
  What is a domain name.?
&lt;/h2&gt;

&lt;p&gt;Domain name is a human readable name that represents a web site&lt;/p&gt;

&lt;h2&gt;
  
  
  What is DNS.?
&lt;/h2&gt;

&lt;p&gt;DNS is a decentralised naming system that translate domain name to a IP address&lt;/p&gt;

&lt;h2&gt;
  
  
  What is a URL.? What parts does it contain.?
&lt;/h2&gt;

&lt;p&gt;URL - Uniform Resource Locator is a location string we are used to refer a remote resource.&lt;/p&gt;

&lt;p&gt;Here's an example URL: &lt;a href="https://www.example.com:8080/path/page.html?param1=value1&amp;amp;param2=value2#section1"&gt;https://www.example.com:8080/path/page.html?param1=value1&amp;amp;param2=value2#section1&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;In this example:&lt;/p&gt;

&lt;p&gt;Scheme: "https://"&lt;br&gt;
Host: "&lt;a href="http://www.example.com"&gt;www.example.com&lt;/a&gt;"&lt;br&gt;
Port: "8080"&lt;br&gt;
Path: "/path/page.html"&lt;br&gt;
Query: "?param1=value1&amp;amp;param2=value2"&lt;br&gt;
Fragment: "#section1"&lt;/p&gt;

&lt;h2&gt;
  
  
  What are HTML attributes.?
&lt;/h2&gt;

&lt;p&gt;We are using HTML attributes more to define a tag.&lt;/p&gt;

&lt;h2&gt;
  
  
  What is the usage of HTML &amp;lt;!DOCTYPE html&amp;gt; preamble?
&lt;/h2&gt;

&lt;p&gt;The &amp;lt;!DOCTYPE html&amp;gt; declaration, also known as the HTML5 doctype, is used as a preamble at the beginning of an HTML document to specify the version of HTML being used. It informs the web browser about the HTML standard to which the document adheres.&lt;/p&gt;

</description>
      <category>html</category>
      <category>webdev</category>
      <category>programming</category>
      <category>faq</category>
    </item>
    <item>
      <title>Java Script - Part I</title>
      <dc:creator>SIYUM</dc:creator>
      <pubDate>Fri, 19 May 2023 17:45:51 +0000</pubDate>
      <link>https://dev.to/codercrux/java-script-part-i-11l2</link>
      <guid>https://dev.to/codercrux/java-script-part-i-11l2</guid>
      <description>&lt;p&gt;Java Script, Java Script, Java Script everywhere, If you see here it is JS, If you see there will be JS. So what is really JS? In this article we are going to deep dive into what is JS. This is the part 1 of my JS series.&lt;/p&gt;

&lt;h2&gt;
  
  
  What is JS.
&lt;/h2&gt;

&lt;blockquote&gt;
&lt;p&gt;JavaScript is a scripting or programming language that allows you to implement complex features on web pages — every time a web page does more than just sit there and display static information for you to look at — displaying timely content updates, interactive maps, animated 2D/3D graphics, scrolling video jukeboxes, etc. — you can bet that JavaScript is probably involved. -MDN&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;In the MDN, they are mentioning that JS is a scripting language, which is programming language that employs a high-level construct to interpret and execute one command at a time. We are mostly using JS for our day to day life, even now you are using JS. JS is used to update the content of the we dynamically.&lt;/p&gt;

&lt;h2&gt;
  
  
  History of JS
&lt;/h2&gt;

&lt;p&gt;JavaScript was invented by Brendan Eich in 1995.&lt;/p&gt;

&lt;p&gt;It was developed for Netscape 2, and became the ECMA-262 standard in 1997.&lt;/p&gt;

&lt;p&gt;After Netscape handed JavaScript over to ECMA, the Mozilla foundation continued to develop JavaScript for the Firefox browser. Mozilla's latest version was 1.8.5. (Identical to ES5).&lt;/p&gt;

&lt;p&gt;Internet Explorer (IE4) was the first browser to support ECMA-262 Edition 1 (ES1).&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.w3schools.com/js/js_history.asp"&gt;History in brief&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--j0Jvqoyj--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/vjw66322gluilvbvdps1.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--j0Jvqoyj--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/vjw66322gluilvbvdps1.png" alt="Image description" width="640" height="480"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Fun fact - JS is developed in 10 days 😅&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  How JS is working
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--GQxrz_-4--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/m60vnfdx2l1ik6vkt9vu.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--GQxrz_-4--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/m60vnfdx2l1ik6vkt9vu.png" alt="Image description" width="681" height="416"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Step 1 - Parser&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;In this step we are checking line by line for the syntax errors. It throws a kind of error and stops execution of the code&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Step 2 - AST&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Once Parser is completed it's task, it will create a data structure called AST. (it stands for Abstract Syntax Tree)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Step 3 - Converting to Machine Code&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Once the Abstract Syntax Tree is created by the parser, the JavaScript engine converts the JavaScript code into the machine code (or in the language that machine can understand).&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Step 4 - Machine code&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;When the program written in the JavaScript gets converted in the machine language (or in byte code), the converted code is sent to the system for execution, and finally, that byte code run by the system/engine just like we observe in our first example.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That's end of the today's article. Let's meet next week.&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>programming</category>
      <category>coding</category>
      <category>beginners</category>
    </item>
    <item>
      <title>Software Engineering - FAQ</title>
      <dc:creator>SIYUM</dc:creator>
      <pubDate>Thu, 20 Apr 2023 08:06:48 +0000</pubDate>
      <link>https://dev.to/codercrux/software-engineering-faq-43pc</link>
      <guid>https://dev.to/codercrux/software-engineering-faq-43pc</guid>
      <description>&lt;h2&gt;
  
  
  What is Software Engineering?
&lt;/h2&gt;

&lt;p&gt;Engineering discipline that concerned with every stage of software development and maintenance&lt;/p&gt;

&lt;h2&gt;
  
  
  What is a Software
&lt;/h2&gt;

&lt;p&gt;A set of instructions to perform a specific task&lt;/p&gt;

&lt;h2&gt;
  
  
  Software Developer
&lt;/h2&gt;

&lt;p&gt;A highly skilled profession with coding skills&lt;/p&gt;

&lt;h2&gt;
  
  
  Software Engineer
&lt;/h2&gt;

&lt;p&gt;A highly skilled profession with coding skill mathematical skills&lt;/p&gt;

&lt;h2&gt;
  
  
  Software Engineering Activities
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Specification&lt;/li&gt;
&lt;li&gt;Development&lt;/li&gt;
&lt;li&gt;Validation&lt;/li&gt;
&lt;li&gt;Evolution&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Types of software products
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Generic&lt;/li&gt;
&lt;li&gt;Bespoke&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Software Engineering Diversity
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Entertainment System&lt;/li&gt;
&lt;li&gt;Transactional System&lt;/li&gt;
&lt;li&gt;Simulations&lt;/li&gt;
&lt;li&gt;Embedded Control System&lt;/li&gt;
&lt;li&gt;Data collection system&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Software Engineering team roles
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;FE/BE Engineer
&lt;/li&gt;
&lt;li&gt;QA Engineer&lt;/li&gt;
&lt;li&gt;Tester&lt;/li&gt;
&lt;li&gt;Tech Lead &lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Software Engineering Ethics
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Confidentiality&lt;/li&gt;
&lt;li&gt;Competency&lt;/li&gt;
&lt;li&gt;Intellectual Property rights&lt;/li&gt;
&lt;li&gt;Computer Misuse&lt;/li&gt;
&lt;li&gt;Computer Science VS Software Engineering&lt;/li&gt;
&lt;li&gt;Computer science is focusing on Theories and fundamentals.&lt;/li&gt;
&lt;li&gt;SE is focusing on Practicalities&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  SDLC
&lt;/h2&gt;

&lt;p&gt;SDLC is the process of Planning to implementation and operation. &lt;br&gt;
It consists of documentation&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Planning
Feasibility Study Areas

&lt;ul&gt;
&lt;li&gt;Technical&lt;/li&gt;
&lt;li&gt;Operational&lt;/li&gt;
&lt;li&gt;Legal&lt;/li&gt;
&lt;li&gt;Schedule&lt;/li&gt;
&lt;li&gt;Economical&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;2.Gathering requirements&lt;/p&gt;

&lt;p&gt;3.Design and Prototype&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Architecture&lt;/li&gt;
&lt;li&gt;UI&lt;/li&gt;
&lt;li&gt;Programming&lt;/li&gt;
&lt;li&gt;Platform&lt;/li&gt;
&lt;li&gt;Communication&lt;/li&gt;
&lt;li&gt;Security&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;4.Developing&lt;br&gt;
5.Testing&lt;br&gt;
6.Deployment&lt;br&gt;
7.Maintainance and Operation&lt;/p&gt;

&lt;h2&gt;
  
  
  Uses of SDLC
&lt;/h2&gt;

&lt;p&gt;Assure the quality of the product&lt;br&gt;
  Easy for developers to develop&lt;/p&gt;

&lt;h2&gt;
  
  
  Attributes of a Good Software
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Maintainability&lt;/li&gt;
&lt;li&gt;Efficiency&lt;/li&gt;
&lt;li&gt;Acceptability&lt;/li&gt;
&lt;li&gt;Dependability&lt;/li&gt;
&lt;li&gt;Security&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Types of requirements
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Functional - It is required for the system’s function(They are must for operation) &lt;br&gt;
FaceBook&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;User login for the system(Authentication)&lt;/li&gt;
&lt;li&gt;Adding posts&lt;/li&gt;
&lt;li&gt;Commenting&lt;/li&gt;
&lt;li&gt;Liking the post&lt;/li&gt;
&lt;/ul&gt;


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

&lt;p&gt;Non Functional - It is not required directly, but it is required circulatory.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Allow users to use either mouse or keyboard&lt;/li&gt;
&lt;li&gt;Allow user to change focus&lt;/li&gt;
&lt;li&gt;Providing feedback&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  User requirements and System requirements
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;User Requirements - The requirements that users need, in          natural language&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Functional : Account create, Account Login&lt;/li&gt;
&lt;li&gt;Non Functional : Dark Mode, Loading speed, Ads, Animation&lt;/li&gt;
&lt;/ul&gt;


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

&lt;p&gt;System Requirements - The requirements that need for the system’s function&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Functional : Login data secure, Should be able to register a customer&lt;/li&gt;
&lt;li&gt;Non Functional : Ability to change the mode&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Software Process Model
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Set of related activities to the software development

&lt;ul&gt;
&lt;li&gt;V Model&lt;/li&gt;
&lt;li&gt;Waterfall&lt;/li&gt;
&lt;li&gt;Spiral&lt;/li&gt;
&lt;li&gt;Prototype&lt;/li&gt;
&lt;li&gt;Iteractive&lt;/li&gt;
&lt;li&gt;Incremental&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Process Maturity Approach
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Agile Approach : Focus on iterative development and reduction of overhead&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Process Maturity Approach : Focused on improving process and project management&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
    </item>
    <item>
      <title>Hibernate Part 1</title>
      <dc:creator>SIYUM</dc:creator>
      <pubDate>Thu, 20 Apr 2023 07:41:12 +0000</pubDate>
      <link>https://dev.to/codercrux/hibernate-part-1-1ipp</link>
      <guid>https://dev.to/codercrux/hibernate-part-1-1ipp</guid>
      <description>&lt;p&gt;From the today's post we are going to talk about the ORM and Hibernate.&lt;/p&gt;

&lt;h2&gt;
  
  
  What is ORM?
&lt;/h2&gt;

&lt;p&gt;ORM is Standing for Object Relational Mapping. We are using this to reduce the gap between the Relational Databases and Objects we are creating on the Object Oriented Programming language.&lt;/p&gt;

&lt;h2&gt;
  
  
  What is JPA
&lt;/h2&gt;

&lt;p&gt;JPA Commonly known as Java Persistence API which is Java Specification for ORM Frameworks. It provide high level API for managing relational data, simplifying the task of persisting Java Objects to Database.&lt;/p&gt;

&lt;h2&gt;
  
  
  What is Hibernate
&lt;/h2&gt;

&lt;p&gt;Hibernate is ORM mapping tool for Java Language. It provides a framework for mapping an Object Oriented Domain model to relational database.&lt;/p&gt;

&lt;h2&gt;
  
  
  What is the difference between JPA and Hibernate?
&lt;/h2&gt;

&lt;p&gt;JPA is responsible in managing relational databases in Java Applications, while Hibernate is an ORM tool used for saving the state of the Java Object in the database&lt;/p&gt;

&lt;h2&gt;
  
  
  What is RDBMS?
&lt;/h2&gt;

&lt;p&gt;A program which is used to Create, Update and manage relational databases. Most well known RDBMSs are MySQL, MariaDB, PostgreSQL ...etc&lt;/p&gt;

&lt;h2&gt;
  
  
  What is the difference between RDBMS and Hibernate?
&lt;/h2&gt;

&lt;p&gt;RDBMS is a software that is used to manage relational databases, while Hibernate is an ORM framework that provides layer of abstraction on top of RDBMS. Hibernate is managing data persistence and mapping between Java objects and relational databases. Hibernate is using RDBMS as its underlying data stores, but it provides additional features to make work with databases more conveniently.&lt;/p&gt;

&lt;h2&gt;
  
  
  What are the advantages and disadvantages of Hibernate?
&lt;/h2&gt;

&lt;p&gt;Advantages&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Database independent - We can use any database.&lt;/li&gt;
&lt;li&gt;Open source&lt;/li&gt;
&lt;li&gt;Better than JDBC&lt;/li&gt;
&lt;li&gt;It allows inheritance and polymorphism&lt;/li&gt;
&lt;li&gt;Have caching mechanism&lt;/li&gt;
&lt;li&gt;Developer friendly&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Disadvantages&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Hard to debug&lt;/li&gt;
&lt;li&gt;Have to study lots of API&lt;/li&gt;
&lt;li&gt;Slower than JDBC&lt;/li&gt;
&lt;li&gt;Not suitable for Small projects&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This is the end of part one on the Hibernate Series. Let's continue others FAQ on the other posts &lt;/p&gt;

</description>
      <category>java</category>
      <category>hibernate</category>
      <category>orm</category>
      <category>backend</category>
    </item>
    <item>
      <title>Introducing CodeBoost: The AI-Powered Code Completion Extension for Visual Studio Code</title>
      <dc:creator>SIYUM</dc:creator>
      <pubDate>Mon, 30 Jan 2023 08:43:37 +0000</pubDate>
      <link>https://dev.to/codercrux/introducing-codeboost-the-ai-powered-code-completion-extension-for-visual-studio-code-2c2h</link>
      <guid>https://dev.to/codercrux/introducing-codeboost-the-ai-powered-code-completion-extension-for-visual-studio-code-2c2h</guid>
      <description>&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/I_FpcadnjPY"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;Join waitlist : &lt;a href="https://sago.lk/" rel="noopener noreferrer"&gt;https://sago.lk/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;AutoCode AI, now known as CodeBoost, is a cutting-edge code completion extension for Visual Studio Code that uses artificial intelligence to help developers write code faster and more accurately. With its AI-powered predictions, developers can write code much faster than they would with traditional code completion tools.&lt;/p&gt;

&lt;p&gt;One of the key benefits of CodeBoost is its ability to learn from a developer's coding style and preferences. The more a developer uses the extension, the more accurate its predictions become, leading to even greater efficiency gains. This makes CodeBoost an ideal tool for developers who want to save time and increase their productivity.&lt;/p&gt;

&lt;p&gt;CodeBoost also offers improved accuracy compared to traditional code completion tools. Its advanced AI algorithms ensure that the suggestions it generates are accurate and relevant to the code a developer is writing. This reduces the risk of coding errors and helps developers avoid common mistakes that can cause problems later in the development process.&lt;/p&gt;

&lt;p&gt;In addition to its speed and accuracy, CodeBoost is also highly customizable. Developers can configure the extension to work with their preferred programming language and set their own preferences for how the AI should generate suggestions. This allows developers to get the most out of the tool and ensures that it integrates smoothly into their development process.&lt;/p&gt;

&lt;p&gt;The user interface of CodeBoost is intuitive and user-friendly, making it easy for developers to access the suggestions generated by the AI and insert the right code snippets into their projects with just a few clicks. This means that developers can take advantage of CodeBoost's features without sacrificing the efficiency they've come to expect from traditional code completion tools.&lt;/p&gt;

&lt;p&gt;In conclusion, CodeBoost is an excellent tool for developers who want to boost their productivity and increase their coding efficiency. With its lightning-fast code suggestions, improved accuracy, and customizable options, it's the perfect tool for developers who want to stay ahead of the curve. Whether you're a seasoned programmer or just starting out, CodeBoost is the perfect tool to help you write better code, faster.&lt;/p&gt;

</description>
      <category>welcome</category>
    </item>
    <item>
      <title>CodeBoost - Code Completion Tool (VS Code Extension)</title>
      <dc:creator>SIYUM</dc:creator>
      <pubDate>Sat, 28 Jan 2023 17:50:39 +0000</pubDate>
      <link>https://dev.to/codercrux/codeboost-code-completion-tool-vs-code-extension-j77</link>
      <guid>https://dev.to/codercrux/codeboost-code-completion-tool-vs-code-extension-j77</guid>
      <description>&lt;p&gt;What would it look like if we use the power of the AI to create a extension that auto complete your code based on the current code? &lt;/p&gt;

&lt;p&gt;Exactly like GitHub CoPilot. &lt;/p&gt;

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

&lt;p&gt;The extension offers inline completion items, which means that as soon as you type a specific trigger phrase or hit a specific key, a list of code snippets will appear for you to select from. This makes it easy to find the code you need without having to manually type it out or search through your files.&lt;/p&gt;

&lt;p&gt;Overall, this extension is a powerful tool that can help developers save time and increase their efficiency. Whether you’re a beginner or an experienced coder, this extension is a valuable addition to your development toolkit. So, if you want to boost your productivity, try this extension today!&lt;/p&gt;

&lt;p&gt;This extension will soon publish and will available for public for free. &lt;/p&gt;

&lt;p&gt;Bear with us. &lt;/p&gt;

</description>
      <category>vscode</category>
      <category>webdev</category>
      <category>javascript</category>
      <category>ai</category>
    </item>
    <item>
      <title>Affiliate Tracking System for Networks — Part 2</title>
      <dc:creator>SIYUM</dc:creator>
      <pubDate>Tue, 17 Jan 2023 10:05:18 +0000</pubDate>
      <link>https://dev.to/codercrux/affiliate-tracking-system-for-networks-part-2-hnj</link>
      <guid>https://dev.to/codercrux/affiliate-tracking-system-for-networks-part-2-hnj</guid>
      <description>&lt;p&gt;Quick changes on the plan, In the beginning I found that creative-tim's softUI is eyecatching, but now I want to continue with another theme called Sneat. This is also a powerful theme with good amount of components, and it also free. So I am going to use this for the project.&lt;/p&gt;

&lt;p&gt;I started by creating the dashboard. For now I already created the Admin and Publisher dashboard. &lt;/p&gt;

&lt;p&gt;Take a look 😁&lt;/p&gt;

&lt;p&gt;Admin Dash:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--0Jzt9Odq--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/b8uct09dawjj0yfwtxhh.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--0Jzt9Odq--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/b8uct09dawjj0yfwtxhh.png" alt="Image description" width="800" height="368"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This is basic look, I will add more components when I am going further. &lt;/p&gt;

&lt;p&gt;Publisher Dash:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--fFh1AxDp--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/waffmymyay8vvkit5hi8.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--fFh1AxDp--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/waffmymyay8vvkit5hi8.png" alt="Image description" width="800" height="368"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Thats it for today, Thanks for your time on reading this.&lt;br&gt;
If you have any comments let me know, that is so much for me.&lt;/p&gt;

</description>
      <category>buildingpubli</category>
      <category>webdev</category>
      <category>javascript</category>
      <category>html</category>
    </item>
    <item>
      <title>Affiliate Tracking System for Networks — Part 1</title>
      <dc:creator>SIYUM</dc:creator>
      <pubDate>Mon, 16 Jan 2023 16:25:14 +0000</pubDate>
      <link>https://dev.to/codercrux/affiliate-tracking-system-for-networks-part-1-58f7</link>
      <guid>https://dev.to/codercrux/affiliate-tracking-system-for-networks-part-1-58f7</guid>
      <description>&lt;p&gt;Today I started to building the backend. As technologies I will use NodeJS. I will use the express server and MongoDB as database. &lt;/p&gt;

&lt;p&gt;My first function is like this, after affiliate click the link that is generated on the dashboard, should redirect him to relevant offer. Meantime the data also should stored on the database. For example the User agent, OS, Browser …etc must be stored on the database. This will later used to the generate the reports. And when we redirecting the user to the relevant offer, we should be cared the targeting too. If the user has to live on the specific country in order to access the offer. &lt;/p&gt;

&lt;p&gt;This is the core concept of the Click. I started creating the Data models. The clicks contains following attributes. &lt;/p&gt;

&lt;p&gt;Here is my Click Model:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--IVWyeYO_--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ul3hdkmt4k5kdmi6qyws.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--IVWyeYO_--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ul3hdkmt4k5kdmi6qyws.png" alt="Image description" width="720" height="1191"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;After basic implementation I might add the other data like SubID1, SubID2 also for that. In the app, I created route like this &lt;/p&gt;

&lt;p&gt;/click?a={affiliateID}&amp;amp;o={offerID}. Whenever user clicks on the link if will redirecting to the offer, after registering the relevant data. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--PH2tOzZz--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/r6mq2tp0zf2i71dw17sg.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--PH2tOzZz--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/r6mq2tp0zf2i71dw17sg.png" alt="Image description" width="720" height="393"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;And the code will go on. Thats how I determined the relevent data. And for the click ID I used uuid. This must be a unique on as the postbacks are firing to this. Then it will check on the database for the clickID, then it will save a lead on the database. More on that later.&lt;/p&gt;

&lt;p&gt;Thats update on the backend, for the front end I might use the bootstrap as I have only few knowledge on the React or any other. So I am comfortable with bootstrap. I will use the handlebars as the view engine. &lt;/p&gt;

&lt;p&gt;And I choose a template, I found an eye catching one from creative tim. I really need that. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--NuDCOE0w--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ygbf2o30y4uzece3cteo.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--NuDCOE0w--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ygbf2o30y4uzece3cteo.png" alt="Image description" width="720" height="540"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I really like that design and I am going to use that.&lt;/p&gt;

&lt;p&gt;Thats all updates about the current project. I will update more on ASAP. If you have any suggestion please let me know. Thanks for your time on reading this.&lt;/p&gt;

</description>
      <category>buldingpublic</category>
      <category>webdev</category>
      <category>javascript</category>
      <category>beginners</category>
    </item>
    <item>
      <title>I am building publicly</title>
      <dc:creator>SIYUM</dc:creator>
      <pubDate>Thu, 12 Jan 2023 06:36:28 +0000</pubDate>
      <link>https://dev.to/codercrux/i-am-building-publicly-3bgi</link>
      <guid>https://dev.to/codercrux/i-am-building-publicly-3bgi</guid>
      <description>&lt;p&gt;As an affiliate marketer, keeping track of your campaigns' performance can be a daunting task. CPA (cost per action) marketing, in particular, requires a precise and efficient tracking system to optimize efforts and maximize ROI. That's why I am excited to announce the development of a new tracking software for affiliate networks, specifically designed for CPA marketing.&lt;/p&gt;

&lt;p&gt;This software will make it easy for businesses and marketers to track the performance of their CPA campaigns in real-time, providing them with the necessary insights to optimize their efforts and achieve their desired results. Whether you're a small business starting with affiliate marketing or an enterprise scaling your efforts, this software will cater to your needs and provide you with the features and functionalities you need to succeed.&lt;/p&gt;

&lt;p&gt;One of the key features of this software is its ability to integrate with a wide range of platforms and tools. Whether you're using a popular affiliate network or a custom tracking solution, the software will work seamlessly with your existing setup. This will help you keep all your data in one place, making it easy to analyze and act on the insights you gain.&lt;/p&gt;

&lt;p&gt;I am also committed to transparently documenting the progress of this software regularly. You will be able to see the progress of the development and the features that I am working on, which will help you understand what to expect and when to expect it.&lt;/p&gt;

&lt;p&gt;Furthermore, I value the feedback of the community, and I will be updating them weekly about the progress of the software. Your feedback is important to me, and I encourage everyone to share their thoughts and ideas as I continue to develop and improve the software.&lt;/p&gt;

&lt;p&gt;If you're looking for a powerful and easy-to-use tracking software for your affiliate network that can help you optimize your CPA campaigns and drive more sales, be sure to keep an eye out for my upcoming release. I look forward to helping you take your affiliate marketing efforts to the next level!&lt;/p&gt;

&lt;h2&gt;
  
  
  Back Story
&lt;/h2&gt;

&lt;p&gt;I recently entered to programming, and I am so much interested in Affiliate Marketing and how it working, So I want to give a test to my newly gained skills, So I am challenging myself to create a app for Affiliate marking networks&lt;/p&gt;

&lt;h2&gt;
  
  
  Building In Public
&lt;/h2&gt;

&lt;p&gt;This will not only keep me accountable, but will allow me to get feedback on the design and maybe even help for fellow makers.&lt;/p&gt;

&lt;p&gt;I will post my weekly progress here, but I will share more frequent updates on my twitter &lt;a class="mentioned-user" href="https://dev.to/codercrux"&gt;@codercrux&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;I will be building this with NodeJS BackEnd and HTML Frontend using Handlebars&lt;/p&gt;

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

</description>
      <category>buldingpublic</category>
      <category>webdev</category>
      <category>beginners</category>
    </item>
  </channel>
</rss>
