<?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: Eldrige</title>
    <description>The latest articles on DEV Community by Eldrige (@eldrige).</description>
    <link>https://dev.to/eldrige</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%2F387882%2F19f7d4e6-61b7-4765-ac53-d7958d09cad4.jpeg</url>
      <title>DEV Community: Eldrige</title>
      <link>https://dev.to/eldrige</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/eldrige"/>
    <language>en</language>
    <item>
      <title>Installing MongoDB On Windows 10</title>
      <dc:creator>Eldrige</dc:creator>
      <pubDate>Wed, 16 Dec 2020 23:27:22 +0000</pubDate>
      <link>https://dev.to/eldrige/installing-mongodb-on-windows-10-257e</link>
      <guid>https://dev.to/eldrige/installing-mongodb-on-windows-10-257e</guid>
      <description>&lt;h1&gt;Installing and Setting Up MongoDB on Windows 10&lt;/h1&gt;

&lt;p&gt;MongoDB is a general-purpose, document-based, distributed database built for modern applications.&lt;br&gt;
It is very popular since many developers think in terms of objects, and databases in MongoDB are just regular objects.&lt;br&gt;
In this tutorial, we will discover how to install and setup the MongoDB shell, on a windows 10 computer.&lt;/p&gt;

&lt;p&gt;Let’s Start&lt;/p&gt;

&lt;h3&gt;Step One&lt;/h3&gt;

&lt;p&gt;👉Head over to  &lt;a href="www.mongodb.com"&gt;mongodb.com&lt;/a&gt;&lt;br&gt;
👉 Head to software, then community server. A small dropdown will appear, in the dropdown, select download community version. This will then direct you to the download page.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--oxbnI57V--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/muuqb09quk2zk05kppm2.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--oxbnI57V--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/muuqb09quk2zk05kppm2.png" alt="Alt Text" width="880" height="469"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You can interact with MongoDB in multiple ways, The shell implicates manipulation of your database through the terminal.&lt;br&gt;
Other options involve using the cloud ( MongoDB Atlas) and also using a graphic user interface ( MongoDB Compass).&lt;/p&gt;

&lt;h3&gt;Step Two &lt;/h3&gt;

&lt;p&gt;👉 Once the download completes. Head over to your download folder and double click it on the downloaded file, to kickstart your installation process.&lt;br&gt;
The installation is classic. The option we will select is the complete setup. So as to ship all basic features, Then, we can simply leave out the defaults.&lt;/p&gt;

&lt;p&gt;👉As soon as the installation is complete. Head over to your applications in the settings of your windows computer. You will see Mongo shell now listed as one of your applications.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--HhTZ8mOW--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/3kyupq10uya3o6fua9n3.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--HhTZ8mOW--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/3kyupq10uya3o6fua9n3.png" alt="Alt Text" width="880" height="469"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;🎉 Great!!! You now have the Mongo shell on your pc.&lt;/p&gt;

&lt;h3&gt;Step 3&lt;/h3&gt;

&lt;p&gt;In order to make MongoDB accessible everywhere, we need to add it to our environment variables.&lt;br&gt;
👉 On the start menu, type env. You will see a popup, containing edit system environment variables. Click on edit environment variables.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s---5P15shd--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/tetpumwysvonof2zi7gu.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s---5P15shd--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/tetpumwysvonof2zi7gu.png" alt="Alt Text" width="422" height="486"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Now click on it. You will see another menu, now click on environment variables. You will now click on the path system variable and add the entry to your mongo bin directory.&lt;br&gt;
The directory looks like this C:\program files\mongo\server\4.2\bin&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--H6bzkdUL--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/2q5gkv5jmhbxnwsn2f74.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--H6bzkdUL--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/2q5gkv5jmhbxnwsn2f74.png" alt="Alt Text" width="536" height="506"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;👉 Now head to your terminal and type mongo. You will be presented with the following screen.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--ilCYzEbo--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/da45dd6ypn0ts5o9ydh6.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--ilCYzEbo--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/da45dd6ypn0ts5o9ydh6.png" alt="Alt Text" width="880" height="423"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;🎉🍾🎊Congratulations!!!! You have successfully installed MongoDB shell on your computer.&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>database</category>
      <category>javascript</category>
    </item>
    <item>
      <title>Deploying your Angular App to Firebase</title>
      <dc:creator>Eldrige</dc:creator>
      <pubDate>Thu, 10 Dec 2020 19:20:02 +0000</pubDate>
      <link>https://dev.to/eldrige/deploying-your-angular-app-to-firebase-1lef</link>
      <guid>https://dev.to/eldrige/deploying-your-angular-app-to-firebase-1lef</guid>
      <description>&lt;p&gt;So, you have finished building your awesome project, and you want to showcase it to the world. How do you that? There are many options, but using firebase-hosting is one of the easiest and best options.&lt;br&gt;
In this post, we will learn how to deploy our application to firebase.&lt;/p&gt;

&lt;p&gt;Let's go &lt;br&gt;
👉 Head over to your firebase console &lt;a href="firebase.console.com"&gt;console.firebase&lt;/a&gt;. &lt;br&gt;
Create a new project. If you do not have a firebase account, create one first, by using this link &lt;a href="firebase.google.com"&gt;firebase&lt;/a&gt;&lt;a&gt;&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Once you have created your project, select the empty tag icon, to embed it into a web application.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--KIGMlpSb--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/4pw77it7poaiqlz6eipm.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--KIGMlpSb--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/4pw77it7poaiqlz6eipm.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Click the settings icon, then look for the SDK snippets of your project&lt;/p&gt;

&lt;p&gt;Upon clicking it, you will be able to find the configuration files, you need to import to your angular project. Copy all the details found in the firebaseConfig object.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--ojDSm8ru--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/nbl882fpfvjj89t2wwcp.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--ojDSm8ru--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/nbl882fpfvjj89t2wwcp.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;👉 Head to your angular application, open the environment.prod.ts and the environment.ts files. Inside of them, you will add the configs you just obtained from your Firebase project, as a key called firebase, and the value being the firebase SDK snippet of your project&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--tvsyieLX--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/ij9dvcw4vzvpj09dvc3w.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--tvsyieLX--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/ij9dvcw4vzvpj09dvc3w.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;br&gt;
Bravo. 👌&lt;br&gt;
👉 Now we need to install some packages to interact with firebase.&lt;br&gt;
So navigate to your project directory using the command-line and type the following;&lt;/p&gt;

&lt;h4&gt;&lt;i&gt;npm install firebase @angular/firebase&lt;/i&gt;&lt;/h4&gt;

&lt;p&gt;Tip: If you are using vs-code, you can hit ctrl + ` to toggle up your integrated terminal.&lt;/p&gt;

&lt;p&gt;👉 Head over to your app.module.ts, and bring in AngularFirebase module from @angular/firebase, equally import your environment.ts file.&lt;br&gt;
Now add the following to your imports array&lt;/p&gt;

&lt;h4&gt;&lt;i&gt;AngularFireModule.initializeApp(environment.firebase)&lt;/i&gt;&lt;/h4&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--zml3G67z--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/sg1nzrd2poasfp7ioj5f.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--zml3G67z--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/sg1nzrd2poasfp7ioj5f.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;👉 Open your terminal and install firebase-tools, globally&lt;br&gt;
 &lt;/p&gt;
&lt;h4&gt;&lt;i&gt;npm install firebase-tools&lt;/i&gt;&lt;/h4&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--3nk9aD6W--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/50uyho8be2g05czhh5dk.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--3nk9aD6W--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/50uyho8be2g05czhh5dk.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;👉 Once it's done installing, type firebase login. This will display a pop-up on your browser, where you would have to input your firebase credentials.&lt;/p&gt;

&lt;p&gt;👉 Once done, you can navigate back to your project folder, and enter &lt;/p&gt;
&lt;h4&gt;&lt;i&gt;firebase init hosting&lt;/i&gt;&lt;/h4&gt; in your terminal. &lt;br&gt;
This will initialize your app to use firebase hosting and you will have to select the last project you created in firebase.

&lt;p&gt;👉 After this, you will be asked the following question “What do you want to use as your public directory?”.  You must include your application’s name in this field: “dist/YourProjectName.” Which is going to be produced by using ng build --prod. &lt;br&gt;
👉 Next, specify “yes” to configuring as a single-page application and “no” to overwriting your existing index.html (if applicable).&lt;/p&gt;

&lt;p&gt;👉 Now, we can build our application for production.  Just type the following to your terminal &lt;/p&gt;
&lt;h4&gt;&lt;i&gt;ng build --prod&lt;/i&gt;&lt;/h4&gt; . It is going to create our static files needed for deployment.

&lt;p&gt;👉 Finally, enter firebase deploy. The command will deploy your static files to firebase.Once it has finished uploading your content to the internet, it will show you your app's Url.&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--9UbdVVvT--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/o3995captzy067kokn3g.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--9UbdVVvT--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/o3995captzy067kokn3g.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;br&gt;
👉 Now open your browser, and navigate to that link.&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--70S8Txmp--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/ajbudidbiy6svx044mom.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--70S8Txmp--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/ajbudidbiy6svx044mom.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;🎊🍾🎉Congrats, you just deployed your application to your firebase🔥🔥.&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>angular</category>
      <category>firebase</category>
      <category>typescript</category>
    </item>
    <item>
      <title>Angular Directives in 5 minutes</title>
      <dc:creator>Eldrige</dc:creator>
      <pubDate>Tue, 24 Nov 2020 10:33:39 +0000</pubDate>
      <link>https://dev.to/eldrige/angular-directives-in-5-minutes-3ja2</link>
      <guid>https://dev.to/eldrige/angular-directives-in-5-minutes-3ja2</guid>
      <description>&lt;h1&gt;
  
  
  So what are directives?
&lt;/h1&gt;

&lt;p&gt;These are attributes added to our DOM elements, that make them dynamic. They supercharge  ⚡ our DOM by adding extra functionality.&lt;/p&gt;

&lt;p&gt;In angular there are two types of directives. Structural and Attribute directives.&lt;/p&gt;

&lt;p&gt;Structural directives, change the DOM layout, by adding or removing content. Some examples include *ngIf and *ngFor.&lt;br&gt;
On the other hand attribute directives, change the behavior of an element. Some examples include *ngClass and *ngStyle.&lt;/p&gt;

&lt;p&gt;In this post, we will be looking at the most commonly used directives.&lt;/p&gt;

&lt;h3&gt;
  
  
  *ngIf
&lt;/h3&gt;

&lt;p&gt;This directive conditionally shows content based on an expression's value. &lt;/p&gt;

&lt;p&gt;Syntax:&lt;br&gt;
 *ngIf="expression"&lt;/p&gt;

&lt;p&gt;Example:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--XmCOUs6K--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/6pt22303spifz1g78q7g.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--XmCOUs6K--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/6pt22303spifz1g78q7g.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If our expression results in a truthy value, our HTML tag will be rendered. In this case our expression is false, so the p tag will not be rendered&lt;/p&gt;

&lt;h3&gt;
  
  
  *ngFor
&lt;/h3&gt;

&lt;p&gt;This directive repeats a given DOM element for each element found in an array.&lt;/p&gt;

&lt;p&gt;Syntax:&lt;br&gt;
*ngFor="let item of items"&lt;/p&gt;

&lt;p&gt;Example:&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--z70qEPLX--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/102thpeefencqiiwurrr.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--z70qEPLX--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/102thpeefencqiiwurrr.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Here our array is the fruits array, and we reference each item in the array as fruit. Then we display it in our component using interpolation.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--8mK_9QVF--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/wli6cj7bei7g6i9xl50c.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--8mK_9QVF--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/wli6cj7bei7g6i9xl50c.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  *ngStyle
&lt;/h3&gt;

&lt;p&gt;This directive allows us to add styles dynamically to our tags.&lt;br&gt;
Syntax:&lt;br&gt;
In its simplest form, it is just property binding&lt;br&gt;
We bind the background color of this div to be red&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--h4YrfIVB--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/028o8vxcas09t36935y7.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--h4YrfIVB--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/028o8vxcas09t36935y7.png" alt="ngStyle"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Plain syntax:&lt;br&gt;
[ngStyle]="{style: expression}"&lt;/p&gt;

&lt;p&gt;In this case, we bind it directly to a property in our logic. So our div will be red.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Xe2lvkMN--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/2ryvf49y88ok7zpsknqt.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Xe2lvkMN--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/2ryvf49y88ok7zpsknqt.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  *ngClass
&lt;/h3&gt;

&lt;p&gt;This directive allows us to set classes dynamically to our elements.&lt;br&gt;
Syntax:&lt;br&gt;
[ngClass]="{cssClass: expression}"&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--NFE0In6K--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/qtlaoa9mzmru4462h3mc.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--NFE0In6K--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/qtlaoa9mzmru4462h3mc.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Result:&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--m5yVNdmR--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/s5unj9z7rt9e0x46x8sd.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--m5yVNdmR--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/s5unj9z7rt9e0x46x8sd.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Directives are powerful, when it comes to handling logic, there is a lot more to directives. We can even create our own custom directives. &lt;/p&gt;

</description>
      <category>webdev</category>
      <category>angular</category>
      <category>html</category>
      <category>typescript</category>
    </item>
    <item>
      <title>Building Forms The Angular Way ( Part 2 )</title>
      <dc:creator>Eldrige</dc:creator>
      <pubDate>Sat, 14 Nov 2020 10:58:48 +0000</pubDate>
      <link>https://dev.to/eldrige/building-forms-the-angular-way-part-2-4j81</link>
      <guid>https://dev.to/eldrige/building-forms-the-angular-way-part-2-4j81</guid>
      <description>&lt;p&gt;In the previous post, we discovered the template-driven approach for building forms. Here is a link to the post: &lt;a href="https://dev.to/eldrige/building-forms-the-angular-way-1j7k"&gt;Building Forms The Angular Way&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;In this tutorial, we will discover how to build forms using the reactive approach.&lt;br&gt;
In contrast to template-driven forms, reactive forms are entirely controlled through the logic (ts component). Also, they are more robust and testable.&lt;/p&gt;

&lt;h2&gt;
  
  
  👩👨‍🍳Recipe
&lt;/h2&gt;

&lt;p&gt;👉 Head to app.module, and import the ReactiveForms module from angular/forms, and equally add it to the imports array.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--qnVoYEWh--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/e6acht44vgu7wy3nlf61.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--qnVoYEWh--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/e6acht44vgu7wy3nlf61.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;br&gt;
Doing this gives us access to the following directives, formGroup,&lt;br&gt;
formControlName, formControl, formBuilder and formArray.&lt;/p&gt;

&lt;p&gt;Quick recap: form-controls represent a single input, and a formGroup is a collection of formControls.&lt;/p&gt;

&lt;p&gt;The FormGroup object has the following properties errors, dirty, valid, value. The errors hold the validation errors, the touch value is boolean indicating if an input has received focused, the dirty property is equally boolean, it indicates if an input has been filled.&lt;/p&gt;

&lt;p&gt;👉 Head to your logic and  import formGroup, formControl from angular/forms&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--ZAfK8F-N--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/39n67x7p881nl8ljwt1n.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--ZAfK8F-N--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/39n67x7p881nl8ljwt1n.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;In our logic, we will create a studentForm property to keep track of students. Create it, then define its type to be of type formGroup.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--GBMf7hgP--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/4to4fjpri0tao28huxl9.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--GBMf7hgP--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/4to4fjpri0tao28huxl9.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Then in the ngOnInit method, we will initialize it to a new FormGroup instance, and define its form controls. That is the email and name.&lt;/p&gt;

&lt;p&gt;👉 Head to your view, and add the following code.&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--d8xAu-Fa--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/cz8duu7dnc9r9ucyf2ps.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--d8xAu-Fa--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/cz8duu7dnc9r9ucyf2ps.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;In the template, we use property binding to bind the form, to our studentForm property.&lt;/p&gt;

&lt;p&gt;For each input, we attribute the formControlName directive, which we assign to the form control defined in our logic.&lt;/p&gt;

&lt;p&gt;👉 Head to your browser. Initially, you should see something like this&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--tTOby_tL--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/avbxmlrz0av66vu9lq6w.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--tTOby_tL--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/avbxmlrz0av66vu9lq6w.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Now, when we modify our form, we realize the formGroup properties change.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--EWfLNVjD--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/vloobimeo4j2u45pkx5z.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--EWfLNVjD--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/vloobimeo4j2u45pkx5z.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;🎊🎉🍾Congratulations. You have just built a form using the reactive approach.&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>angular</category>
      <category>typescript</category>
      <category>html</category>
    </item>
    <item>
      <title>Angular Routing Crash Course</title>
      <dc:creator>Eldrige</dc:creator>
      <pubDate>Thu, 05 Nov 2020 13:23:24 +0000</pubDate>
      <link>https://dev.to/eldrige/angular-routing-crash-course-4mb</link>
      <guid>https://dev.to/eldrige/angular-routing-crash-course-4mb</guid>
      <description>&lt;h2&gt;
  
  
  So what is routing?
&lt;/h2&gt;

&lt;p&gt;In web development routing, refers to splitting the application into different areas based on the URL, that is derived from the current browser.&lt;/p&gt;

&lt;h3&gt;
  
  
  Why do you need routing?
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;To separate the app into different areas&lt;/li&gt;
&lt;li&gt;To keep our app in a clean state&lt;/li&gt;
&lt;li&gt;Protect areas of our app, based on certain rules&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;👩🍳 Recipe&lt;br&gt;
1) Generate a new angular application using the CLI, passing the --routing flag.&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fkxdrymadiln6791h9mwe.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fkxdrymadiln6791h9mwe.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;br&gt;
 The --routing flag sets up our routing module, and equally imports it to the app.module.&lt;br&gt;
2) Open your newly created app, and navigate to app.component.html. Add the bottom of the file, you should see the router-outlet directive.&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2F32vh50k3aob1odl3bow7.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2F32vh50k3aob1odl3bow7.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;br&gt;
 The router-outled directive displays our routed components&lt;br&gt;
On top of the router-outlet directive, we will add a bootstrap navbar, to ease navigation. You can get it here &lt;br&gt;
&lt;a href="https://getbootstrap.com/docs/4.5/components/navbar/" rel="noopener noreferrer"&gt;https://getbootstrap.com/docs/4.5/components/navbar/&lt;/a&gt;&lt;br&gt;
3) Now go ahead and generate the following components using the CLI, home, about us, contact, not-found&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fab4vqvawh477virk5aum.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fab4vqvawh477virk5aum.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;br&gt;
4) Go to the app-routing.module file, inside it, you will find a routes array. This array will contain our route definitions&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%2Fi%2Fxlvvm56rmzz686gw2mq8.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fxlvvm56rmzz686gw2mq8.png" alt="app-routing.module.ts - house-renting-app - Visual Studio Code 11_5_2020 12_49_20 AM"&gt;&lt;/a&gt;&lt;br&gt;
5) Insert the following code into the routes array, and also import each respective component.&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%2Fi%2Fkt50ugv8z98vuzuwyx8w.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fkt50ugv8z98vuzuwyx8w.png" alt="app-routing.module.ts - house-renting-app - Visual Studio Code 11_5_2020 9_21_43 AM"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The route array basically contains objects.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The path defines what text should be added to the URL.&lt;/li&gt;
&lt;li&gt;The component defines which component should be displayed for that particular route.&lt;/li&gt;
&lt;li&gt;The path containing the empty string,'' defines the route, as the default route.&lt;/li&gt;
&lt;li&gt;The path containing '**', serves as a wildcard route, which is used to redirect the user to a defined component if the current URL is invalid.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;6) Now, in the app.component.html we will remove the href attribute and replace it with the routerLink directive. We now map the routerLink directive to our defined paths.&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%2Fi%2Fnwewpl6sbgoshy5szfjw.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fnwewpl6sbgoshy5szfjw.png" alt="app.component.html - house-renting-app - Visual Studio Code 11_5_2020 11_29_05 AM"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Now, we can serve our application and test our various links.&lt;br&gt;
Initially, we get routed to the HomeComponent, because we defined it, as the default path.&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%2Fi%2F3gb18u1o3qrdybz2j8ga.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2F3gb18u1o3qrdybz2j8ga.png" alt="HouseRentingApp - Mozilla Firefox 11_5_2020 2_10_50 PM"&gt;&lt;/a&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%2Fi%2Fw4lic7pscd7uyt7mwlhr.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fw4lic7pscd7uyt7mwlhr.png" alt="HouseRentingApp - Mozilla Firefox 11_5_2020 2_11_07 PM"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;🎊🎉🍾Congratulations !!! You just learned the basics of routing in Angular. There is much more to routing in angular.&lt;/p&gt;

</description>
      <category>angular</category>
      <category>webdev</category>
      <category>typescript</category>
      <category>javascript</category>
    </item>
    <item>
      <title>Building Forms The Angular Way</title>
      <dc:creator>Eldrige</dc:creator>
      <pubDate>Wed, 28 Oct 2020 00:16:09 +0000</pubDate>
      <link>https://dev.to/eldrige/building-forms-the-angular-way-1j7k</link>
      <guid>https://dev.to/eldrige/building-forms-the-angular-way-1j7k</guid>
      <description>&lt;p&gt;Angular is a TypeScript-based open-source web application framework led by the Angular Team at Google and by a community of individuals and corporations.&lt;/p&gt;

&lt;p&gt;Angular has two-main approaches to building forms. The Template Driven approach and the Reactive Form approach.&lt;/p&gt;

&lt;p&gt;In this tutorial, we will be learning the template driven approach.&lt;/p&gt;

&lt;h1&gt;
  
  
  Recipe👨🍳
&lt;/h1&gt;

&lt;p&gt;👉Import FormsModule into your main app.module component, and add it to the imports array.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--hwksWCPQ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/nz9k9i5xuwp5ewtmprzo.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--hwksWCPQ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/nz9k9i5xuwp5ewtmprzo.png" alt="appmodule"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This will give us access to the following directives ngForm,ngModel and ngSubmit.&lt;/p&gt;

&lt;p&gt;👉 Head over to your view&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;We will bind the ngSubmit event to a method in our logic.&lt;/li&gt;
&lt;li&gt;Equally, we will create a template variable (#loginForm) and bind it to the ngForm directive, so as to hold a reference our form &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--xBHv9nJy--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/fer2uztin8aofy5avnmk.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--xBHv9nJy--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/fer2uztin8aofy5avnmk.png" alt="Screenshot 2020-10-25 203154"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;-Behind the scenes, whenever a form element is created angular attributes the ngGroup directive to it automatically&lt;br&gt;
-ngGroup is just an object that represents a collection of form-controls.&lt;br&gt;
 -Form controls are the smallest unit of a form, they hold the form values and the validation information.&lt;/p&gt;

&lt;p&gt;-In your input make sure you gave a name property, and attach the ngModel directive to it&lt;br&gt;
Attaching the ngModel directive gives us one-way binding, and attributes a form-control to our input&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--VbyCICz2--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/s3vva87ooy74iug949uh.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--VbyCICz2--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/s3vva87ooy74iug949uh.png" alt="ngModel"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;-Finally, add a button with the type submit&lt;/p&gt;

&lt;p&gt;👉 Head over to your logic and add the method, that will log the values entered into the form&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Cu9u3SaS--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/qr1ksf4cai2zrjzsnxof.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Cu9u3SaS--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/qr1ksf4cai2zrjzsnxof.png" alt="TDD logic"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Now, Open your form in the browser, and fill in the form.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Lzb5swbU--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/9n5ipp68lkvpq5274jht.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Lzb5swbU--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/9n5ipp68lkvpq5274jht.png" alt="Browser"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;After submitting the form, check your console. You will see the values you just submitted&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--FjM67Gwo--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/sftz211xjf3imv7chl0p.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--FjM67Gwo--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/sftz211xjf3imv7chl0p.png" alt="output"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Congratulations!!!🎉🍾㊗🎊 You just created your first angular form. In the upcoming tutorials, we will discover how to create forms, using the reactive approach.&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>angular</category>
      <category>html</category>
      <category>typescript</category>
    </item>
    <item>
      <title>Downloading and Installing MySQL workbench (Community Version) on Windows 10</title>
      <dc:creator>Eldrige</dc:creator>
      <pubDate>Tue, 27 Oct 2020 08:14:35 +0000</pubDate>
      <link>https://dev.to/eldrige/downloading-and-installing-mysql-workbench-community-version-on-windows-10-2cmg</link>
      <guid>https://dev.to/eldrige/downloading-and-installing-mysql-workbench-community-version-on-windows-10-2cmg</guid>
      <description>&lt;p&gt;✔MySQL is an open-source relational database management system. SQL simply means structured query language. &lt;/p&gt;

&lt;p&gt;✔MySQL Workbench is a visual database design tool that integrates SQL development, administration, database design, creation and maintenance into a single integrated development environment for the MYSQL database system.&lt;br&gt;
-Head over to &lt;a href="https://dev.mysql.com/downloads/workbench/" rel="noopener noreferrer"&gt;https://dev.mysql.com/downloads/workbench/&lt;/a&gt;, to download MySQL workbench.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://dev-to-uploads.s3.amazonaws.com/i/nzmwk1m70cpyc51itqvf.png" rel="noopener noreferrer"&gt;msql&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;✔Click on the Go to Download Page button. This will redirect you to the signup/ login page!&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%2Fi%2Fr8udi4h4hy6pixh5ys6s.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fr8udi4h4hy6pixh5ys6s.png" alt="msql2"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;✔You can now choose to sign up or login if you already have a MySQL account. For this tutorial, we will skip authentication and click on No thanks, just start my download. This will get our download started&lt;/p&gt;

&lt;p&gt;✔As soon as the download completes, navigate to your download folder and double-click to begin the installation process.&lt;/p&gt;

&lt;p&gt;✔Upon clicking on the download, you will be presented with the MySQL setup screen&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%2Fi%2Fhemxaje9eno7z4l6gnzo.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fhemxaje9eno7z4l6gnzo.png" alt="ugve"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;✔Click the next button: You can change your installation path, but it is recommended you leave the default directory, to your program files directory.&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%2Fi%2Fneyfda2pthyawyurou5h.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fneyfda2pthyawyurou5h.png" alt="path"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;✔Next: Choose the setup type. The type we will choose is the complete setup version.&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%2Fi%2Fw8zbgdoexnimtp7mhn2d.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fw8zbgdoexnimtp7mhn2d.png" alt="complete"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;✔Next: Now click on the install button. It will take some time to install.&lt;br&gt;
As soon as it completes, click the Finish button and MySQL workbench will launch&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%2Fi%2F6chfui4ai9hbcpkmzv2t.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2F6chfui4ai9hbcpkmzv2t.png" alt="workbench"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Congratulations!!! 🎉🎊 You have successfully downloaded and installed MySQL workbench.&lt;/p&gt;

</description>
      <category>database</category>
      <category>webdev</category>
    </item>
    <item>
      <title>Downloading and Installing XAMPP on Windows 10</title>
      <dc:creator>Eldrige</dc:creator>
      <pubDate>Sat, 24 Oct 2020 14:06:19 +0000</pubDate>
      <link>https://dev.to/eldrige/downloading-and-installing-xampp-on-windows-10-6ji</link>
      <guid>https://dev.to/eldrige/downloading-and-installing-xampp-on-windows-10-6ji</guid>
      <description>&lt;p&gt;XAMPP is a free and open-source cross-platform web server solution stack package developed by Apache Friends, consisting mainly of the Apache HTTP Server, Maria DB database, and interprets scripts written in the PHP and PERL programming language.&lt;/p&gt;

&lt;p&gt;Head over to &lt;a href="https://www.apachefriends.org/download.html" rel="noopener noreferrer"&gt;https://www.apachefriends.org/download.html&lt;/a&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%2Fi%2Frl36ub53vq0lpasexe2i.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Frl36ub53vq0lpasexe2i.png" alt="Download XAMPP - Mozilla Firefox 10_24_2020 10_16_35 AM"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;👉Download the latest version (the one found at the bottom). At the time of this writing, the latest version is 7.4.11 by clicking on the Download (64 bit) button.&lt;/p&gt;

&lt;p&gt;👉There you go, now wait for the download to complete. As soon as it completes, navigate to your download folder, then double click on the XAMPP download to start the installation.&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%2Fi%2Ftne3u1lryf077szk3h6r.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Ftne3u1lryf077szk3h6r.png" alt="Downloads 10_24_2020 10_19_01 AM"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;👉Click on the Next button&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fkbrx75z6szpndcpm5qx9.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fkbrx75z6szpndcpm5qx9.png" alt="xampp"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;👉You can select the components you wish to install and clear the components you do not want to install. It is recommended to leave the defaults and proceed to the next button.&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%2Fi%2Fp92n9zhg8lnr69lvm1le.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fp92n9zhg8lnr69lvm1le.png" alt="xampp 2"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;👉Choose an installation path, avoid choosing c:/program-files, because it requires User Access Control will restrict some features of XAMPP.&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%2Fi%2Fu0tq2kpeyt64sxvditl9.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fu0tq2kpeyt64sxvditl9.png" alt="xampp 3"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;👉On the next screen, you should see Bitnami. Bitnami is open-source software that enables you to add plugins to your existing XAMPP application.&lt;br&gt;
👉Click on the Next button: The installation proper should start&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%2Fi%2F357j2tcoc2lz3n7kxlc3.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2F357j2tcoc2lz3n7kxlc3.png" alt="xampp 5"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;👉This may take some time to complete, you may also see a popup from Windows firewall, asking you for permission to allow it to communicate on private networks. Just click to allow access.&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%2Fi%2Fc7lkautsskdq9p0f4pms.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fc7lkautsskdq9p0f4pms.png" alt="xampp 6"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;👉Click on finish to exit the setup and launch the XAMPP control panel.&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%2Fi%2Fq8bz19cmgsrl4l0ujq91.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fq8bz19cmgsrl4l0ujq91.png" alt="xmapp 7"&gt;&lt;/a&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%2Fi%2Fip924n6723h3a3s7frdh.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fip924n6723h3a3s7frdh.png" alt="xampp 8"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Congratulations!!! 🎉🎊You have successfully downloaded and installed XAMPP.&lt;/p&gt;

</description>
    </item>
  </channel>
</rss>
