<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[yvankov]]></title><description><![CDATA[for school purposes]]></description><link>https://managing-files-and-folder-on-pa.hashnode.dev</link><generator>RSS for Node</generator><lastBuildDate>Thu, 18 Jun 2026 13:12:21 GMT</lastBuildDate><atom:link href="https://managing-files-and-folder-on-pa.hashnode.dev/rss.xml" rel="self" type="application/rss+xml"/><language><![CDATA[en]]></language><ttl>60</ttl><item><title><![CDATA[Angular Components]]></title><description><![CDATA[I made 40 components for this exercise using HTML and TYPESCRIPT, along with 10 components. These variously oriented parts will aid in your comprehension of the systems' logic. For a reviewer to familiarize themselves with the principles, I have incl...]]></description><link>https://managing-files-and-folder-on-pa.hashnode.dev/angular-components</link><guid isPermaLink="true">https://managing-files-and-folder-on-pa.hashnode.dev/angular-components</guid><dc:creator><![CDATA[Jovy Gimeno Idjao]]></dc:creator><pubDate>Mon, 30 Sep 2024 07:37:12 GMT</pubDate><content:encoded><![CDATA[<p>I made 40 components for this exercise using HTML and TYPESCRIPT, along with 10 components. These variously oriented parts will aid in your comprehension of the systems' logic. For a reviewer to familiarize themselves with the principles, I have included them.</p>
<p><strong>50 Components with different functions</strong></p>
<ol>
<li><strong>Component name: displayhelloworld</strong><br /> Display the text "Hello World" on the screen using a variable from the TypeScript file.</li>
</ol>
<pre><code class="lang-typescript"><span class="hljs-keyword">import</span> { Component } <span class="hljs-keyword">from</span> <span class="hljs-string">'@angular/core'</span>;

<span class="hljs-meta">@Component</span>({
  selector: <span class="hljs-string">'app-displayhelloworld'</span>,
  templateUrl: <span class="hljs-string">'./displayhelloworld.component.html'</span>,
  styleUrl: <span class="hljs-string">'./displayhelloworld.component.css'</span>
})
<span class="hljs-keyword">export</span> <span class="hljs-keyword">class</span> DisplayhelloworldComponent {
  message: <span class="hljs-built_in">string</span> = <span class="hljs-string">'Hello World!'</span>;
}
</code></pre>
<pre><code class="lang-xml"><span class="hljs-tag">&lt;<span class="hljs-name">p</span>&gt;</span>{{message}}<span class="hljs-tag">&lt;/<span class="hljs-name">p</span>&gt;</span>
</code></pre>
<ol start="2">
<li><strong>component name: showhellobutton</strong><br /> Create a button, and when the user clicks the button, "Hello World" is displayed on the screen.</li>
</ol>
<pre><code class="lang-typescript"><span class="hljs-keyword">import</span> { Component } <span class="hljs-keyword">from</span> <span class="hljs-string">'@angular/core'</span>;

<span class="hljs-meta">@Component</span>({
  selector: <span class="hljs-string">'app-showhellobutton'</span>,
  templateUrl: <span class="hljs-string">'./showhellobutton.component.html'</span>,
  styleUrl: <span class="hljs-string">'./showhellobutton.component.css'</span>
})
<span class="hljs-keyword">export</span> <span class="hljs-keyword">class</span> ShowhellobuttonComponent {

}
</code></pre>
<pre><code class="lang-xml"><span class="hljs-tag">&lt;<span class="hljs-name">p</span>&gt;</span>Hello World!<span class="hljs-tag">&lt;/<span class="hljs-name">p</span>&gt;</span>
</code></pre>
<ol start="3">
<li><strong>component name: displayname</strong><br /> User inputs their name, and when the button is clicked, their name is displayed on the screen.</li>
</ol>
<pre><code class="lang-typescript"><span class="hljs-keyword">import</span> { Component } <span class="hljs-keyword">from</span> <span class="hljs-string">'@angular/core'</span>;

<span class="hljs-meta">@Component</span>({
  selector: <span class="hljs-string">'app-displayname'</span>,
  templateUrl: <span class="hljs-string">'./displayname.component.html'</span>,
  styleUrl: <span class="hljs-string">'./displayname.component.css'</span>
})
<span class="hljs-keyword">export</span> <span class="hljs-keyword">class</span> DisplaynameComponent {
  name: <span class="hljs-built_in">string</span> = <span class="hljs-string">''</span>;
  result: <span class="hljs-built_in">string</span> = <span class="hljs-string">''</span>;

  show() : <span class="hljs-built_in">void</span> {
    <span class="hljs-built_in">this</span>.result = <span class="hljs-built_in">this</span>.name;
  }
}
</code></pre>
<pre><code class="lang-xml"><span class="hljs-tag">&lt;<span class="hljs-name">input</span> <span class="hljs-attr">type</span>=<span class="hljs-string">"text"</span> <span class="hljs-attr">placeholder</span>=<span class="hljs-string">"Input your name"</span> [(<span class="hljs-attr">ngModel</span>)]=<span class="hljs-string">"name"</span>&gt;</span>
<span class="hljs-tag">&lt;<span class="hljs-name">button</span> <span class="hljs-attr">type</span>=<span class="hljs-string">"button"</span> (<span class="hljs-attr">click</span>)=<span class="hljs-string">"show()"</span>&gt;</span>Submit<span class="hljs-tag">&lt;/<span class="hljs-name">button</span>&gt;</span>
<span class="hljs-tag">&lt;<span class="hljs-name">br</span>&gt;</span>
<span class="hljs-tag">&lt;<span class="hljs-name">p</span>&gt;</span>{{result}}<span class="hljs-tag">&lt;/<span class="hljs-name">p</span>&gt;</span>
</code></pre>
<ol start="4">
<li><strong>component name: counter</strong><br /> Create a counter that increases by 1 when the user clicks a button.</li>
</ol>
<pre><code class="lang-typescript"><span class="hljs-keyword">import</span> { Component } <span class="hljs-keyword">from</span> <span class="hljs-string">'@angular/core'</span>;

<span class="hljs-meta">@Component</span>({
  selector: <span class="hljs-string">'app-counter'</span>,
  templateUrl: <span class="hljs-string">'./counter.component.html'</span>,
  styleUrl: <span class="hljs-string">'./counter.component.css'</span>
})
<span class="hljs-keyword">export</span> <span class="hljs-keyword">class</span> CounterComponent {
  count: <span class="hljs-built_in">number</span> = <span class="hljs-number">0</span>;

  increment(): <span class="hljs-built_in">void</span> {
    <span class="hljs-built_in">this</span>.count++;
  }
}
</code></pre>
<pre><code class="lang-xml"><span class="hljs-tag">&lt;<span class="hljs-name">div</span> <span class="hljs-attr">class</span>=<span class="hljs-string">"counter-container"</span>&gt;</span>
    <span class="hljs-tag">&lt;<span class="hljs-name">h2</span>&gt;</span>Counter: {{ count }}<span class="hljs-tag">&lt;/<span class="hljs-name">h2</span>&gt;</span>
    <span class="hljs-tag">&lt;<span class="hljs-name">button</span> (<span class="hljs-attr">click</span>)=<span class="hljs-string">"increment()"</span>&gt;</span>Increase<span class="hljs-tag">&lt;/<span class="hljs-name">button</span>&gt;</span>
  <span class="hljs-tag">&lt;/<span class="hljs-name">div</span>&gt;</span>
</code></pre>
<ol start="5">
<li><strong>component name: simpleform</strong><br /> Create a form with text inputs and a submit button, display the submitted input data.</li>
</ol>
<pre><code class="lang-typescript"><span class="hljs-keyword">import</span> { Component } <span class="hljs-keyword">from</span> <span class="hljs-string">'@angular/core'</span>;

<span class="hljs-meta">@Component</span>({
  selector: <span class="hljs-string">'app-simpleform'</span>,
  templateUrl: <span class="hljs-string">'./simpleform.component.html'</span>,
  styleUrl: <span class="hljs-string">'./simpleform.component.css'</span>
})
<span class="hljs-keyword">export</span> <span class="hljs-keyword">class</span> SimpleformComponent {
  submittedData: { name: <span class="hljs-built_in">string</span>, email: <span class="hljs-built_in">string</span> } | <span class="hljs-literal">null</span> = <span class="hljs-literal">null</span>;

  onSubmit(): <span class="hljs-built_in">void</span> {
    <span class="hljs-keyword">const</span> form = <span class="hljs-built_in">document</span>.querySelector(<span class="hljs-string">'form'</span>) <span class="hljs-keyword">as</span> HTMLFormElement;
    <span class="hljs-keyword">const</span> formData = <span class="hljs-keyword">new</span> FormData(form);

    <span class="hljs-built_in">this</span>.submittedData = {
      name: formData.get(<span class="hljs-string">'name'</span>) <span class="hljs-keyword">as</span> <span class="hljs-built_in">string</span>,
      email: formData.get(<span class="hljs-string">'email'</span>) <span class="hljs-keyword">as</span> <span class="hljs-built_in">string</span>,
    };
  }
}
</code></pre>
<pre><code class="lang-xml">`<span class="hljs-tag">&lt;<span class="hljs-name">div</span> <span class="hljs-attr">class</span>=<span class="hljs-string">"form-container"</span>&gt;</span>
    <span class="hljs-tag">&lt;<span class="hljs-name">form</span> (<span class="hljs-attr">ngSubmit</span>)=<span class="hljs-string">"onSubmit()"</span> #<span class="hljs-attr">simpleForm</span>=<span class="hljs-string">"ngForm"</span>&gt;</span>
      <span class="hljs-tag">&lt;<span class="hljs-name">label</span> <span class="hljs-attr">for</span>=<span class="hljs-string">"name"</span>&gt;</span>Name:<span class="hljs-tag">&lt;/<span class="hljs-name">label</span>&gt;</span>
      <span class="hljs-tag">&lt;<span class="hljs-name">input</span> <span class="hljs-attr">type</span>=<span class="hljs-string">"text"</span> <span class="hljs-attr">id</span>=<span class="hljs-string">"name"</span> <span class="hljs-attr">name</span>=<span class="hljs-string">"name"</span> <span class="hljs-attr">ngModel</span> <span class="hljs-attr">required</span>&gt;</span>

      <span class="hljs-tag">&lt;<span class="hljs-name">label</span> <span class="hljs-attr">for</span>=<span class="hljs-string">"email"</span>&gt;</span>Email:<span class="hljs-tag">&lt;/<span class="hljs-name">label</span>&gt;</span>
      <span class="hljs-tag">&lt;<span class="hljs-name">input</span> <span class="hljs-attr">type</span>=<span class="hljs-string">"email"</span> <span class="hljs-attr">id</span>=<span class="hljs-string">"email"</span> <span class="hljs-attr">name</span>=<span class="hljs-string">"email"</span> <span class="hljs-attr">ngModel</span> <span class="hljs-attr">required</span>&gt;</span>

      <span class="hljs-tag">&lt;<span class="hljs-name">button</span> <span class="hljs-attr">type</span>=<span class="hljs-string">"submit"</span> [<span class="hljs-attr">disabled</span>]=<span class="hljs-string">"!simpleForm.form.valid"</span>&gt;</span>Submit<span class="hljs-tag">&lt;/<span class="hljs-name">button</span>&gt;</span>
    <span class="hljs-tag">&lt;/<span class="hljs-name">form</span>&gt;</span>

    <span class="hljs-tag">&lt;<span class="hljs-name">div</span> *<span class="hljs-attr">ngIf</span>=<span class="hljs-string">"submittedData"</span>&gt;</span>
      <span class="hljs-tag">&lt;<span class="hljs-name">h3</span>&gt;</span>Submitted Data:<span class="hljs-tag">&lt;/<span class="hljs-name">h3</span>&gt;</span>
      <span class="hljs-tag">&lt;<span class="hljs-name">p</span>&gt;</span><span class="hljs-tag">&lt;<span class="hljs-name">strong</span>&gt;</span>Name:<span class="hljs-tag">&lt;/<span class="hljs-name">strong</span>&gt;</span> {{submittedData.name}}<span class="hljs-tag">&lt;/<span class="hljs-name">p</span>&gt;</span>
      <span class="hljs-tag">&lt;<span class="hljs-name">p</span>&gt;</span><span class="hljs-tag">&lt;<span class="hljs-name">strong</span>&gt;</span>Email:<span class="hljs-tag">&lt;/<span class="hljs-name">strong</span>&gt;</span> {{submittedData.email}}<span class="hljs-tag">&lt;/<span class="hljs-name">p</span>&gt;</span>
    <span class="hljs-tag">&lt;/<span class="hljs-name">div</span>&gt;</span>
  <span class="hljs-tag">&lt;/<span class="hljs-name">div</span>&gt;</span>
</code></pre>
<ol start="6">
<li><strong>component name: userage</strong><br /> Input user’s birth year, and when the button is clicked, display their age.</li>
</ol>
<pre><code class="lang-typescript"><span class="hljs-keyword">import</span> { Component } <span class="hljs-keyword">from</span> <span class="hljs-string">'@angular/core'</span>;

<span class="hljs-meta">@Component</span>({
  selector: <span class="hljs-string">'app-userage'</span>,
  templateUrl: <span class="hljs-string">'./userage.component.html'</span>,
  styleUrl: <span class="hljs-string">'./userage.component.css'</span>
})
<span class="hljs-keyword">export</span> <span class="hljs-keyword">class</span> UserageComponent {
  birthYear: <span class="hljs-built_in">number</span> | <span class="hljs-literal">null</span> = <span class="hljs-literal">null</span>;
  age: <span class="hljs-built_in">number</span> | <span class="hljs-literal">null</span> = <span class="hljs-literal">null</span>;

  calculateAge() {
    <span class="hljs-keyword">if</span> (<span class="hljs-built_in">this</span>.birthYear) {
      <span class="hljs-keyword">const</span> currentYear = <span class="hljs-keyword">new</span> <span class="hljs-built_in">Date</span>().getFullYear();
      <span class="hljs-built_in">this</span>.age = currentYear - <span class="hljs-built_in">this</span>.birthYear;
    }
  }
}
</code></pre>
<pre><code class="lang-xml"><span class="hljs-tag">&lt;<span class="hljs-name">div</span>&gt;</span>
    <span class="hljs-tag">&lt;<span class="hljs-name">h2</span>&gt;</span>Age Calculator<span class="hljs-tag">&lt;/<span class="hljs-name">h2</span>&gt;</span>
    <span class="hljs-tag">&lt;<span class="hljs-name">input</span> <span class="hljs-attr">type</span>=<span class="hljs-string">"number"</span> [(<span class="hljs-attr">ngModel</span>)]=<span class="hljs-string">"birthYear"</span> <span class="hljs-attr">placeholder</span>=<span class="hljs-string">"Enter your birth year"</span>&gt;</span>
    <span class="hljs-tag">&lt;<span class="hljs-name">button</span> (<span class="hljs-attr">click</span>)=<span class="hljs-string">"calculateAge()"</span>&gt;</span>Calculate Age<span class="hljs-tag">&lt;/<span class="hljs-name">button</span>&gt;</span>
    <span class="hljs-tag">&lt;<span class="hljs-name">p</span> *<span class="hljs-attr">ngIf</span>=<span class="hljs-string">"age !== null"</span>&gt;</span>Your age is: {{ age }}<span class="hljs-tag">&lt;/<span class="hljs-name">p</span>&gt;</span>
  <span class="hljs-tag">&lt;/<span class="hljs-name">div</span>&gt;</span>
</code></pre>
<ol start="7">
<li><strong>component name: usergreeting</strong><br /> User inputs their name, and when clicked, display a personalized greeting.</li>
</ol>
<pre><code class="lang-typescript"><span class="hljs-keyword">import</span> { Component } <span class="hljs-keyword">from</span> <span class="hljs-string">'@angular/core'</span>;

<span class="hljs-meta">@Component</span>({
  selector: <span class="hljs-string">'app-usergreeting'</span>,
  templateUrl: <span class="hljs-string">'./usergreeting.component.html'</span>,
  styleUrls: [<span class="hljs-string">'./usergreeting.component.css'</span>] <span class="hljs-comment">// Use 'styleUrls' for an array</span>
})
<span class="hljs-keyword">export</span> <span class="hljs-keyword">class</span> UsergreetingComponent {  
  name: <span class="hljs-built_in">string</span> = <span class="hljs-string">''</span>;
  greeting: <span class="hljs-built_in">string</span> = <span class="hljs-string">''</span>;

  generateGreeting(): <span class="hljs-built_in">void</span> {
    <span class="hljs-keyword">if</span> (<span class="hljs-built_in">this</span>.name.trim()) {
      <span class="hljs-built_in">this</span>.greeting = <span class="hljs-string">`Hello, <span class="hljs-subst">${<span class="hljs-built_in">this</span>.name}</span>! Welcome to my project about Angular Components.`</span>;
    } <span class="hljs-keyword">else</span> {
      <span class="hljs-built_in">this</span>.greeting = <span class="hljs-string">'Please enter your name.'</span>;
    }
  }
}
</code></pre>
<pre><code class="lang-xml"><span class="hljs-tag">&lt;<span class="hljs-name">div</span>&gt;</span>
  <span class="hljs-tag">&lt;<span class="hljs-name">h2</span>&gt;</span>Enter Your Name:<span class="hljs-tag">&lt;/<span class="hljs-name">h2</span>&gt;</span>
  <span class="hljs-tag">&lt;<span class="hljs-name">input</span> <span class="hljs-attr">type</span>=<span class="hljs-string">"text"</span> [(<span class="hljs-attr">ngModel</span>)]=<span class="hljs-string">"name"</span> <span class="hljs-attr">placeholder</span>=<span class="hljs-string">"Enter your name"</span>&gt;</span>
  <span class="hljs-tag">&lt;<span class="hljs-name">button</span> (<span class="hljs-attr">click</span>)=<span class="hljs-string">"generateGreeting()"</span>&gt;</span>Greet Me<span class="hljs-tag">&lt;/<span class="hljs-name">button</span>&gt;</span>

  <span class="hljs-tag">&lt;<span class="hljs-name">p</span> *<span class="hljs-attr">ngIf</span>=<span class="hljs-string">"greeting"</span>&gt;</span>{{ greeting }}<span class="hljs-tag">&lt;/<span class="hljs-name">p</span>&gt;</span>
<span class="hljs-tag">&lt;/<span class="hljs-name">div</span>&gt;</span>
</code></pre>
<ol start="8">
<li><strong>component name: calculator</strong><br /> Create a simple calculator with add, subtract, multiply, and divide functionalities.</li>
</ol>
<pre><code class="lang-typescript"><span class="hljs-keyword">import</span> { Component } <span class="hljs-keyword">from</span> <span class="hljs-string">'@angular/core'</span>;

<span class="hljs-meta">@Component</span>({
  selector: <span class="hljs-string">'app-calculator'</span>,
  templateUrl: <span class="hljs-string">'./calculator.component.html'</span>,
  styleUrl: <span class="hljs-string">'./calculator.component.css'</span>
})
<span class="hljs-keyword">export</span> <span class="hljs-keyword">class</span> CalculatorComponent {
  num1: <span class="hljs-built_in">number</span> | <span class="hljs-literal">null</span> = <span class="hljs-literal">null</span>;
  num2: <span class="hljs-built_in">number</span> | <span class="hljs-literal">null</span> = <span class="hljs-literal">null</span>;
  operation: <span class="hljs-built_in">string</span> = <span class="hljs-string">'add'</span>;
  result: <span class="hljs-built_in">number</span> | <span class="hljs-literal">null</span> = <span class="hljs-literal">null</span>;

  calculate(): <span class="hljs-built_in">void</span> {
    <span class="hljs-keyword">if</span> (<span class="hljs-built_in">this</span>.num1 !== <span class="hljs-literal">null</span> &amp;&amp; <span class="hljs-built_in">this</span>.num2 !== <span class="hljs-literal">null</span>) {
      <span class="hljs-keyword">switch</span> (<span class="hljs-built_in">this</span>.operation) {
        <span class="hljs-keyword">case</span> <span class="hljs-string">'add'</span>:
          <span class="hljs-built_in">this</span>.result = <span class="hljs-built_in">this</span>.num1 + <span class="hljs-built_in">this</span>.num2;
          <span class="hljs-keyword">break</span>;
        <span class="hljs-keyword">case</span> <span class="hljs-string">'subtract'</span>:
          <span class="hljs-built_in">this</span>.result = <span class="hljs-built_in">this</span>.num1 - <span class="hljs-built_in">this</span>.num2;
          <span class="hljs-keyword">break</span>;
        <span class="hljs-keyword">case</span> <span class="hljs-string">'multiply'</span>:
          <span class="hljs-built_in">this</span>.result = <span class="hljs-built_in">this</span>.num1 * <span class="hljs-built_in">this</span>.num2;
          <span class="hljs-keyword">break</span>;
        <span class="hljs-keyword">case</span> <span class="hljs-string">'divide'</span>:
          <span class="hljs-built_in">this</span>.result = <span class="hljs-built_in">this</span>.num1 / <span class="hljs-built_in">this</span>.num2;
          <span class="hljs-keyword">break</span>;
        <span class="hljs-keyword">default</span>:
          <span class="hljs-built_in">this</span>.result = <span class="hljs-literal">null</span>;
          <span class="hljs-keyword">break</span>;
      }
    }
  }
}
</code></pre>
<pre><code class="lang-xml"><span class="hljs-tag">&lt;<span class="hljs-name">div</span> <span class="hljs-attr">class</span>=<span class="hljs-string">"calculator-container"</span>&gt;</span>
    <span class="hljs-tag">&lt;<span class="hljs-name">form</span> (<span class="hljs-attr">ngSubmit</span>)=<span class="hljs-string">"calculate()"</span>&gt;</span>
      <span class="hljs-tag">&lt;<span class="hljs-name">label</span> <span class="hljs-attr">for</span>=<span class="hljs-string">"num1"</span>&gt;</span>Enter first number:<span class="hljs-tag">&lt;/<span class="hljs-name">label</span>&gt;</span>
      <span class="hljs-tag">&lt;<span class="hljs-name">input</span> <span class="hljs-attr">type</span>=<span class="hljs-string">"number"</span> <span class="hljs-attr">id</span>=<span class="hljs-string">"num1"</span> [(<span class="hljs-attr">ngModel</span>)]=<span class="hljs-string">"num1"</span> <span class="hljs-attr">name</span>=<span class="hljs-string">"num1"</span> <span class="hljs-attr">required</span>&gt;</span>

      <span class="hljs-tag">&lt;<span class="hljs-name">label</span> <span class="hljs-attr">for</span>=<span class="hljs-string">"num2"</span>&gt;</span>Enter second number:<span class="hljs-tag">&lt;/<span class="hljs-name">label</span>&gt;</span>
      <span class="hljs-tag">&lt;<span class="hljs-name">input</span> <span class="hljs-attr">type</span>=<span class="hljs-string">"number"</span> <span class="hljs-attr">id</span>=<span class="hljs-string">"num2"</span> [(<span class="hljs-attr">ngModel</span>)]=<span class="hljs-string">"num2"</span> <span class="hljs-attr">name</span>=<span class="hljs-string">"num2"</span> <span class="hljs-attr">required</span>&gt;</span>

      <span class="hljs-tag">&lt;<span class="hljs-name">label</span> <span class="hljs-attr">for</span>=<span class="hljs-string">"operation"</span>&gt;</span>Operation:<span class="hljs-tag">&lt;/<span class="hljs-name">label</span>&gt;</span>
      <span class="hljs-tag">&lt;<span class="hljs-name">select</span> [(<span class="hljs-attr">ngModel</span>)]=<span class="hljs-string">"operation"</span> <span class="hljs-attr">name</span>=<span class="hljs-string">"operation"</span> <span class="hljs-attr">required</span>&gt;</span>
        <span class="hljs-tag">&lt;<span class="hljs-name">option</span> <span class="hljs-attr">value</span>=<span class="hljs-string">"add"</span>&gt;</span>Add<span class="hljs-tag">&lt;/<span class="hljs-name">option</span>&gt;</span>
        <span class="hljs-tag">&lt;<span class="hljs-name">option</span> <span class="hljs-attr">value</span>=<span class="hljs-string">"subtract"</span>&gt;</span>Subtract<span class="hljs-tag">&lt;/<span class="hljs-name">option</span>&gt;</span>
        <span class="hljs-tag">&lt;<span class="hljs-name">option</span> <span class="hljs-attr">value</span>=<span class="hljs-string">"multiply"</span>&gt;</span>Multiply<span class="hljs-tag">&lt;/<span class="hljs-name">option</span>&gt;</span>
        <span class="hljs-tag">&lt;<span class="hljs-name">option</span> <span class="hljs-attr">value</span>=<span class="hljs-string">"divide"</span>&gt;</span>Divide<span class="hljs-tag">&lt;/<span class="hljs-name">option</span>&gt;</span>
      <span class="hljs-tag">&lt;/<span class="hljs-name">select</span>&gt;</span>

      <span class="hljs-tag">&lt;<span class="hljs-name">button</span> <span class="hljs-attr">type</span>=<span class="hljs-string">"submit"</span>&gt;</span>Calculate<span class="hljs-tag">&lt;/<span class="hljs-name">button</span>&gt;</span>
    <span class="hljs-tag">&lt;/<span class="hljs-name">form</span>&gt;</span>

    <span class="hljs-tag">&lt;<span class="hljs-name">div</span> *<span class="hljs-attr">ngIf</span>=<span class="hljs-string">"result !== null"</span>&gt;</span>
      <span class="hljs-tag">&lt;<span class="hljs-name">h3</span>&gt;</span>Result: {{ result }}<span class="hljs-tag">&lt;/<span class="hljs-name">h3</span>&gt;</span>
    <span class="hljs-tag">&lt;/<span class="hljs-name">div</span>&gt;</span>
  <span class="hljs-tag">&lt;/<span class="hljs-name">div</span>&gt;</span>
</code></pre>
<ol start="9">
<li><p><strong>component name: textlength</strong></p>
<p> Input a string, and when the button is clicked, display the length of the string.</p>
</li>
</ol>
<pre><code class="lang-typescript"><span class="hljs-keyword">import</span> { Component } <span class="hljs-keyword">from</span> <span class="hljs-string">'@angular/core'</span>;

<span class="hljs-meta">@Component</span>({
  selector: <span class="hljs-string">'app-textlength'</span>,
  templateUrl: <span class="hljs-string">'./textlength.component.html'</span>,
  styleUrl: <span class="hljs-string">'./textlength.component.css'</span>
})
<span class="hljs-keyword">export</span> <span class="hljs-keyword">class</span> TextlengthComponent {
  inputText: <span class="hljs-built_in">string</span> = <span class="hljs-string">''</span>;
  textLength: <span class="hljs-built_in">number</span> | <span class="hljs-literal">null</span> = <span class="hljs-literal">null</span>;

  calculateLength(): <span class="hljs-built_in">void</span> {
    <span class="hljs-built_in">this</span>.textLength = <span class="hljs-built_in">this</span>.inputText.length;
  }
}
</code></pre>
<pre><code class="lang-xml"><span class="hljs-tag">&lt;<span class="hljs-name">div</span> <span class="hljs-attr">class</span>=<span class="hljs-string">"textlength-container"</span>&gt;</span>
    <span class="hljs-tag">&lt;<span class="hljs-name">form</span> (<span class="hljs-attr">ngSubmit</span>)=<span class="hljs-string">"calculateLength()"</span>&gt;</span>
      <span class="hljs-tag">&lt;<span class="hljs-name">label</span> <span class="hljs-attr">for</span>=<span class="hljs-string">"text"</span>&gt;</span>Enter a string:<span class="hljs-tag">&lt;/<span class="hljs-name">label</span>&gt;</span>
      <span class="hljs-tag">&lt;<span class="hljs-name">input</span> <span class="hljs-attr">type</span>=<span class="hljs-string">"text"</span> <span class="hljs-attr">id</span>=<span class="hljs-string">"text"</span> [(<span class="hljs-attr">ngModel</span>)]=<span class="hljs-string">"inputText"</span> <span class="hljs-attr">name</span>=<span class="hljs-string">"text"</span> <span class="hljs-attr">required</span>&gt;</span>

      <span class="hljs-tag">&lt;<span class="hljs-name">button</span> <span class="hljs-attr">type</span>=<span class="hljs-string">"submit"</span>&gt;</span>Get Length<span class="hljs-tag">&lt;/<span class="hljs-name">button</span>&gt;</span>
    <span class="hljs-tag">&lt;/<span class="hljs-name">form</span>&gt;</span>

    <span class="hljs-tag">&lt;<span class="hljs-name">div</span> *<span class="hljs-attr">ngIf</span>=<span class="hljs-string">"textLength !== null"</span>&gt;</span>
      <span class="hljs-tag">&lt;<span class="hljs-name">h3</span>&gt;</span>Length: {{ textLength }}<span class="hljs-tag">&lt;/<span class="hljs-name">h3</span>&gt;</span>
    <span class="hljs-tag">&lt;/<span class="hljs-name">div</span>&gt;</span>
  <span class="hljs-tag">&lt;/<span class="hljs-name">div</span>&gt;</span>
</code></pre>
<ol start="10">
<li><p><strong>component name: currencyconverter</strong></p>
<p>Input a value in one currency, convert it to another currency on button click (1 dollar = 56 Php).</p>
</li>
</ol>
<pre><code class="lang-typescript"><span class="hljs-keyword">import</span> { Component } <span class="hljs-keyword">from</span> <span class="hljs-string">'@angular/core'</span>;

<span class="hljs-meta">@Component</span>({
  selector: <span class="hljs-string">'app-currencyconverter'</span>,
  templateUrl: <span class="hljs-string">'./currencyconverter.component.html'</span>,
  styleUrl: <span class="hljs-string">'./currencyconverter.component.css'</span>
})
<span class="hljs-keyword">export</span> <span class="hljs-keyword">class</span> CurrencyconverterComponent {
  usdValue: <span class="hljs-built_in">number</span> | <span class="hljs-literal">null</span> = <span class="hljs-literal">null</span>;
  phpValue: <span class="hljs-built_in">number</span> | <span class="hljs-literal">null</span> = <span class="hljs-literal">null</span>;
  conversionRate: <span class="hljs-built_in">number</span> = <span class="hljs-number">56</span>;  <span class="hljs-comment">// 1 USD = 56 PHP</span>

  convertCurrency(): <span class="hljs-built_in">void</span> {
    <span class="hljs-keyword">if</span> (<span class="hljs-built_in">this</span>.usdValue !== <span class="hljs-literal">null</span>) {
      <span class="hljs-built_in">this</span>.phpValue = <span class="hljs-built_in">this</span>.usdValue * <span class="hljs-built_in">this</span>.conversionRate;
    }
  }
}
</code></pre>
<pre><code class="lang-xml"><span class="hljs-tag">&lt;<span class="hljs-name">div</span> <span class="hljs-attr">class</span>=<span class="hljs-string">"currencyconverter-container"</span>&gt;</span>
    <span class="hljs-tag">&lt;<span class="hljs-name">form</span> (<span class="hljs-attr">ngSubmit</span>)=<span class="hljs-string">"convertCurrency()"</span>&gt;</span>
      <span class="hljs-tag">&lt;<span class="hljs-name">label</span> <span class="hljs-attr">for</span>=<span class="hljs-string">"usd"</span>&gt;</span>Enter value in USD:<span class="hljs-tag">&lt;/<span class="hljs-name">label</span>&gt;</span>
      <span class="hljs-tag">&lt;<span class="hljs-name">input</span> <span class="hljs-attr">type</span>=<span class="hljs-string">"number"</span> <span class="hljs-attr">id</span>=<span class="hljs-string">"usd"</span> [(<span class="hljs-attr">ngModel</span>)]=<span class="hljs-string">"usdValue"</span> <span class="hljs-attr">name</span>=<span class="hljs-string">"usdValue"</span> <span class="hljs-attr">required</span>&gt;</span>

      <span class="hljs-tag">&lt;<span class="hljs-name">button</span> <span class="hljs-attr">type</span>=<span class="hljs-string">"submit"</span>&gt;</span>Convert to PHP<span class="hljs-tag">&lt;/<span class="hljs-name">button</span>&gt;</span>
    <span class="hljs-tag">&lt;/<span class="hljs-name">form</span>&gt;</span>

    <span class="hljs-tag">&lt;<span class="hljs-name">div</span> *<span class="hljs-attr">ngIf</span>=<span class="hljs-string">"phpValue !== null"</span>&gt;</span>
      <span class="hljs-tag">&lt;<span class="hljs-name">h3</span>&gt;</span>PHP Value: {{ phpValue }}<span class="hljs-tag">&lt;/<span class="hljs-name">h3</span>&gt;</span>
    <span class="hljs-tag">&lt;/<span class="hljs-name">div</span>&gt;</span>
  <span class="hljs-tag">&lt;/<span class="hljs-name">div</span>&gt;</span>
</code></pre>
<ol start="11">
<li><p><strong>component name: evenoddchecker</strong></p>
<p>Input a number and check if it is even or odd.</p>
</li>
</ol>
<pre><code class="lang-typescript"><span class="hljs-keyword">import</span> { Component } <span class="hljs-keyword">from</span> <span class="hljs-string">'@angular/core'</span>;

<span class="hljs-meta">@Component</span>({
  selector: <span class="hljs-string">'app-evenoddchecker'</span>,
  templateUrl: <span class="hljs-string">'./evenoddchecker.component.html'</span>,
  styleUrl: <span class="hljs-string">'./evenoddchecker.component.css'</span>
})
<span class="hljs-keyword">export</span> <span class="hljs-keyword">class</span> EvenoddcheckerComponent {
  numberInput: <span class="hljs-built_in">number</span> | <span class="hljs-literal">null</span> = <span class="hljs-literal">null</span>;
  result: <span class="hljs-built_in">string</span> = <span class="hljs-string">''</span>;

  checkEvenOdd(): <span class="hljs-built_in">void</span> {
    <span class="hljs-keyword">if</span> (<span class="hljs-built_in">this</span>.numberInput !== <span class="hljs-literal">null</span>) {
      <span class="hljs-built_in">this</span>.result = <span class="hljs-built_in">this</span>.numberInput % <span class="hljs-number">2</span> === <span class="hljs-number">0</span> ? <span class="hljs-string">'Even'</span> : <span class="hljs-string">'Odd'</span>;
    }
  }
}
</code></pre>
<pre><code class="lang-xml"><span class="hljs-tag">&lt;<span class="hljs-name">div</span>&gt;</span>
    <span class="hljs-tag">&lt;<span class="hljs-name">h3</span>&gt;</span>Even or Odd Checker<span class="hljs-tag">&lt;/<span class="hljs-name">h3</span>&gt;</span>
    <span class="hljs-tag">&lt;<span class="hljs-name">input</span> <span class="hljs-attr">type</span>=<span class="hljs-string">"number"</span> [(<span class="hljs-attr">ngModel</span>)]=<span class="hljs-string">"numberInput"</span> <span class="hljs-attr">placeholder</span>=<span class="hljs-string">"Enter a number"</span>&gt;</span>
    <span class="hljs-tag">&lt;<span class="hljs-name">button</span> (<span class="hljs-attr">click</span>)=<span class="hljs-string">"checkEvenOdd()"</span>&gt;</span>Check<span class="hljs-tag">&lt;/<span class="hljs-name">button</span>&gt;</span>
    <span class="hljs-tag">&lt;<span class="hljs-name">p</span> *<span class="hljs-attr">ngIf</span>=<span class="hljs-string">"result"</span>&gt;</span>{{ result }}<span class="hljs-tag">&lt;/<span class="hljs-name">p</span>&gt;</span>
  <span class="hljs-tag">&lt;/<span class="hljs-name">div</span>&gt;</span>
</code></pre>
<ol start="12">
<li><p><strong>component name: wordreverser</strong></p>
<p>Input a word, and when the button is clicked, display the word reversed.</p>
</li>
</ol>
<pre><code class="lang-typescript"><span class="hljs-keyword">import</span> { Component } <span class="hljs-keyword">from</span> <span class="hljs-string">'@angular/core'</span>;

<span class="hljs-meta">@Component</span>({
  selector: <span class="hljs-string">'app-wordreverser'</span>,
  templateUrl: <span class="hljs-string">'./wordreverser.component.html'</span>,
  styleUrls: [<span class="hljs-string">'./wordreverser.component.css'</span>]
})
<span class="hljs-keyword">export</span> <span class="hljs-keyword">class</span> WordreverserComponent {
  inputWord: <span class="hljs-built_in">string</span> = <span class="hljs-string">''</span>;
  reversedWord: <span class="hljs-built_in">string</span> | <span class="hljs-literal">null</span> = <span class="hljs-literal">null</span>;

  reverseWord(): <span class="hljs-built_in">void</span> {
    <span class="hljs-built_in">this</span>.reversedWord = <span class="hljs-built_in">this</span>.inputWord.split(<span class="hljs-string">''</span>).reverse().join(<span class="hljs-string">''</span>);
  }
}
</code></pre>
<pre><code class="lang-xml"><span class="hljs-tag">&lt;<span class="hljs-name">div</span>&gt;</span>
    <span class="hljs-tag">&lt;<span class="hljs-name">h3</span>&gt;</span>Word Reverser<span class="hljs-tag">&lt;/<span class="hljs-name">h3</span>&gt;</span>
    <span class="hljs-tag">&lt;<span class="hljs-name">input</span> <span class="hljs-attr">type</span>=<span class="hljs-string">"text"</span> <span class="hljs-attr">id</span>=<span class="hljs-string">"inputWord"</span> [(<span class="hljs-attr">ngModel</span>)]=<span class="hljs-string">"inputWord"</span> <span class="hljs-attr">placeholder</span>=<span class="hljs-string">"Enter a word"</span>&gt;</span>
    <span class="hljs-tag">&lt;<span class="hljs-name">button</span> (<span class="hljs-attr">click</span>)=<span class="hljs-string">"reverseWord()"</span>&gt;</span>Reverse<span class="hljs-tag">&lt;/<span class="hljs-name">button</span>&gt;</span>
    <span class="hljs-tag">&lt;<span class="hljs-name">p</span> *<span class="hljs-attr">ngIf</span>=<span class="hljs-string">"reversedWord"</span>&gt;</span>Reversed Word: {{ reversedWord }}<span class="hljs-tag">&lt;/<span class="hljs-name">p</span>&gt;</span>
  <span class="hljs-tag">&lt;/<span class="hljs-name">div</span>&gt;</span>
</code></pre>
<ol start="13">
<li><p><strong>component name: showdate</strong></p>
<p>Create a button that shows the current date and time when clicked.</p>
</li>
</ol>
<pre><code class="lang-typescript"><span class="hljs-keyword">import</span> { Component } <span class="hljs-keyword">from</span> <span class="hljs-string">'@angular/core'</span>;

<span class="hljs-meta">@Component</span>({
  selector: <span class="hljs-string">'app-showdate'</span>,
  templateUrl: <span class="hljs-string">'./showdate.component.html'</span>,
  styleUrl: <span class="hljs-string">'./showdate.component.css'</span>
})
<span class="hljs-keyword">export</span> <span class="hljs-keyword">class</span> ShowdateComponent {
  currentDate: <span class="hljs-built_in">string</span> | <span class="hljs-literal">null</span> = <span class="hljs-literal">null</span>;

  showDate(): <span class="hljs-built_in">void</span> {
    <span class="hljs-keyword">const</span> now = <span class="hljs-keyword">new</span> <span class="hljs-built_in">Date</span>();
    <span class="hljs-built_in">this</span>.currentDate = now.toLocaleString();
  }
}
</code></pre>
<pre><code class="lang-xml"><span class="hljs-tag">&lt;<span class="hljs-name">div</span>&gt;</span>
    <span class="hljs-tag">&lt;<span class="hljs-name">h3</span>&gt;</span>Show Current Date and Time<span class="hljs-tag">&lt;/<span class="hljs-name">h3</span>&gt;</span>
    <span class="hljs-tag">&lt;<span class="hljs-name">button</span> (<span class="hljs-attr">click</span>)=<span class="hljs-string">"showDate()"</span>&gt;</span>Show Date<span class="hljs-tag">&lt;/<span class="hljs-name">button</span>&gt;</span>
    <span class="hljs-tag">&lt;<span class="hljs-name">p</span> *<span class="hljs-attr">ngIf</span>=<span class="hljs-string">"currentDate"</span>&gt;</span>Current Date and Time: {{ currentDate }}<span class="hljs-tag">&lt;/<span class="hljs-name">p</span>&gt;</span>
  <span class="hljs-tag">&lt;/<span class="hljs-name">div</span>&gt;</span>
</code></pre>
<ol start="14">
<li><p><strong>component name: showusername</strong></p>
<p>User inputs their username, and on clicking a button, their username is displayed on the screen.</p>
</li>
</ol>
<pre><code class="lang-typescript"><span class="hljs-keyword">import</span> { Component } <span class="hljs-keyword">from</span> <span class="hljs-string">'@angular/core'</span>;

<span class="hljs-meta">@Component</span>({
  selector: <span class="hljs-string">'app-showusername'</span>,
  templateUrl: <span class="hljs-string">'./showusername.component.html'</span>,
  styleUrl: <span class="hljs-string">'./showusername.component.css'</span>
})
<span class="hljs-keyword">export</span> <span class="hljs-keyword">class</span> ShowusernameComponent {
  username: <span class="hljs-built_in">string</span> = <span class="hljs-string">''</span>;
  displayedUsername: <span class="hljs-built_in">string</span> | <span class="hljs-literal">null</span> = <span class="hljs-literal">null</span>;

  showUsername(): <span class="hljs-built_in">void</span> {
    <span class="hljs-built_in">this</span>.displayedUsername = <span class="hljs-built_in">this</span>.username;
  }
}
</code></pre>
<pre><code class="lang-xml"><span class="hljs-tag">&lt;<span class="hljs-name">div</span>&gt;</span>
    <span class="hljs-tag">&lt;<span class="hljs-name">h3</span>&gt;</span>Show Username<span class="hljs-tag">&lt;/<span class="hljs-name">h3</span>&gt;</span>
    <span class="hljs-tag">&lt;<span class="hljs-name">input</span> <span class="hljs-attr">type</span>=<span class="hljs-string">"text"</span> [(<span class="hljs-attr">ngModel</span>)]=<span class="hljs-string">"username"</span> <span class="hljs-attr">placeholder</span>=<span class="hljs-string">"Enter your username"</span>&gt;</span>
    <span class="hljs-tag">&lt;<span class="hljs-name">button</span> (<span class="hljs-attr">click</span>)=<span class="hljs-string">"showUsername()"</span>&gt;</span>Show Username<span class="hljs-tag">&lt;/<span class="hljs-name">button</span>&gt;</span>
    <span class="hljs-tag">&lt;<span class="hljs-name">p</span> *<span class="hljs-attr">ngIf</span>=<span class="hljs-string">"displayedUsername"</span>&gt;</span>Hello, {{ displayedUsername }}!<span class="hljs-tag">&lt;/<span class="hljs-name">p</span>&gt;</span>
  <span class="hljs-tag">&lt;/<span class="hljs-name">div</span>&gt;</span>
</code></pre>
<ol start="15">
<li><p><strong>component name: multiplicationtable</strong></p>
<p>Input a number and generate its multiplication table.</p>
</li>
</ol>
<pre><code class="lang-typescript"><span class="hljs-keyword">import</span> { Component } <span class="hljs-keyword">from</span> <span class="hljs-string">'@angular/core'</span>;

<span class="hljs-meta">@Component</span>({
  selector: <span class="hljs-string">'app-multiplicationtable'</span>,
  templateUrl: <span class="hljs-string">'./multiplicationtable.component.html'</span>,
  styleUrl: <span class="hljs-string">'./multiplicationtable.component.css'</span>
})
<span class="hljs-keyword">export</span> <span class="hljs-keyword">class</span> MultiplicationtableComponent {
  numberInput: <span class="hljs-built_in">number</span> | <span class="hljs-literal">null</span> = <span class="hljs-literal">null</span>;
  table: <span class="hljs-built_in">number</span>[] = [];

  generateTable(): <span class="hljs-built_in">void</span> {
    <span class="hljs-keyword">if</span> (<span class="hljs-built_in">this</span>.numberInput !== <span class="hljs-literal">null</span>) {
      <span class="hljs-built_in">this</span>.table = <span class="hljs-built_in">Array</span>.from({ length: <span class="hljs-number">10</span> }, <span class="hljs-function">(<span class="hljs-params">_, i</span>) =&gt;</span> <span class="hljs-built_in">this</span>.numberInput! * (i + <span class="hljs-number">1</span>));
    }
  }
}
</code></pre>
<pre><code class="lang-xml"><span class="hljs-tag">&lt;<span class="hljs-name">div</span>&gt;</span>
    <span class="hljs-tag">&lt;<span class="hljs-name">h3</span>&gt;</span>Multiplication Table<span class="hljs-tag">&lt;/<span class="hljs-name">h3</span>&gt;</span>
    <span class="hljs-tag">&lt;<span class="hljs-name">input</span> <span class="hljs-attr">type</span>=<span class="hljs-string">"number"</span> [(<span class="hljs-attr">ngModel</span>)]=<span class="hljs-string">"numberInput"</span> <span class="hljs-attr">placeholder</span>=<span class="hljs-string">"Enter a number"</span>&gt;</span>
    <span class="hljs-tag">&lt;<span class="hljs-name">button</span> (<span class="hljs-attr">click</span>)=<span class="hljs-string">"generateTable()"</span>&gt;</span>Generate Table<span class="hljs-tag">&lt;/<span class="hljs-name">button</span>&gt;</span>

    <span class="hljs-tag">&lt;<span class="hljs-name">ul</span> *<span class="hljs-attr">ngIf</span>=<span class="hljs-string">"table.length &gt; 0"</span>&gt;</span>
      <span class="hljs-tag">&lt;<span class="hljs-name">li</span> *<span class="hljs-attr">ngFor</span>=<span class="hljs-string">"let result of table; let i = index"</span>&gt;</span>{{ numberInput }} x {{ i + 1 }} = {{ result }}<span class="hljs-tag">&lt;/<span class="hljs-name">li</span>&gt;</span>
    <span class="hljs-tag">&lt;/<span class="hljs-name">ul</span>&gt;</span>
  <span class="hljs-tag">&lt;/<span class="hljs-name">div</span>&gt;</span>
</code></pre>
<ol start="16">
<li><p><strong>component name: simplelogin</strong></p>
<p>Create a simple login form with email and password fields.</p>
</li>
</ol>
<pre><code class="lang-typescript"><span class="hljs-keyword">import</span> { Component } <span class="hljs-keyword">from</span> <span class="hljs-string">'@angular/core'</span>;

<span class="hljs-meta">@Component</span>({
  selector: <span class="hljs-string">'app-simplelogin'</span>,
  templateUrl: <span class="hljs-string">'./simplelogin.component.html'</span>,
  styleUrl: <span class="hljs-string">'./simplelogin.component.css'</span>
})
<span class="hljs-keyword">export</span> <span class="hljs-keyword">class</span> SimpleloginComponent {
  email: <span class="hljs-built_in">string</span> = <span class="hljs-string">''</span>;
  password: <span class="hljs-built_in">string</span> = <span class="hljs-string">''</span>;
  loginMessage: <span class="hljs-built_in">string</span> | <span class="hljs-literal">null</span> = <span class="hljs-literal">null</span>;

  login(): <span class="hljs-built_in">void</span> {
    <span class="hljs-built_in">this</span>.loginMessage = <span class="hljs-string">`Logged in as: <span class="hljs-subst">${<span class="hljs-built_in">this</span>.email}</span>`</span>;
  }
}
</code></pre>
<pre><code class="lang-xml"><span class="hljs-tag">&lt;<span class="hljs-name">div</span>&gt;</span>
    <span class="hljs-tag">&lt;<span class="hljs-name">h3</span>&gt;</span>Simple Login<span class="hljs-tag">&lt;/<span class="hljs-name">h3</span>&gt;</span>
    <span class="hljs-tag">&lt;<span class="hljs-name">input</span> <span class="hljs-attr">type</span>=<span class="hljs-string">"email"</span> [(<span class="hljs-attr">ngModel</span>)]=<span class="hljs-string">"email"</span> <span class="hljs-attr">placeholder</span>=<span class="hljs-string">"Enter email"</span>&gt;</span>
    <span class="hljs-tag">&lt;<span class="hljs-name">input</span> <span class="hljs-attr">type</span>=<span class="hljs-string">"password"</span> [(<span class="hljs-attr">ngModel</span>)]=<span class="hljs-string">"password"</span> <span class="hljs-attr">placeholder</span>=<span class="hljs-string">"Enter password"</span>&gt;</span>
    <span class="hljs-tag">&lt;<span class="hljs-name">button</span> (<span class="hljs-attr">click</span>)=<span class="hljs-string">"login()"</span>&gt;</span>Login<span class="hljs-tag">&lt;/<span class="hljs-name">button</span>&gt;</span>
    <span class="hljs-tag">&lt;<span class="hljs-name">p</span> *<span class="hljs-attr">ngIf</span>=<span class="hljs-string">"loginMessage"</span>&gt;</span>{{ loginMessage }}<span class="hljs-tag">&lt;/<span class="hljs-name">p</span>&gt;</span>
  <span class="hljs-tag">&lt;/<span class="hljs-name">div</span>&gt;</span>
</code></pre>
<ol start="17">
<li><p><strong>component name: fahrenheittocelsius</strong></p>
<p>Convert temperature from Fahrenheit to Celsius when the user inputs a value.</p>
</li>
</ol>
<pre><code class="lang-typescript"><span class="hljs-keyword">import</span> { Component } <span class="hljs-keyword">from</span> <span class="hljs-string">'@angular/core'</span>;

<span class="hljs-meta">@Component</span>({
  selector: <span class="hljs-string">'app-fahrenheittocelsius'</span>,
  templateUrl: <span class="hljs-string">'./fahrenheittocelsius.component.html'</span>,
  styleUrl: <span class="hljs-string">'./fahrenheittocelsius.component.css'</span>
})
<span class="hljs-keyword">export</span> <span class="hljs-keyword">class</span> FahrenheittocelsiusComponent {
  fahrenheit: <span class="hljs-built_in">number</span> | <span class="hljs-literal">null</span> = <span class="hljs-literal">null</span>;
  celsius: <span class="hljs-built_in">number</span> | <span class="hljs-literal">null</span> = <span class="hljs-literal">null</span>;

  convert(): <span class="hljs-built_in">void</span> {
    <span class="hljs-keyword">if</span> (<span class="hljs-built_in">this</span>.fahrenheit !== <span class="hljs-literal">null</span>) {
      <span class="hljs-built_in">this</span>.celsius = (<span class="hljs-built_in">this</span>.fahrenheit - <span class="hljs-number">32</span>) * <span class="hljs-number">5</span> / <span class="hljs-number">9</span>;
    }
  }
}
</code></pre>
<pre><code class="lang-xml"><span class="hljs-tag">&lt;<span class="hljs-name">div</span>&gt;</span>
    <span class="hljs-tag">&lt;<span class="hljs-name">h3</span>&gt;</span>Fahrenheit to Celsius Converter<span class="hljs-tag">&lt;/<span class="hljs-name">h3</span>&gt;</span>
    <span class="hljs-tag">&lt;<span class="hljs-name">input</span> <span class="hljs-attr">type</span>=<span class="hljs-string">"number"</span> [(<span class="hljs-attr">ngModel</span>)]=<span class="hljs-string">"fahrenheit"</span> <span class="hljs-attr">placeholder</span>=<span class="hljs-string">"Enter Fahrenheit"</span>&gt;</span>
    <span class="hljs-tag">&lt;<span class="hljs-name">button</span> (<span class="hljs-attr">click</span>)=<span class="hljs-string">"convert()"</span>&gt;</span>Convert<span class="hljs-tag">&lt;/<span class="hljs-name">button</span>&gt;</span>
    <span class="hljs-tag">&lt;<span class="hljs-name">p</span> *<span class="hljs-attr">ngIf</span>=<span class="hljs-string">"celsius !== null"</span>&gt;</span>Temperature in Celsius: {{ celsius.toFixed(2) }}°C<span class="hljs-tag">&lt;/<span class="hljs-name">p</span>&gt;</span>
  <span class="hljs-tag">&lt;/<span class="hljs-name">div</span>&gt;</span>
</code></pre>
<ol start="18">
<li><p><strong>component name: bookmarklist</strong></p>
<p>Allow users to input URLs and display them using anchor tags.</p>
</li>
</ol>
<pre><code class="lang-typescript"><span class="hljs-keyword">import</span> { Component } <span class="hljs-keyword">from</span> <span class="hljs-string">'@angular/core'</span>;

<span class="hljs-meta">@Component</span>({
  selector: <span class="hljs-string">'app-bookmarklist'</span>,
  templateUrl: <span class="hljs-string">'./bookmarklist.component.html'</span>,
  styleUrl: <span class="hljs-string">'./bookmarklist.component.css'</span>
})
<span class="hljs-keyword">export</span> <span class="hljs-keyword">class</span> BookmarklistComponent {
  url: <span class="hljs-built_in">string</span> = <span class="hljs-string">''</span>;
  bookmarks: <span class="hljs-built_in">string</span>[] = [];

  addBookmark(): <span class="hljs-built_in">void</span> {
    <span class="hljs-keyword">if</span> (<span class="hljs-built_in">this</span>.url) {
      <span class="hljs-built_in">this</span>.bookmarks.push(<span class="hljs-built_in">this</span>.url);
      <span class="hljs-built_in">this</span>.url = <span class="hljs-string">''</span>;
    }
  }
}
</code></pre>
<pre><code class="lang-xml"><span class="hljs-tag">&lt;<span class="hljs-name">div</span>&gt;</span>
    <span class="hljs-tag">&lt;<span class="hljs-name">h3</span>&gt;</span>Bookmark List<span class="hljs-tag">&lt;/<span class="hljs-name">h3</span>&gt;</span>
    <span class="hljs-tag">&lt;<span class="hljs-name">input</span> <span class="hljs-attr">type</span>=<span class="hljs-string">"text"</span> [(<span class="hljs-attr">ngModel</span>)]=<span class="hljs-string">"url"</span> <span class="hljs-attr">placeholder</span>=<span class="hljs-string">"Enter URL"</span>&gt;</span>
    <span class="hljs-tag">&lt;<span class="hljs-name">button</span> (<span class="hljs-attr">click</span>)=<span class="hljs-string">"addBookmark()"</span>&gt;</span>Add Bookmark<span class="hljs-tag">&lt;/<span class="hljs-name">button</span>&gt;</span>

    <span class="hljs-tag">&lt;<span class="hljs-name">ul</span>&gt;</span>
      <span class="hljs-tag">&lt;<span class="hljs-name">li</span> *<span class="hljs-attr">ngFor</span>=<span class="hljs-string">"let bookmark of bookmarks"</span>&gt;</span>
        <span class="hljs-tag">&lt;<span class="hljs-name">a</span> [<span class="hljs-attr">href</span>]=<span class="hljs-string">"bookmark"</span> <span class="hljs-attr">target</span>=<span class="hljs-string">"_blank"</span>&gt;</span>{{ bookmark }}<span class="hljs-tag">&lt;/<span class="hljs-name">a</span>&gt;</span>
      <span class="hljs-tag">&lt;/<span class="hljs-name">li</span>&gt;</span>
    <span class="hljs-tag">&lt;/<span class="hljs-name">ul</span>&gt;</span>
  <span class="hljs-tag">&lt;/<span class="hljs-name">div</span>&gt;</span>
</code></pre>
<ol start="19">
<li><p><strong>component name: charactercounter</strong></p>
<p>Input a string and count the number of characters in it.</p>
</li>
</ol>
<pre><code class="lang-typescript"><span class="hljs-keyword">import</span> { Component } <span class="hljs-keyword">from</span> <span class="hljs-string">'@angular/core'</span>;

<span class="hljs-meta">@Component</span>({
  selector: <span class="hljs-string">'app-charactercounter'</span>,
  templateUrl: <span class="hljs-string">'./charactercounter.component.html'</span>,
  styleUrl: <span class="hljs-string">'./charactercounter.component.css'</span>
})
<span class="hljs-keyword">export</span> <span class="hljs-keyword">class</span> CharactercounterComponent {
  inputText: <span class="hljs-built_in">string</span> = <span class="hljs-string">''</span>;
  characterCount: <span class="hljs-built_in">number</span> = <span class="hljs-number">0</span>;

  countCharacters(): <span class="hljs-built_in">void</span> {
    <span class="hljs-built_in">this</span>.characterCount = <span class="hljs-built_in">this</span>.inputText.length;
  }
}
</code></pre>
<pre><code class="lang-xml"><span class="hljs-tag">&lt;<span class="hljs-name">div</span>&gt;</span>
    <span class="hljs-tag">&lt;<span class="hljs-name">h3</span>&gt;</span>Character Counter<span class="hljs-tag">&lt;/<span class="hljs-name">h3</span>&gt;</span>
    <span class="hljs-tag">&lt;<span class="hljs-name">input</span> <span class="hljs-attr">type</span>=<span class="hljs-string">"text"</span> [(<span class="hljs-attr">ngModel</span>)]=<span class="hljs-string">"inputText"</span> (<span class="hljs-attr">input</span>)=<span class="hljs-string">"countCharacters()"</span> <span class="hljs-attr">placeholder</span>=<span class="hljs-string">"Enter text"</span>&gt;</span>
    <span class="hljs-tag">&lt;<span class="hljs-name">p</span>&gt;</span>Character Count: {{ characterCount }}<span class="hljs-tag">&lt;/<span class="hljs-name">p</span>&gt;</span>
  <span class="hljs-tag">&lt;/<span class="hljs-name">div</span>&gt;</span>
</code></pre>
<ol start="20">
<li><p><strong>component name: palindromechecker</strong></p>
<p>Input a word and check if it's a palindrome.</p>
</li>
</ol>
<pre><code class="lang-typescript"><span class="hljs-keyword">import</span> { Component } <span class="hljs-keyword">from</span> <span class="hljs-string">'@angular/core'</span>;

<span class="hljs-meta">@Component</span>({
  selector: <span class="hljs-string">'app-palindromechecker'</span>,
  templateUrl: <span class="hljs-string">'./palindromechecker.component.html'</span>,
  styleUrl: <span class="hljs-string">'./palindromechecker.component.css'</span>
})
<span class="hljs-keyword">export</span> <span class="hljs-keyword">class</span> PalindromecheckerComponent {
  inputWord: <span class="hljs-built_in">string</span> = <span class="hljs-string">''</span>;
  result: <span class="hljs-built_in">string</span> | <span class="hljs-literal">null</span> = <span class="hljs-literal">null</span>;

  checkPalindrome(): <span class="hljs-built_in">void</span> {
    <span class="hljs-keyword">const</span> reversedWord = <span class="hljs-built_in">this</span>.inputWord.split(<span class="hljs-string">''</span>).reverse().join(<span class="hljs-string">''</span>);
    <span class="hljs-built_in">this</span>.result = <span class="hljs-built_in">this</span>.inputWord === reversedWord ? <span class="hljs-string">'It is a palindrome!'</span> : <span class="hljs-string">'It is not a palindrome.'</span>;
  }
}
</code></pre>
<pre><code class="lang-xml"><span class="hljs-tag">&lt;<span class="hljs-name">div</span>&gt;</span>
    <span class="hljs-tag">&lt;<span class="hljs-name">h3</span>&gt;</span>Palindrome Checker<span class="hljs-tag">&lt;/<span class="hljs-name">h3</span>&gt;</span>
    <span class="hljs-tag">&lt;<span class="hljs-name">input</span> <span class="hljs-attr">type</span>=<span class="hljs-string">"text"</span> [(<span class="hljs-attr">ngModel</span>)]=<span class="hljs-string">"inputWord"</span> <span class="hljs-attr">placeholder</span>=<span class="hljs-string">"Enter a word"</span>&gt;</span>
    <span class="hljs-tag">&lt;<span class="hljs-name">button</span> (<span class="hljs-attr">click</span>)=<span class="hljs-string">"checkPalindrome()"</span>&gt;</span>Check<span class="hljs-tag">&lt;/<span class="hljs-name">button</span>&gt;</span>
    <span class="hljs-tag">&lt;<span class="hljs-name">p</span> *<span class="hljs-attr">ngIf</span>=<span class="hljs-string">"result"</span>&gt;</span>{{ result }}<span class="hljs-tag">&lt;/<span class="hljs-name">p</span>&gt;</span>
  <span class="hljs-tag">&lt;/<span class="hljs-name">div</span>&gt;</span>
</code></pre>
<ol start="21">
<li><p><strong>component name: temperatureconverter</strong></p>
<p>Convert temperature from Celsius to Fahrenheit and vice versa.</p>
</li>
</ol>
<pre><code class="lang-typescript"><span class="hljs-keyword">import</span> { Component } <span class="hljs-keyword">from</span> <span class="hljs-string">'@angular/core'</span>;

<span class="hljs-meta">@Component</span>({
  selector: <span class="hljs-string">'app-temperatureconverter'</span>,
  templateUrl: <span class="hljs-string">'./temperatureconverter.component.html'</span>,
  styleUrl: <span class="hljs-string">'./temperatureconverter.component.css'</span>
})
<span class="hljs-keyword">export</span> <span class="hljs-keyword">class</span> TemperatureconverterComponent {
  celsius: <span class="hljs-built_in">number</span> | <span class="hljs-literal">null</span> = <span class="hljs-literal">null</span>;
  fahrenheit: <span class="hljs-built_in">number</span> | <span class="hljs-literal">null</span> = <span class="hljs-literal">null</span>;

  convertToFahrenheit(): <span class="hljs-built_in">void</span> {
    <span class="hljs-keyword">if</span> (<span class="hljs-built_in">this</span>.celsius !== <span class="hljs-literal">null</span>) {
      <span class="hljs-built_in">this</span>.fahrenheit = (<span class="hljs-built_in">this</span>.celsius * <span class="hljs-number">9</span> / <span class="hljs-number">5</span>) + <span class="hljs-number">32</span>;
    }
  }

  convertToCelsius(): <span class="hljs-built_in">void</span> {
    <span class="hljs-keyword">if</span> (<span class="hljs-built_in">this</span>.fahrenheit !== <span class="hljs-literal">null</span>) {
      <span class="hljs-built_in">this</span>.celsius = (<span class="hljs-built_in">this</span>.fahrenheit - <span class="hljs-number">32</span>) * <span class="hljs-number">5</span> / <span class="hljs-number">9</span>;
    }
  }
}
</code></pre>
<pre><code class="lang-xml"><span class="hljs-tag">&lt;<span class="hljs-name">div</span>&gt;</span>
    <span class="hljs-tag">&lt;<span class="hljs-name">h3</span>&gt;</span>Temperature Converter<span class="hljs-tag">&lt;/<span class="hljs-name">h3</span>&gt;</span>
    <span class="hljs-tag">&lt;<span class="hljs-name">div</span>&gt;</span>
      <span class="hljs-tag">&lt;<span class="hljs-name">input</span> <span class="hljs-attr">type</span>=<span class="hljs-string">"number"</span> [(<span class="hljs-attr">ngModel</span>)]=<span class="hljs-string">"celsius"</span> <span class="hljs-attr">placeholder</span>=<span class="hljs-string">"Celsius"</span>&gt;</span>
      <span class="hljs-tag">&lt;<span class="hljs-name">button</span> (<span class="hljs-attr">click</span>)=<span class="hljs-string">"convertToFahrenheit()"</span>&gt;</span>Convert to Fahrenheit<span class="hljs-tag">&lt;/<span class="hljs-name">button</span>&gt;</span>
      <span class="hljs-tag">&lt;<span class="hljs-name">p</span> *<span class="hljs-attr">ngIf</span>=<span class="hljs-string">"fahrenheit !== null"</span>&gt;</span>{{ celsius }}°C = {{ fahrenheit.toFixed(2) }}°F<span class="hljs-tag">&lt;/<span class="hljs-name">p</span>&gt;</span>
    <span class="hljs-tag">&lt;/<span class="hljs-name">div</span>&gt;</span>

    <span class="hljs-tag">&lt;<span class="hljs-name">div</span>&gt;</span>
      <span class="hljs-tag">&lt;<span class="hljs-name">input</span> <span class="hljs-attr">type</span>=<span class="hljs-string">"number"</span> [(<span class="hljs-attr">ngModel</span>)]=<span class="hljs-string">"fahrenheit"</span> <span class="hljs-attr">placeholder</span>=<span class="hljs-string">"Fahrenheit"</span>&gt;</span>
      <span class="hljs-tag">&lt;<span class="hljs-name">button</span> (<span class="hljs-attr">click</span>)=<span class="hljs-string">"convertToCelsius()"</span>&gt;</span>Convert to Celsius<span class="hljs-tag">&lt;/<span class="hljs-name">button</span>&gt;</span>
      <span class="hljs-tag">&lt;<span class="hljs-name">p</span> *<span class="hljs-attr">ngIf</span>=<span class="hljs-string">"celsius !== null"</span>&gt;</span>{{ fahrenheit }}°F = {{ celsius.toFixed(2) }}°C<span class="hljs-tag">&lt;/<span class="hljs-name">p</span>&gt;</span>
    <span class="hljs-tag">&lt;/<span class="hljs-name">div</span>&gt;</span>
  <span class="hljs-tag">&lt;/<span class="hljs-name">div</span>&gt;</span>
</code></pre>
<ol start="22">
<li><p><strong>component name: shoppinglist</strong></p>
<p>Create a shopping list where users can add and remove items (use list data structure).</p>
</li>
</ol>
<pre><code class="lang-typescript"><span class="hljs-keyword">import</span> { Component } <span class="hljs-keyword">from</span> <span class="hljs-string">'@angular/core'</span>;

<span class="hljs-meta">@Component</span>({
  selector: <span class="hljs-string">'app-shoppinglist'</span>,
  templateUrl: <span class="hljs-string">'./shoppinglist.component.html'</span>,
  styleUrl: <span class="hljs-string">'./shoppinglist.component.css'</span>
})
<span class="hljs-keyword">export</span> <span class="hljs-keyword">class</span> ShoppinglistComponent {
  item: <span class="hljs-built_in">string</span> = <span class="hljs-string">''</span>;
  shoppingList: <span class="hljs-built_in">string</span>[] = [];

  addItem(): <span class="hljs-built_in">void</span> {
    <span class="hljs-keyword">if</span> (<span class="hljs-built_in">this</span>.item) {
      <span class="hljs-built_in">this</span>.shoppingList.push(<span class="hljs-built_in">this</span>.item);
      <span class="hljs-built_in">this</span>.item = <span class="hljs-string">''</span>;
    }
  }

  removeItem(index: <span class="hljs-built_in">number</span>): <span class="hljs-built_in">void</span> {
    <span class="hljs-built_in">this</span>.shoppingList.splice(index, <span class="hljs-number">1</span>);
  }
}
</code></pre>
<pre><code class="lang-xml"><span class="hljs-tag">&lt;<span class="hljs-name">div</span>&gt;</span>
    <span class="hljs-tag">&lt;<span class="hljs-name">h3</span>&gt;</span>Shopping List<span class="hljs-tag">&lt;/<span class="hljs-name">h3</span>&gt;</span>
    <span class="hljs-tag">&lt;<span class="hljs-name">input</span> <span class="hljs-attr">type</span>=<span class="hljs-string">"text"</span> [(<span class="hljs-attr">ngModel</span>)]=<span class="hljs-string">"item"</span> <span class="hljs-attr">placeholder</span>=<span class="hljs-string">"Add an item"</span>&gt;</span>
    <span class="hljs-tag">&lt;<span class="hljs-name">button</span> (<span class="hljs-attr">click</span>)=<span class="hljs-string">"addItem()"</span>&gt;</span>Add<span class="hljs-tag">&lt;/<span class="hljs-name">button</span>&gt;</span>

    <span class="hljs-tag">&lt;<span class="hljs-name">ul</span>&gt;</span>
      <span class="hljs-tag">&lt;<span class="hljs-name">li</span> *<span class="hljs-attr">ngFor</span>=<span class="hljs-string">"let listItem of shoppingList; let i = index"</span>&gt;</span>
        {{ listItem }} <span class="hljs-tag">&lt;<span class="hljs-name">button</span> (<span class="hljs-attr">click</span>)=<span class="hljs-string">"removeItem(i)"</span>&gt;</span>Remove<span class="hljs-tag">&lt;/<span class="hljs-name">button</span>&gt;</span>
      <span class="hljs-tag">&lt;/<span class="hljs-name">li</span>&gt;</span>
    <span class="hljs-tag">&lt;/<span class="hljs-name">ul</span>&gt;</span>
  <span class="hljs-tag">&lt;/<span class="hljs-name">div</span>&gt;</span>
</code></pre>
<ol start="23">
<li><p><strong>component name: factorialcalculator</strong></p>
<p>Input a number and calculate its factorial when a button is clicked.</p>
</li>
</ol>
<pre><code class="lang-typescript"><span class="hljs-keyword">import</span> { Component } <span class="hljs-keyword">from</span> <span class="hljs-string">'@angular/core'</span>;

<span class="hljs-meta">@Component</span>({
  selector: <span class="hljs-string">'app-factorialcalculator'</span>,
  templateUrl: <span class="hljs-string">'./factorialcalculator.component.html'</span>,
  styleUrl: <span class="hljs-string">'./factorialcalculator.component.css'</span>
})
<span class="hljs-keyword">export</span> <span class="hljs-keyword">class</span> FactorialcalculatorComponent {
  numberInput: <span class="hljs-built_in">number</span> | <span class="hljs-literal">null</span> = <span class="hljs-literal">null</span>;
  result: <span class="hljs-built_in">number</span> | <span class="hljs-literal">null</span> = <span class="hljs-literal">null</span>;

  calculateFactorial(): <span class="hljs-built_in">void</span> {
    <span class="hljs-keyword">if</span> (<span class="hljs-built_in">this</span>.numberInput !== <span class="hljs-literal">null</span> &amp;&amp; <span class="hljs-built_in">this</span>.numberInput &gt;= <span class="hljs-number">0</span>) {
      <span class="hljs-built_in">this</span>.result = <span class="hljs-built_in">this</span>.factorial(<span class="hljs-built_in">this</span>.numberInput);
    }
  }

  factorial(n: <span class="hljs-built_in">number</span>): <span class="hljs-built_in">number</span> {
    <span class="hljs-keyword">if</span> (n === <span class="hljs-number">0</span> || n === <span class="hljs-number">1</span>) {
      <span class="hljs-keyword">return</span> <span class="hljs-number">1</span>;
    }
    <span class="hljs-keyword">return</span> n * <span class="hljs-built_in">this</span>.factorial(n - <span class="hljs-number">1</span>);
  }
}
</code></pre>
<pre><code class="lang-xml"><span class="hljs-tag">&lt;<span class="hljs-name">div</span>&gt;</span>
    <span class="hljs-tag">&lt;<span class="hljs-name">h3</span>&gt;</span>Factorial Calculator<span class="hljs-tag">&lt;/<span class="hljs-name">h3</span>&gt;</span>
    <span class="hljs-tag">&lt;<span class="hljs-name">input</span> <span class="hljs-attr">type</span>=<span class="hljs-string">"number"</span> [(<span class="hljs-attr">ngModel</span>)]=<span class="hljs-string">"numberInput"</span> <span class="hljs-attr">placeholder</span>=<span class="hljs-string">"Enter a number"</span>&gt;</span>
    <span class="hljs-tag">&lt;<span class="hljs-name">button</span> (<span class="hljs-attr">click</span>)=<span class="hljs-string">"calculateFactorial()"</span>&gt;</span>Calculate<span class="hljs-tag">&lt;/<span class="hljs-name">button</span>&gt;</span>
    <span class="hljs-tag">&lt;<span class="hljs-name">p</span> *<span class="hljs-attr">ngIf</span>=<span class="hljs-string">"result !== null"</span>&gt;</span>Factorial of {{ numberInput }} = {{ result }}<span class="hljs-tag">&lt;/<span class="hljs-name">p</span>&gt;</span>
  <span class="hljs-tag">&lt;/<span class="hljs-name">div</span>&gt;</span>
</code></pre>
<ol start="24">
<li><p><strong>component name: todomanager</strong></p>
<p>Create a simple to-do list where users can add and remove tasks (use list data structure).</p>
</li>
</ol>
<pre><code class="lang-typescript"><span class="hljs-keyword">import</span> { Component } <span class="hljs-keyword">from</span> <span class="hljs-string">'@angular/core'</span>;

<span class="hljs-meta">@Component</span>({
  selector: <span class="hljs-string">'app-todomanager'</span>,
  templateUrl: <span class="hljs-string">'./todomanager.component.html'</span>,
  styleUrl: <span class="hljs-string">'./todomanager.component.css'</span>
})
<span class="hljs-keyword">export</span> <span class="hljs-keyword">class</span> TodomanagerComponent {
  task: <span class="hljs-built_in">string</span> = <span class="hljs-string">''</span>;
  todoList: <span class="hljs-built_in">string</span>[] = [];

  addTask(): <span class="hljs-built_in">void</span> {
    <span class="hljs-keyword">if</span> (<span class="hljs-built_in">this</span>.task) {
      <span class="hljs-built_in">this</span>.todoList.push(<span class="hljs-built_in">this</span>.task);
      <span class="hljs-built_in">this</span>.task = <span class="hljs-string">''</span>;
    }
  }

  removeTask(index: <span class="hljs-built_in">number</span>): <span class="hljs-built_in">void</span> {
    <span class="hljs-built_in">this</span>.todoList.splice(index, <span class="hljs-number">1</span>);
  }
}
</code></pre>
<pre><code class="lang-xml"><span class="hljs-tag">&lt;<span class="hljs-name">div</span>&gt;</span>
    <span class="hljs-tag">&lt;<span class="hljs-name">h3</span>&gt;</span>Todo Manager<span class="hljs-tag">&lt;/<span class="hljs-name">h3</span>&gt;</span>
    <span class="hljs-tag">&lt;<span class="hljs-name">input</span> <span class="hljs-attr">type</span>=<span class="hljs-string">"text"</span> [(<span class="hljs-attr">ngModel</span>)]=<span class="hljs-string">"task"</span> <span class="hljs-attr">placeholder</span>=<span class="hljs-string">"Add a task"</span>&gt;</span>
    <span class="hljs-tag">&lt;<span class="hljs-name">button</span> (<span class="hljs-attr">click</span>)=<span class="hljs-string">"addTask()"</span>&gt;</span>Add Task<span class="hljs-tag">&lt;/<span class="hljs-name">button</span>&gt;</span>

    <span class="hljs-tag">&lt;<span class="hljs-name">ul</span>&gt;</span>
      <span class="hljs-tag">&lt;<span class="hljs-name">li</span> *<span class="hljs-attr">ngFor</span>=<span class="hljs-string">"let taskItem of todoList; let i = index"</span>&gt;</span>
        {{ taskItem }} <span class="hljs-tag">&lt;<span class="hljs-name">button</span> (<span class="hljs-attr">click</span>)=<span class="hljs-string">"removeTask(i)"</span>&gt;</span>Remove<span class="hljs-tag">&lt;/<span class="hljs-name">button</span>&gt;</span>
      <span class="hljs-tag">&lt;/<span class="hljs-name">li</span>&gt;</span>
    <span class="hljs-tag">&lt;/<span class="hljs-name">ul</span>&gt;</span>
  <span class="hljs-tag">&lt;/<span class="hljs-name">div</span>&gt;</span>
</code></pre>
<ol start="25">
<li><p><strong>component name: guessnumbergame</strong></p>
<p>Create a number guessing game where the user inputs guesses.</p>
</li>
</ol>
<pre><code class="lang-typescript"><span class="hljs-keyword">import</span> { Component } <span class="hljs-keyword">from</span> <span class="hljs-string">'@angular/core'</span>;

<span class="hljs-meta">@Component</span>({
  selector: <span class="hljs-string">'app-guessnumbergame'</span>,
  templateUrl: <span class="hljs-string">'./guessnumbergame.component.html'</span>,
  styleUrl: <span class="hljs-string">'./guessnumbergame.component.css'</span>
})
<span class="hljs-keyword">export</span> <span class="hljs-keyword">class</span> GuessnumbergameComponent {
  randomNumber: <span class="hljs-built_in">number</span> = <span class="hljs-built_in">Math</span>.floor(<span class="hljs-built_in">Math</span>.random() * <span class="hljs-number">100</span>) + <span class="hljs-number">1</span>;
  guess: <span class="hljs-built_in">number</span> | <span class="hljs-literal">null</span> = <span class="hljs-literal">null</span>;
  message: <span class="hljs-built_in">string</span> | <span class="hljs-literal">null</span> = <span class="hljs-literal">null</span>;

  checkGuess(): <span class="hljs-built_in">void</span> {
    <span class="hljs-keyword">if</span> (<span class="hljs-built_in">this</span>.guess !== <span class="hljs-literal">null</span>) {
      <span class="hljs-keyword">if</span> (<span class="hljs-built_in">this</span>.guess &gt; <span class="hljs-built_in">this</span>.randomNumber) {
        <span class="hljs-built_in">this</span>.message = <span class="hljs-string">'Too high!'</span>;
      } <span class="hljs-keyword">else</span> <span class="hljs-keyword">if</span> (<span class="hljs-built_in">this</span>.guess &lt; <span class="hljs-built_in">this</span>.randomNumber) {
        <span class="hljs-built_in">this</span>.message = <span class="hljs-string">'Too low!'</span>;
      } <span class="hljs-keyword">else</span> {
        <span class="hljs-built_in">this</span>.message = <span class="hljs-string">'Correct! You guessed the number!'</span>;
      }
    }
  }

  resetGame(): <span class="hljs-built_in">void</span> {
    <span class="hljs-built_in">this</span>.randomNumber = <span class="hljs-built_in">Math</span>.floor(<span class="hljs-built_in">Math</span>.random() * <span class="hljs-number">100</span>) + <span class="hljs-number">1</span>;
    <span class="hljs-built_in">this</span>.guess = <span class="hljs-literal">null</span>;
    <span class="hljs-built_in">this</span>.message = <span class="hljs-literal">null</span>;
  }
}
</code></pre>
<pre><code class="lang-xml"><span class="hljs-tag">&lt;<span class="hljs-name">div</span>&gt;</span>
    <span class="hljs-tag">&lt;<span class="hljs-name">h3</span>&gt;</span>Guess the Number Game<span class="hljs-tag">&lt;/<span class="hljs-name">h3</span>&gt;</span>
    <span class="hljs-tag">&lt;<span class="hljs-name">input</span> <span class="hljs-attr">type</span>=<span class="hljs-string">"number"</span> [(<span class="hljs-attr">ngModel</span>)]=<span class="hljs-string">"guess"</span> <span class="hljs-attr">placeholder</span>=<span class="hljs-string">"Enter your guess"</span>&gt;</span>
    <span class="hljs-tag">&lt;<span class="hljs-name">button</span> (<span class="hljs-attr">click</span>)=<span class="hljs-string">"checkGuess()"</span>&gt;</span>Check Guess<span class="hljs-tag">&lt;/<span class="hljs-name">button</span>&gt;</span>
    <span class="hljs-tag">&lt;<span class="hljs-name">p</span> *<span class="hljs-attr">ngIf</span>=<span class="hljs-string">"message"</span>&gt;</span>{{ message }}<span class="hljs-tag">&lt;/<span class="hljs-name">p</span>&gt;</span>
    <span class="hljs-tag">&lt;<span class="hljs-name">button</span> (<span class="hljs-attr">click</span>)=<span class="hljs-string">"resetGame()"</span>&gt;</span>Reset Game<span class="hljs-tag">&lt;/<span class="hljs-name">button</span>&gt;</span>
  <span class="hljs-tag">&lt;/<span class="hljs-name">div</span>&gt;</span>
</code></pre>
<ol start="26">
<li><p><strong>component name: wordcounter</strong></p>
<p>Input a string and count the number of words in it.</p>
</li>
</ol>
<pre><code class="lang-typescript"><span class="hljs-keyword">import</span> { Component } <span class="hljs-keyword">from</span> <span class="hljs-string">'@angular/core'</span>;

<span class="hljs-meta">@Component</span>({
  selector: <span class="hljs-string">'app-wordcounter'</span>,
  templateUrl: <span class="hljs-string">'./wordcounter.component.html'</span>,
  styleUrl: <span class="hljs-string">'./wordcounter.component.css'</span>
})
<span class="hljs-keyword">export</span> <span class="hljs-keyword">class</span> WordcounterComponent {
  inputText: <span class="hljs-built_in">string</span> = <span class="hljs-string">''</span>;
  wordCount: <span class="hljs-built_in">number</span> = <span class="hljs-number">0</span>;

  countWords() {
    <span class="hljs-keyword">if</span> (<span class="hljs-built_in">this</span>.inputText.trim().length &gt; <span class="hljs-number">0</span>) {
      <span class="hljs-built_in">this</span>.wordCount = <span class="hljs-built_in">this</span>.inputText.trim().split(<span class="hljs-regexp">/\s+/</span>).length;
    } <span class="hljs-keyword">else</span> {
      <span class="hljs-built_in">this</span>.wordCount = <span class="hljs-number">0</span>;
    }
  }
}
</code></pre>
<pre><code class="lang-xml"><span class="hljs-tag">&lt;<span class="hljs-name">div</span>&gt;</span>
    <span class="hljs-tag">&lt;<span class="hljs-name">h2</span>&gt;</span>Word Counter<span class="hljs-tag">&lt;/<span class="hljs-name">h2</span>&gt;</span>
    <span class="hljs-tag">&lt;<span class="hljs-name">textarea</span> [(<span class="hljs-attr">ngModel</span>)]=<span class="hljs-string">"inputText"</span> <span class="hljs-attr">rows</span>=<span class="hljs-string">"4"</span> <span class="hljs-attr">placeholder</span>=<span class="hljs-string">"Enter your text here"</span>&gt;</span><span class="hljs-tag">&lt;/<span class="hljs-name">textarea</span>&gt;</span>
    <span class="hljs-tag">&lt;<span class="hljs-name">button</span> (<span class="hljs-attr">click</span>)=<span class="hljs-string">"countWords()"</span>&gt;</span>Count Words<span class="hljs-tag">&lt;/<span class="hljs-name">button</span>&gt;</span>
    <span class="hljs-tag">&lt;<span class="hljs-name">p</span>&gt;</span>Word count: {{ wordCount }}<span class="hljs-tag">&lt;/<span class="hljs-name">p</span>&gt;</span>
  <span class="hljs-tag">&lt;/<span class="hljs-name">div</span>&gt;</span>
</code></pre>
<ol start="27">
<li><p><strong>component name: randomnumbergenerator</strong></p>
<p>Generate and display a random number between a specified range when a button is clicked.</p>
</li>
</ol>
<pre><code class="lang-typescript"><span class="hljs-keyword">import</span> { Component } <span class="hljs-keyword">from</span> <span class="hljs-string">'@angular/core'</span>;

<span class="hljs-meta">@Component</span>({
  selector: <span class="hljs-string">'app-randomnumbergenerator'</span>,
  templateUrl: <span class="hljs-string">'./randomnumbergenerator.component.html'</span>,
  styleUrl: <span class="hljs-string">'./randomnumbergenerator.component.css'</span>
})
<span class="hljs-keyword">export</span> <span class="hljs-keyword">class</span> RandomnumbergeneratorComponent {
  min: <span class="hljs-built_in">number</span> = <span class="hljs-number">0</span>;
  max: <span class="hljs-built_in">number</span> = <span class="hljs-number">100</span>;
  randomNumber: <span class="hljs-built_in">number</span> | <span class="hljs-literal">null</span> = <span class="hljs-literal">null</span>;

  generateRandomNumber() {
    <span class="hljs-built_in">this</span>.randomNumber = <span class="hljs-built_in">Math</span>.floor(<span class="hljs-built_in">Math</span>.random() * (<span class="hljs-built_in">this</span>.max - <span class="hljs-built_in">this</span>.min + <span class="hljs-number">1</span>)) + <span class="hljs-built_in">this</span>.min;
  }
}
</code></pre>
<pre><code class="lang-xml"><span class="hljs-tag">&lt;<span class="hljs-name">div</span>&gt;</span>
    <span class="hljs-tag">&lt;<span class="hljs-name">h2</span>&gt;</span>Random Number Generator<span class="hljs-tag">&lt;/<span class="hljs-name">h2</span>&gt;</span>
    <span class="hljs-tag">&lt;<span class="hljs-name">input</span> <span class="hljs-attr">type</span>=<span class="hljs-string">"number"</span> [(<span class="hljs-attr">ngModel</span>)]=<span class="hljs-string">"min"</span> <span class="hljs-attr">placeholder</span>=<span class="hljs-string">"Min"</span>&gt;</span>
    <span class="hljs-tag">&lt;<span class="hljs-name">input</span> <span class="hljs-attr">type</span>=<span class="hljs-string">"number"</span> [(<span class="hljs-attr">ngModel</span>)]=<span class="hljs-string">"max"</span> <span class="hljs-attr">placeholder</span>=<span class="hljs-string">"Max"</span>&gt;</span>
    <span class="hljs-tag">&lt;<span class="hljs-name">button</span> (<span class="hljs-attr">click</span>)=<span class="hljs-string">"generateRandomNumber()"</span>&gt;</span>Generate Random Number<span class="hljs-tag">&lt;/<span class="hljs-name">button</span>&gt;</span>
    <span class="hljs-tag">&lt;<span class="hljs-name">p</span>&gt;</span>Random number: {{ randomNumber }}<span class="hljs-tag">&lt;/<span class="hljs-name">p</span>&gt;</span>
  <span class="hljs-tag">&lt;/<span class="hljs-name">div</span>&gt;</span>
</code></pre>
<ol start="28">
<li><p><strong>component name: multiplicationchecker</strong></p>
<p>Check if a number is a multiple of another number.</p>
</li>
</ol>
<pre><code class="lang-typescript"><span class="hljs-keyword">import</span> { Component } <span class="hljs-keyword">from</span> <span class="hljs-string">'@angular/core'</span>;

<span class="hljs-meta">@Component</span>({
  selector: <span class="hljs-string">'app-multiplicationchecker'</span>,
  templateUrl: <span class="hljs-string">'./multiplicationchecker.component.html'</span>,
  styleUrl: <span class="hljs-string">'./multiplicationchecker.component.css'</span>
})
<span class="hljs-keyword">export</span> <span class="hljs-keyword">class</span> MultiplicationcheckerComponent {
  number1: <span class="hljs-built_in">number</span> = <span class="hljs-number">0</span>;
  number2: <span class="hljs-built_in">number</span> = <span class="hljs-number">0</span>;
  resultMessage: <span class="hljs-built_in">string</span> = <span class="hljs-string">''</span>;

  checkMultiplication(): <span class="hljs-built_in">void</span> {
    <span class="hljs-keyword">if</span> (<span class="hljs-built_in">this</span>.number2 !== <span class="hljs-number">0</span> &amp;&amp; <span class="hljs-built_in">this</span>.number1 % <span class="hljs-built_in">this</span>.number2 === <span class="hljs-number">0</span>) {
      <span class="hljs-built_in">this</span>.resultMessage = <span class="hljs-string">`<span class="hljs-subst">${<span class="hljs-built_in">this</span>.number1}</span> is a multiple of <span class="hljs-subst">${<span class="hljs-built_in">this</span>.number2}</span>.`</span>;
    } <span class="hljs-keyword">else</span> {
      <span class="hljs-built_in">this</span>.resultMessage = <span class="hljs-string">`<span class="hljs-subst">${<span class="hljs-built_in">this</span>.number1}</span> is not a multiple of <span class="hljs-subst">${<span class="hljs-built_in">this</span>.number2}</span>.`</span>;
    }
  }
}
</code></pre>
<pre><code class="lang-xml"><span class="hljs-tag">&lt;<span class="hljs-name">div</span> <span class="hljs-attr">class</span>=<span class="hljs-string">"multiplication-checker"</span>&gt;</span>
    <span class="hljs-tag">&lt;<span class="hljs-name">h2</span>&gt;</span>Multiplication Checker<span class="hljs-tag">&lt;/<span class="hljs-name">h2</span>&gt;</span>

    <span class="hljs-tag">&lt;<span class="hljs-name">div</span>&gt;</span>
      <span class="hljs-tag">&lt;<span class="hljs-name">label</span> <span class="hljs-attr">for</span>=<span class="hljs-string">"number1"</span>&gt;</span>Enter a number:<span class="hljs-tag">&lt;/<span class="hljs-name">label</span>&gt;</span>
      <span class="hljs-tag">&lt;<span class="hljs-name">input</span> <span class="hljs-attr">type</span>=<span class="hljs-string">"number"</span> [(<span class="hljs-attr">ngModel</span>)]=<span class="hljs-string">"number1"</span> <span class="hljs-attr">id</span>=<span class="hljs-string">"number1"</span>&gt;</span>
    <span class="hljs-tag">&lt;/<span class="hljs-name">div</span>&gt;</span>

    <span class="hljs-tag">&lt;<span class="hljs-name">div</span>&gt;</span>
      <span class="hljs-tag">&lt;<span class="hljs-name">label</span> <span class="hljs-attr">for</span>=<span class="hljs-string">"number2"</span>&gt;</span>Enter another number:<span class="hljs-tag">&lt;/<span class="hljs-name">label</span>&gt;</span>
      <span class="hljs-tag">&lt;<span class="hljs-name">input</span> <span class="hljs-attr">type</span>=<span class="hljs-string">"number"</span> [(<span class="hljs-attr">ngModel</span>)]=<span class="hljs-string">"number2"</span> <span class="hljs-attr">id</span>=<span class="hljs-string">"number2"</span>&gt;</span>
    <span class="hljs-tag">&lt;/<span class="hljs-name">div</span>&gt;</span>

    <span class="hljs-tag">&lt;<span class="hljs-name">button</span> (<span class="hljs-attr">click</span>)=<span class="hljs-string">"checkMultiplication()"</span>&gt;</span>Check Multiplication<span class="hljs-tag">&lt;/<span class="hljs-name">button</span>&gt;</span>

    <span class="hljs-tag">&lt;<span class="hljs-name">p</span>&gt;</span>{{ resultMessage }}<span class="hljs-tag">&lt;/<span class="hljs-name">p</span>&gt;</span>
  <span class="hljs-tag">&lt;/<span class="hljs-name">div</span>&gt;</span>
</code></pre>
<ol start="29">
<li><p><strong>component name: uppercaseconverter</strong></p>
<p>Input a string and convert it to uppercase when the button is clicked.</p>
</li>
</ol>
<pre><code class="lang-typescript"><span class="hljs-keyword">import</span> { Component } <span class="hljs-keyword">from</span> <span class="hljs-string">'@angular/core'</span>;

<span class="hljs-meta">@Component</span>({
  selector: <span class="hljs-string">'app-uppercaseconverter'</span>,
  templateUrl: <span class="hljs-string">'./uppercaseconverter.component.html'</span>,
  styleUrl: <span class="hljs-string">'./uppercaseconverter.component.css'</span>
})
<span class="hljs-keyword">export</span> <span class="hljs-keyword">class</span> UppercaseconverterComponent {
  inputText: <span class="hljs-built_in">string</span> = <span class="hljs-string">''</span>;
  convertedText: <span class="hljs-built_in">string</span> = <span class="hljs-string">''</span>;

  convertToUppercase() {
    <span class="hljs-built_in">this</span>.convertedText = <span class="hljs-built_in">this</span>.inputText.toUpperCase();
  }
}
</code></pre>
<pre><code class="lang-xml"><span class="hljs-tag">&lt;<span class="hljs-name">div</span>&gt;</span>
    <span class="hljs-tag">&lt;<span class="hljs-name">h2</span>&gt;</span>Uppercase Converter<span class="hljs-tag">&lt;/<span class="hljs-name">h2</span>&gt;</span>
    <span class="hljs-tag">&lt;<span class="hljs-name">input</span> <span class="hljs-attr">type</span>=<span class="hljs-string">"text"</span> [(<span class="hljs-attr">ngModel</span>)]=<span class="hljs-string">"inputText"</span> <span class="hljs-attr">placeholder</span>=<span class="hljs-string">"Enter text"</span>&gt;</span>
    <span class="hljs-tag">&lt;<span class="hljs-name">button</span> (<span class="hljs-attr">click</span>)=<span class="hljs-string">"convertToUppercase()"</span>&gt;</span>Convert to Uppercase<span class="hljs-tag">&lt;/<span class="hljs-name">button</span>&gt;</span>
    <span class="hljs-tag">&lt;<span class="hljs-name">p</span>&gt;</span>Uppercase text: {{ convertedText }}<span class="hljs-tag">&lt;/<span class="hljs-name">p</span>&gt;</span>
  <span class="hljs-tag">&lt;/<span class="hljs-name">div</span>&gt;</span>
</code></pre>
<ol start="30">
<li><p><strong>component name: wordshuffler</strong></p>
<p>Input a word and shuffle its letters randomly.</p>
</li>
</ol>
<pre><code class="lang-typescript"><span class="hljs-keyword">import</span> { Component } <span class="hljs-keyword">from</span> <span class="hljs-string">'@angular/core'</span>;

<span class="hljs-meta">@Component</span>({
  selector: <span class="hljs-string">'app-wordshuffler'</span>,
  templateUrl: <span class="hljs-string">'./wordshuffler.component.html'</span>,
  styleUrl: <span class="hljs-string">'./wordshuffler.component.css'</span>
})
<span class="hljs-keyword">export</span> <span class="hljs-keyword">class</span> WordshufflerComponent {
  inputText: <span class="hljs-built_in">string</span> = <span class="hljs-string">''</span>;
  shuffledText: <span class="hljs-built_in">string</span> = <span class="hljs-string">''</span>;

  shuffleWord() {
    <span class="hljs-built_in">this</span>.shuffledText = <span class="hljs-built_in">this</span>.inputText.split(<span class="hljs-string">''</span>).sort(<span class="hljs-function">() =&gt;</span> <span class="hljs-number">0.5</span> - <span class="hljs-built_in">Math</span>.random()).join(<span class="hljs-string">''</span>);
  }
}
</code></pre>
<pre><code class="lang-xml"><span class="hljs-tag">&lt;<span class="hljs-name">div</span>&gt;</span>
    <span class="hljs-tag">&lt;<span class="hljs-name">h2</span>&gt;</span>Word Shuffler<span class="hljs-tag">&lt;/<span class="hljs-name">h2</span>&gt;</span>
    <span class="hljs-tag">&lt;<span class="hljs-name">input</span> <span class="hljs-attr">type</span>=<span class="hljs-string">"text"</span> [(<span class="hljs-attr">ngModel</span>)]=<span class="hljs-string">"inputText"</span> <span class="hljs-attr">placeholder</span>=<span class="hljs-string">"Enter word"</span>&gt;</span>
    <span class="hljs-tag">&lt;<span class="hljs-name">button</span> (<span class="hljs-attr">click</span>)=<span class="hljs-string">"shuffleWord()"</span>&gt;</span>Shuffle Word<span class="hljs-tag">&lt;/<span class="hljs-name">button</span>&gt;</span>
    <span class="hljs-tag">&lt;<span class="hljs-name">p</span>&gt;</span>Shuffled word: {{ shuffledText }}<span class="hljs-tag">&lt;/<span class="hljs-name">p</span>&gt;</span>
  <span class="hljs-tag">&lt;/<span class="hljs-name">div</span>&gt;</span>
</code></pre>
<ol start="31">
<li><p><strong>component name: bmisolver</strong></p>
<p>Input height and weight, calculate and display the BMI.</p>
</li>
</ol>
<pre><code class="lang-typescript"><span class="hljs-keyword">import</span> { Component } <span class="hljs-keyword">from</span> <span class="hljs-string">'@angular/core'</span>;

<span class="hljs-meta">@Component</span>({
    selector: <span class="hljs-string">'app-bmisolver'</span>,
    templateUrl: <span class="hljs-string">'./bmisolver.component.html'</span>,
    styleUrl: <span class="hljs-string">'./bmisolver.component.css'</span>
})
<span class="hljs-keyword">export</span> <span class="hljs-keyword">class</span> BmisolverComponent {
    height: <span class="hljs-built_in">number</span> | <span class="hljs-literal">null</span> = <span class="hljs-literal">null</span>;
    weight: <span class="hljs-built_in">number</span> | <span class="hljs-literal">null</span> = <span class="hljs-literal">null</span>;
    bmi: <span class="hljs-built_in">number</span> | <span class="hljs-literal">null</span> = <span class="hljs-literal">null</span>;
    category: <span class="hljs-built_in">string</span> = <span class="hljs-string">''</span>;

    calculateBMI(): <span class="hljs-built_in">void</span> {
        <span class="hljs-keyword">if</span> (<span class="hljs-built_in">this</span>.height &amp;&amp; <span class="hljs-built_in">this</span>.weight) {
            <span class="hljs-built_in">this</span>.bmi = <span class="hljs-built_in">this</span>.weight / (<span class="hljs-built_in">this</span>.height = <span class="hljs-built_in">this</span>.height);
            <span class="hljs-built_in">this</span>.setBMICategory();
        } <span class="hljs-keyword">else</span> {
            <span class="hljs-built_in">this</span>.bmi = <span class="hljs-literal">null</span>;
            <span class="hljs-built_in">this</span>.category = <span class="hljs-string">''</span>;
        }
    }

    setBMICategory(): <span class="hljs-built_in">void</span> {
        <span class="hljs-keyword">if</span> (<span class="hljs-built_in">this</span>.bmi) {
            <span class="hljs-keyword">if</span>(<span class="hljs-built_in">this</span>.bmi &lt; <span class="hljs-number">18.5</span>) {
                <span class="hljs-built_in">this</span>.category = <span class="hljs-string">'Underweight'</span>;
            } <span class="hljs-keyword">else</span> <span class="hljs-keyword">if</span> (<span class="hljs-built_in">this</span>.bmi &gt;= <span class="hljs-number">18.5</span> &amp;&amp; <span class="hljs-built_in">this</span>.bmi &lt; <span class="hljs-number">24.9</span>) {
                <span class="hljs-built_in">this</span>.category = <span class="hljs-string">'Normal weight'</span>;
            } <span class="hljs-keyword">else</span> <span class="hljs-keyword">if</span> (<span class="hljs-built_in">this</span>.bmi &gt;= <span class="hljs-number">25</span> &amp;&amp; <span class="hljs-built_in">this</span>.bmi &lt; <span class="hljs-number">29.9</span>) {
                <span class="hljs-built_in">this</span>.category = <span class="hljs-string">'Overweight'</span>;
            } <span class="hljs-keyword">else</span> {
                <span class="hljs-built_in">this</span>.category = <span class="hljs-string">'Obese'</span>;
            }
        }
    }
}
</code></pre>
<pre><code class="lang-xml"><span class="hljs-tag">&lt;<span class="hljs-name">div</span> <span class="hljs-attr">class</span>=<span class="hljs-string">"bmi-solver"</span>&gt;</span>
    <span class="hljs-tag">&lt;<span class="hljs-name">h2</span>&gt;</span>BMI Calculator<span class="hljs-tag">&lt;/<span class="hljs-name">h2</span>&gt;</span>

    <span class="hljs-tag">&lt;<span class="hljs-name">label</span> <span class="hljs-attr">for</span>=<span class="hljs-string">"height"</span>&gt;</span>Height (cm):<span class="hljs-tag">&lt;/<span class="hljs-name">label</span>&gt;</span>
    <span class="hljs-tag">&lt;<span class="hljs-name">input</span> <span class="hljs-attr">type</span>=<span class="hljs-string">"number"</span> [(<span class="hljs-attr">ngModel</span>)]=<span class="hljs-string">"height"</span> <span class="hljs-attr">id</span>=<span class="hljs-string">"height"</span>&gt;</span>

    <span class="hljs-tag">&lt;<span class="hljs-name">label</span> <span class="hljs-attr">for</span>=<span class="hljs-string">"weight"</span>&gt;</span>Weight (kg):<span class="hljs-tag">&lt;/<span class="hljs-name">label</span>&gt;</span>
    <span class="hljs-tag">&lt;<span class="hljs-name">input</span> <span class="hljs-attr">type</span>=<span class="hljs-string">"number"</span> [(<span class="hljs-attr">ngModel</span>)]=<span class="hljs-string">"weight"</span> <span class="hljs-attr">id</span>=<span class="hljs-string">"weight"</span>&gt;</span>

    <span class="hljs-tag">&lt;<span class="hljs-name">button</span> (<span class="hljs-attr">click</span>)=<span class="hljs-string">"calculateBMI()"</span>&gt;</span>Calculate BMI<span class="hljs-tag">&lt;/<span class="hljs-name">button</span>&gt;</span>

    <span class="hljs-tag">&lt;<span class="hljs-name">p</span> *<span class="hljs-attr">ngIf</span>=<span class="hljs-string">"bmi"</span>&gt;</span>Your BMI is: {{ bmi.toFixed(2) }}<span class="hljs-tag">&lt;/<span class="hljs-name">p</span>&gt;</span>
    <span class="hljs-tag">&lt;<span class="hljs-name">p</span> *<span class="hljs-attr">ngIf</span>=<span class="hljs-string">"!bmi &amp;&amp; (height &lt;= 0 || weight &lt;= 0)"</span>&gt;</span>Please enter valid values for height and weight.<span class="hljs-tag">&lt;/<span class="hljs-name">p</span>&gt;</span>
  <span class="hljs-tag">&lt;/<span class="hljs-name">div</span>&gt;</span>
</code></pre>
<ol start="32">
<li><p><strong>component name: usernamevalidator</strong></p>
<p>Input a username and check its validity based on predefined rules (Create a variable).</p>
</li>
</ol>
<pre><code class="lang-typescript"><span class="hljs-keyword">import</span> { Component } <span class="hljs-keyword">from</span> <span class="hljs-string">'@angular/core'</span>;

<span class="hljs-meta">@Component</span>({
  selector: <span class="hljs-string">'app-usernamevalidator'</span>,
  templateUrl: <span class="hljs-string">'./usernamevalidator.component.html'</span>,
  styleUrl: <span class="hljs-string">'./usernamevalidator.component.css'</span>
})
<span class="hljs-keyword">export</span> <span class="hljs-keyword">class</span> UsernamevalidatorComponent {
  username: <span class="hljs-built_in">string</span> = <span class="hljs-string">''</span>;
  isValid: <span class="hljs-built_in">boolean</span> | <span class="hljs-literal">null</span> = <span class="hljs-literal">null</span>;

  validateUsername(): <span class="hljs-built_in">void</span> {
    <span class="hljs-keyword">const</span> minLength = <span class="hljs-number">5</span>;
    <span class="hljs-keyword">const</span> hasNumber = <span class="hljs-regexp">/\d/</span>;
    <span class="hljs-built_in">this</span>.isValid = <span class="hljs-built_in">this</span>.username.length &gt;= minLength &amp;&amp; hasNumber.test(<span class="hljs-built_in">this</span>.username);
  }
}
</code></pre>
<pre><code class="lang-xml"><span class="hljs-tag">&lt;<span class="hljs-name">div</span> <span class="hljs-attr">class</span>=<span class="hljs-string">"username-validator"</span>&gt;</span>
    <span class="hljs-tag">&lt;<span class="hljs-name">h2</span>&gt;</span>Username Validator<span class="hljs-tag">&lt;/<span class="hljs-name">h2</span>&gt;</span>

    <span class="hljs-tag">&lt;<span class="hljs-name">label</span> <span class="hljs-attr">for</span>=<span class="hljs-string">"username"</span>&gt;</span>Enter a username:<span class="hljs-tag">&lt;/<span class="hljs-name">label</span>&gt;</span>
    <span class="hljs-tag">&lt;<span class="hljs-name">input</span> <span class="hljs-attr">type</span>=<span class="hljs-string">"text"</span> [(<span class="hljs-attr">ngModel</span>)]=<span class="hljs-string">"username"</span> <span class="hljs-attr">id</span>=<span class="hljs-string">"username"</span>&gt;</span>

    <span class="hljs-tag">&lt;<span class="hljs-name">button</span> (<span class="hljs-attr">click</span>)=<span class="hljs-string">"validateUsername()"</span>&gt;</span>Validate Username<span class="hljs-tag">&lt;/<span class="hljs-name">button</span>&gt;</span>

    <span class="hljs-tag">&lt;<span class="hljs-name">p</span> *<span class="hljs-attr">ngIf</span>=<span class="hljs-string">"isValid === true"</span>&gt;</span>Valid Username<span class="hljs-tag">&lt;/<span class="hljs-name">p</span>&gt;</span>
    <span class="hljs-tag">&lt;<span class="hljs-name">p</span> *<span class="hljs-attr">ngIf</span>=<span class="hljs-string">"isValid === false"</span>&gt;</span>Invalid Username: Must be at least 5 characters long and contain a number.<span class="hljs-tag">&lt;/<span class="hljs-name">p</span>&gt;</span>
  <span class="hljs-tag">&lt;/<span class="hljs-name">div</span>&gt;</span>
</code></pre>
<ol start="33">
<li><p><strong>component name: interestcalculator</strong></p>
<p>Input principal, rate, and time, and calculate simple interest.</p>
</li>
</ol>
<pre><code class="lang-typescript"><span class="hljs-keyword">import</span> { Component } <span class="hljs-keyword">from</span> <span class="hljs-string">'@angular/core'</span>;

<span class="hljs-meta">@Component</span>({
  selector: <span class="hljs-string">'app-interestcalculator'</span>,
  templateUrl: <span class="hljs-string">'./interestcalculator.component.html'</span>,
  styleUrl: <span class="hljs-string">'./interestcalculator.component.css'</span>
})
<span class="hljs-keyword">export</span> <span class="hljs-keyword">class</span> InterestcalculatorComponent {
  principal: <span class="hljs-built_in">number</span> = <span class="hljs-number">0</span>;
  rate: <span class="hljs-built_in">number</span> = <span class="hljs-number">0</span>;
  time: <span class="hljs-built_in">number</span> = <span class="hljs-number">0</span>;
  interest: <span class="hljs-built_in">number</span> | <span class="hljs-literal">null</span> = <span class="hljs-literal">null</span>;

  calculateInterest(): <span class="hljs-built_in">void</span> {
    <span class="hljs-built_in">this</span>.interest = (<span class="hljs-built_in">this</span>.principal * <span class="hljs-built_in">this</span>.rate * <span class="hljs-built_in">this</span>.time) / <span class="hljs-number">100</span>;
  }
}
</code></pre>
<pre><code class="lang-xml"><span class="hljs-tag">&lt;<span class="hljs-name">div</span> <span class="hljs-attr">class</span>=<span class="hljs-string">"interest-calculator"</span>&gt;</span>
    <span class="hljs-tag">&lt;<span class="hljs-name">h2</span>&gt;</span>Simple Interest Calculator<span class="hljs-tag">&lt;/<span class="hljs-name">h2</span>&gt;</span>

    <span class="hljs-tag">&lt;<span class="hljs-name">label</span> <span class="hljs-attr">for</span>=<span class="hljs-string">"principal"</span>&gt;</span>Principal:<span class="hljs-tag">&lt;/<span class="hljs-name">label</span>&gt;</span>
    <span class="hljs-tag">&lt;<span class="hljs-name">input</span> <span class="hljs-attr">type</span>=<span class="hljs-string">"number"</span> [(<span class="hljs-attr">ngModel</span>)]=<span class="hljs-string">"principal"</span> <span class="hljs-attr">id</span>=<span class="hljs-string">"principal"</span>&gt;</span>

    <span class="hljs-tag">&lt;<span class="hljs-name">label</span> <span class="hljs-attr">for</span>=<span class="hljs-string">"rate"</span>&gt;</span>Rate (%):<span class="hljs-tag">&lt;/<span class="hljs-name">label</span>&gt;</span>
    <span class="hljs-tag">&lt;<span class="hljs-name">input</span> <span class="hljs-attr">type</span>=<span class="hljs-string">"number"</span> [(<span class="hljs-attr">ngModel</span>)]=<span class="hljs-string">"rate"</span> <span class="hljs-attr">id</span>=<span class="hljs-string">"rate"</span>&gt;</span>

    <span class="hljs-tag">&lt;<span class="hljs-name">label</span> <span class="hljs-attr">for</span>=<span class="hljs-string">"time"</span>&gt;</span>Time (years):<span class="hljs-tag">&lt;/<span class="hljs-name">label</span>&gt;</span>
    <span class="hljs-tag">&lt;<span class="hljs-name">input</span> <span class="hljs-attr">type</span>=<span class="hljs-string">"number"</span> [(<span class="hljs-attr">ngModel</span>)]=<span class="hljs-string">"time"</span> <span class="hljs-attr">id</span>=<span class="hljs-string">"time"</span>&gt;</span>

    <span class="hljs-tag">&lt;<span class="hljs-name">button</span> (<span class="hljs-attr">click</span>)=<span class="hljs-string">"calculateInterest()"</span>&gt;</span>Calculate Interest<span class="hljs-tag">&lt;/<span class="hljs-name">button</span>&gt;</span>

    <span class="hljs-tag">&lt;<span class="hljs-name">p</span> *<span class="hljs-attr">ngIf</span>=<span class="hljs-string">"interest"</span>&gt;</span>Simple Interest: {{ interest | currency }}<span class="hljs-tag">&lt;/<span class="hljs-name">p</span>&gt;</span>
  <span class="hljs-tag">&lt;/<span class="hljs-name">div</span>&gt;</span>
</code></pre>
<ol start="34">
<li><p><strong>component name: compoundinterestcalculator</strong></p>
<p>Calculate compound interest when principal, rate, time, and frequency are input.</p>
</li>
</ol>
<pre><code class="lang-typescript"><span class="hljs-keyword">import</span> { Component } <span class="hljs-keyword">from</span> <span class="hljs-string">'@angular/core'</span>

<span class="hljs-meta">@Component</span> ({
    selector: <span class="hljs-string">'app-compoundinterestcalculator'</span>,
    templateUrl: <span class="hljs-string">'./compoundinterestcalculator.component.html'</span>,
    styleUrl: <span class="hljs-string">'./compoundinterestcalculator.component.css'</span>
})
<span class="hljs-keyword">export</span> <span class="hljs-keyword">class</span> CompoundinterestcalculatorComponent {
    principal: <span class="hljs-built_in">number</span> | <span class="hljs-literal">null</span> = <span class="hljs-literal">null</span>;
    rate: <span class="hljs-built_in">number</span> | <span class="hljs-literal">null</span> = <span class="hljs-literal">null</span>;
    time: <span class="hljs-built_in">number</span> | <span class="hljs-literal">null</span> = <span class="hljs-literal">null</span>;
    frequency: <span class="hljs-built_in">number</span> | <span class="hljs-literal">null</span> = <span class="hljs-literal">null</span>;
    compoundingInterest: <span class="hljs-built_in">number</span> | <span class="hljs-literal">null</span> = <span class="hljs-literal">null</span>;

    calculateCompoundingInterest(): <span class="hljs-built_in">void</span> {
        <span class="hljs-keyword">if</span> (<span class="hljs-built_in">this</span>.principal !== <span class="hljs-literal">null</span> &amp;&amp; <span class="hljs-built_in">this</span>.rate !== <span class="hljs-literal">null</span> &amp;&amp; <span class="hljs-built_in">this</span>.rate !== <span class="hljs-literal">null</span> &amp;&amp; <span class="hljs-built_in">this</span>.time !== <span class="hljs-literal">null</span> &amp;&amp; <span class="hljs-built_in">this</span>.frequency !==<span class="hljs-literal">null</span>) {
            <span class="hljs-keyword">const</span> r = <span class="hljs-built_in">this</span>.rate / <span class="hljs-number">100</span>;
            <span class="hljs-keyword">const</span> n = <span class="hljs-built_in">this</span>.frequency;
            <span class="hljs-keyword">const</span> t = <span class="hljs-built_in">this</span>.time;

            <span class="hljs-keyword">const</span> amount = <span class="hljs-built_in">this</span>.principal * <span class="hljs-built_in">Math</span>.pow((<span class="hljs-number">1</span> + r / n), n * t);
            <span class="hljs-built_in">this</span>.compoundingInterest = amount - <span class="hljs-built_in">this</span>.principal
        } <span class="hljs-keyword">else</span> {
            <span class="hljs-built_in">this</span>.compoundingInterest = <span class="hljs-literal">null</span>;
        }
    }
}
</code></pre>
<pre><code class="lang-xml"><span class="hljs-tag">&lt;<span class="hljs-name">div</span>&gt;</span>
    <span class="hljs-tag">&lt;<span class="hljs-name">label</span> <span class="hljs-attr">for</span>=<span class="hljs-string">"principatInput"</span>&gt;</span>Principal (Amount): <span class="hljs-tag">&lt;/<span class="hljs-name">label</span>&gt;</span>
    <span class="hljs-tag">&lt;<span class="hljs-name">input</span> <span class="hljs-attr">type</span>=<span class="hljs-string">"number"</span> <span class="hljs-attr">id</span>=<span class="hljs-string">"principatInput"</span> [(<span class="hljs-attr">ngModel</span>)]=<span class="hljs-string">"Principal"</span> <span class="hljs-attr">placeholder</span>=<span class="hljs-string">"Enter Principal amount"</span>&gt;</span>

    <span class="hljs-tag">&lt;<span class="hljs-name">label</span> <span class="hljs-attr">for</span>=<span class="hljs-string">"rateInput"</span>&gt;</span>Rate of Interest (%): <span class="hljs-tag">&lt;/<span class="hljs-name">label</span>&gt;</span>
    <span class="hljs-tag">&lt;<span class="hljs-name">input</span> <span class="hljs-attr">type</span>=<span class="hljs-string">"number"</span> <span class="hljs-attr">id</span>=<span class="hljs-string">"rateInput"</span> [(<span class="hljs-attr">ngModel</span>)]=<span class="hljs-string">"rate"</span> <span class="hljs-attr">placeholder</span>=<span class="hljs-string">"Enter interest rate"</span>&gt;</span>

    <span class="hljs-tag">&lt;<span class="hljs-name">label</span> <span class="hljs-attr">for</span>=<span class="hljs-string">"timeInput"</span>&gt;</span>Time (Years): <span class="hljs-tag">&lt;/<span class="hljs-name">label</span>&gt;</span>
    <span class="hljs-tag">&lt;<span class="hljs-name">input</span> <span class="hljs-attr">type</span>=<span class="hljs-string">"number"</span> <span class="hljs-attr">id</span>=<span class="hljs-string">"timeInput"</span> [(<span class="hljs-attr">ngModel</span>)]=<span class="hljs-string">"time"</span> <span class="hljs-attr">placeholder</span>=<span class="hljs-string">"Enter time period in years"</span>&gt;</span>

    <span class="hljs-tag">&lt;<span class="hljs-name">label</span> <span class="hljs-attr">for</span>=<span class="hljs-string">"frequencyInput"</span>&gt;</span> Compounding frequency (e.g., 12 for monthly, 4 for quarterly, 1 for yearly): <span class="hljs-tag">&lt;/<span class="hljs-name">label</span>&gt;</span>
    <span class="hljs-tag">&lt;<span class="hljs-name">input</span> <span class="hljs-attr">type</span>=<span class="hljs-string">"number"</span> <span class="hljs-attr">id</span>=<span class="hljs-string">"frequencyInput"</span> [(<span class="hljs-attr">ngModel</span>)]=<span class="hljs-string">"frequency"</span> <span class="hljs-attr">placeholder</span>=<span class="hljs-string">"Enter compounding frequency"</span>&gt;</span>

    <span class="hljs-tag">&lt;<span class="hljs-name">button</span> (<span class="hljs-attr">click</span>)=<span class="hljs-string">"calculateCompoudingInterest()"</span>&gt;</span> Calculate Compound Interest<span class="hljs-tag">&lt;/<span class="hljs-name">button</span>&gt;</span>

<span class="hljs-tag">&lt;/<span class="hljs-name">div</span>&gt;</span>

<span class="hljs-tag">&lt;<span class="hljs-name">div</span> *<span class="hljs-attr">ngIf</span>=<span class="hljs-string">"compoundingInterest !== null"</span>&gt;</span>
    <span class="hljs-tag">&lt;<span class="hljs-name">p</span>&gt;</span>Compound Interest: {{ compoundInterest | currency }}<span class="hljs-tag">&lt;/<span class="hljs-name">p</span>&gt;</span>
<span class="hljs-tag">&lt;/<span class="hljs-name">div</span>&gt;</span>
</code></pre>
<ol start="35">
<li><p><strong>component name: fibonaccigenerator</strong></p>
<p>Generate and display the first N Fibonacci numbers when a button is clicked.</p>
</li>
</ol>
<pre><code class="lang-typescript"><span class="hljs-keyword">import</span> { Component } <span class="hljs-keyword">from</span> <span class="hljs-string">'@angular/core'</span>;

<span class="hljs-meta">@Component</span>({
  selector: <span class="hljs-string">'app-fibonaccigenerator'</span>,
  templateUrl: <span class="hljs-string">'./fibonaccigenerator.component.html'</span>,
  styleUrl: <span class="hljs-string">'./fibonaccigenerator.component.css'</span>
})
<span class="hljs-keyword">export</span> <span class="hljs-keyword">class</span> FibonaccigeneratorComponent {
  count: <span class="hljs-built_in">number</span> = <span class="hljs-number">0</span>;
  fibonacciSequence: <span class="hljs-built_in">number</span>[] = [];

  generateFibonacci(): <span class="hljs-built_in">void</span> {
    <span class="hljs-built_in">this</span>.fibonacciSequence = [];
    <span class="hljs-keyword">let</span> a = <span class="hljs-number">0</span>, b = <span class="hljs-number">1</span>;
    <span class="hljs-keyword">for</span> (<span class="hljs-keyword">let</span> i = <span class="hljs-number">0</span>; i &lt; <span class="hljs-built_in">this</span>.count; i++) {
      <span class="hljs-built_in">this</span>.fibonacciSequence.push(a);
      [a, b] = [b, a + b];
    }
  }
}
</code></pre>
<pre><code class="lang-xml"><span class="hljs-tag">&lt;<span class="hljs-name">div</span> <span class="hljs-attr">class</span>=<span class="hljs-string">"fibonacci-generator"</span>&gt;</span>
    <span class="hljs-tag">&lt;<span class="hljs-name">h2</span>&gt;</span>Fibonacci Sequence Generator<span class="hljs-tag">&lt;/<span class="hljs-name">h2</span>&gt;</span>

    <span class="hljs-tag">&lt;<span class="hljs-name">label</span> <span class="hljs-attr">for</span>=<span class="hljs-string">"count"</span>&gt;</span>Enter number of terms:<span class="hljs-tag">&lt;/<span class="hljs-name">label</span>&gt;</span>
    <span class="hljs-tag">&lt;<span class="hljs-name">input</span> <span class="hljs-attr">type</span>=<span class="hljs-string">"number"</span> [(<span class="hljs-attr">ngModel</span>)]=<span class="hljs-string">"count"</span> <span class="hljs-attr">id</span>=<span class="hljs-string">"count"</span>&gt;</span>

    <span class="hljs-tag">&lt;<span class="hljs-name">button</span> (<span class="hljs-attr">click</span>)=<span class="hljs-string">"generateFibonacci()"</span>&gt;</span>Generate Fibonacci Sequence<span class="hljs-tag">&lt;/<span class="hljs-name">button</span>&gt;</span>

    <span class="hljs-tag">&lt;<span class="hljs-name">p</span> *<span class="hljs-attr">ngIf</span>=<span class="hljs-string">"fibonacciSequence.length"</span>&gt;</span>Fibonacci Sequence: {{ fibonacciSequence.join(', ') }}<span class="hljs-tag">&lt;/<span class="hljs-name">p</span>&gt;</span>
  <span class="hljs-tag">&lt;/<span class="hljs-name">div</span>&gt;</span>
</code></pre>
<ol start="36">
<li><p><strong>component name: oddsumcalculator</strong></p>
<p>Input a number, and calculate the sum of odd numbers up to that number.</p>
</li>
</ol>
<pre><code class="lang-typescript"><span class="hljs-keyword">import</span> { Component } <span class="hljs-keyword">from</span> <span class="hljs-string">'@angular/core'</span>;

<span class="hljs-meta">@Component</span>({
  selector: <span class="hljs-string">'app-oddsumcalculator'</span>,
  templateUrl: <span class="hljs-string">'./oddsumcalculator.component.html'</span>,
  styleUrl: <span class="hljs-string">'./oddsumcalculator.component.css'</span>
})
<span class="hljs-keyword">export</span> <span class="hljs-keyword">class</span> OddsumcalculatorComponent {
  <span class="hljs-built_in">number</span> = <span class="hljs-number">0</span>;
  oddSum = <span class="hljs-number">0</span>;

  calculateOddSum() {
    <span class="hljs-built_in">this</span>.oddSum = <span class="hljs-number">0</span>;
    <span class="hljs-keyword">for</span> (<span class="hljs-keyword">let</span> i = <span class="hljs-number">1</span>; i &lt;= <span class="hljs-built_in">this</span>.number; i++) {
      <span class="hljs-keyword">if</span> (i % <span class="hljs-number">2</span> !== <span class="hljs-number">0</span>) {
        <span class="hljs-built_in">this</span>.oddSum += i;
      }
    }
  }
}
</code></pre>
<pre><code class="lang-xml"><span class="hljs-tag">&lt;<span class="hljs-name">div</span>&gt;</span>
    <span class="hljs-tag">&lt;<span class="hljs-name">label</span> <span class="hljs-attr">for</span>=<span class="hljs-string">"number"</span>&gt;</span>Enter a number:<span class="hljs-tag">&lt;/<span class="hljs-name">label</span>&gt;</span>
    <span class="hljs-tag">&lt;<span class="hljs-name">input</span> <span class="hljs-attr">type</span>=<span class="hljs-string">"number"</span> [(<span class="hljs-attr">ngModel</span>)]=<span class="hljs-string">"number"</span> <span class="hljs-attr">id</span>=<span class="hljs-string">"number"</span> /&gt;</span>

    <span class="hljs-tag">&lt;<span class="hljs-name">button</span> (<span class="hljs-attr">click</span>)=<span class="hljs-string">"calculateOddSum()"</span>&gt;</span>Calculate Odd Sum<span class="hljs-tag">&lt;/<span class="hljs-name">button</span>&gt;</span>

    <span class="hljs-tag">&lt;<span class="hljs-name">p</span>&gt;</span>Sum of odd numbers: {{ oddSum }}<span class="hljs-tag">&lt;/<span class="hljs-name">p</span>&gt;</span>
  <span class="hljs-tag">&lt;/<span class="hljs-name">div</span>&gt;</span>
</code></pre>
<ol start="37">
<li><p><strong>component name: currencyformatter</strong></p>
<p>Input a number and format it as currency when a button is clicked (Dollar, Php, Euro - search euro conversion).</p>
</li>
</ol>
<pre><code class="lang-typescript"><span class="hljs-keyword">import</span> { Component } <span class="hljs-keyword">from</span> <span class="hljs-string">'@angular/core'</span>;

<span class="hljs-meta">@Component</span>({
  selector: <span class="hljs-string">'app-currencyformatter'</span>,
  templateUrl: <span class="hljs-string">'./currencyformatter.component.html'</span>,
  styleUrl: <span class="hljs-string">'./currencyformatter.component.css'</span>
})
<span class="hljs-keyword">export</span> <span class="hljs-keyword">class</span> CurrencyformatterComponent {
  amount = <span class="hljs-number">0</span>;
  formattedCurrency = <span class="hljs-string">''</span>;

  formatCurrency(currencyType: <span class="hljs-built_in">string</span>) {
    <span class="hljs-keyword">switch</span> (currencyType) {
      <span class="hljs-keyword">case</span> <span class="hljs-string">'USD'</span>:
        <span class="hljs-built_in">this</span>.formattedCurrency = <span class="hljs-string">`$<span class="hljs-subst">${<span class="hljs-built_in">this</span>.amount.toFixed(<span class="hljs-number">2</span>)}</span>`</span>;
        <span class="hljs-keyword">break</span>;
      <span class="hljs-keyword">case</span> <span class="hljs-string">'PHP'</span>:
        <span class="hljs-built_in">this</span>.formattedCurrency = <span class="hljs-string">`₱<span class="hljs-subst">${<span class="hljs-built_in">this</span>.amount.toFixed(<span class="hljs-number">2</span>)}</span>`</span>;
        <span class="hljs-keyword">break</span>;
      <span class="hljs-keyword">case</span> <span class="hljs-string">'EUR'</span>:
        <span class="hljs-built_in">this</span>.formattedCurrency = <span class="hljs-string">`€<span class="hljs-subst">${<span class="hljs-built_in">this</span>.amount.toFixed(<span class="hljs-number">2</span>)}</span>`</span>;
        <span class="hljs-keyword">break</span>;
    }
  }
}
</code></pre>
<pre><code class="lang-xml"><span class="hljs-tag">&lt;<span class="hljs-name">div</span>&gt;</span>
    <span class="hljs-tag">&lt;<span class="hljs-name">label</span> <span class="hljs-attr">for</span>=<span class="hljs-string">"amount"</span>&gt;</span>Enter amount:<span class="hljs-tag">&lt;/<span class="hljs-name">label</span>&gt;</span>
    <span class="hljs-tag">&lt;<span class="hljs-name">input</span> <span class="hljs-attr">type</span>=<span class="hljs-string">"number"</span> [(<span class="hljs-attr">ngModel</span>)]=<span class="hljs-string">"amount"</span> <span class="hljs-attr">id</span>=<span class="hljs-string">"amount"</span> /&gt;</span>

    <span class="hljs-tag">&lt;<span class="hljs-name">button</span> (<span class="hljs-attr">click</span>)=<span class="hljs-string">"formatCurrency('USD')"</span>&gt;</span>Format as USD<span class="hljs-tag">&lt;/<span class="hljs-name">button</span>&gt;</span>
    <span class="hljs-tag">&lt;<span class="hljs-name">button</span> (<span class="hljs-attr">click</span>)=<span class="hljs-string">"formatCurrency('PHP')"</span>&gt;</span>Format as PHP<span class="hljs-tag">&lt;/<span class="hljs-name">button</span>&gt;</span>
    <span class="hljs-tag">&lt;<span class="hljs-name">button</span> (<span class="hljs-attr">click</span>)=<span class="hljs-string">"formatCurrency('EUR')"</span>&gt;</span>Format as EUR<span class="hljs-tag">&lt;/<span class="hljs-name">button</span>&gt;</span>

    <span class="hljs-tag">&lt;<span class="hljs-name">p</span>&gt;</span>Formatted amount: {{ formattedCurrency }}<span class="hljs-tag">&lt;/<span class="hljs-name">p</span>&gt;</span>
  <span class="hljs-tag">&lt;/<span class="hljs-name">div</span>&gt;</span>
</code></pre>
<ol start="38">
<li><p><strong>component name: randomquotedisplay</strong></p>
<p>Display a random quote when a button is clicked (use list data structures).</p>
</li>
</ol>
<pre><code class="lang-typescript"><span class="hljs-keyword">import</span> { Component } <span class="hljs-keyword">from</span> <span class="hljs-string">'@angular/core'</span>;

<span class="hljs-meta">@Component</span>({
  selector: <span class="hljs-string">'app-randomquotedisplay'</span>,
  templateUrl: <span class="hljs-string">'./randomquotedisplay.component.html'</span>,
  styleUrl: <span class="hljs-string">'./randomquotedisplay.component.css'</span>
})
<span class="hljs-keyword">export</span> <span class="hljs-keyword">class</span> RandomquotedisplayComponent {
  quotes: <span class="hljs-built_in">string</span>[] = [
    <span class="hljs-string">'The best way to predict the future is to create it.'</span>,
    <span class="hljs-string">'Life is what happens when you’re busy making other plans.'</span>,
    <span class="hljs-string">'The purpose of our lives is to be happy.'</span>,
    <span class="hljs-string">'Success is not final, failure is not fatal: It is the courage to continue that counts.'</span>
  ];
  displayedQuote = <span class="hljs-string">''</span>;

  displayRandomQuote() {
    <span class="hljs-keyword">const</span> randomIndex = <span class="hljs-built_in">Math</span>.floor(<span class="hljs-built_in">Math</span>.random() * <span class="hljs-built_in">this</span>.quotes.length);
    <span class="hljs-built_in">this</span>.displayedQuote = <span class="hljs-built_in">this</span>.quotes[randomIndex];
  }
}
</code></pre>
<pre><code class="lang-xml"><span class="hljs-tag">&lt;<span class="hljs-name">div</span>&gt;</span>
    <span class="hljs-tag">&lt;<span class="hljs-name">button</span> (<span class="hljs-attr">click</span>)=<span class="hljs-string">"displayRandomQuote()"</span>&gt;</span>Show Random Quote<span class="hljs-tag">&lt;/<span class="hljs-name">button</span>&gt;</span>

    <span class="hljs-tag">&lt;<span class="hljs-name">p</span>&gt;</span>{{ displayedQuote }}<span class="hljs-tag">&lt;/<span class="hljs-name">p</span>&gt;</span>
  <span class="hljs-tag">&lt;/<span class="hljs-name">div</span>&gt;</span>
</code></pre>
<ol start="39">
<li><p><strong>component name: uppercasegreeting</strong></p>
<p>User inputs their name, and when the button is clicked, display the name in uppercase.</p>
</li>
</ol>
<pre><code class="lang-typescript"><span class="hljs-keyword">import</span> { Component } <span class="hljs-keyword">from</span> <span class="hljs-string">'@angular/core'</span>;

<span class="hljs-meta">@Component</span>({
  selector: <span class="hljs-string">'app-uppercasegreeting'</span>,
  templateUrl: <span class="hljs-string">'./uppercasegreeting.component.html'</span>,
  styleUrl: <span class="hljs-string">'./uppercasegreeting.component.css'</span>
})
<span class="hljs-keyword">export</span> <span class="hljs-keyword">class</span> UppercasegreetingComponent {
  name = <span class="hljs-string">''</span>;
  uppercaseName = <span class="hljs-string">''</span>;

  convertToUppercase() {
    <span class="hljs-built_in">this</span>.uppercaseName = <span class="hljs-built_in">this</span>.name.toUpperCase();
  }
}
</code></pre>
<pre><code class="lang-xml"><span class="hljs-tag">&lt;<span class="hljs-name">div</span>&gt;</span>
    <span class="hljs-tag">&lt;<span class="hljs-name">label</span> <span class="hljs-attr">for</span>=<span class="hljs-string">"name"</span>&gt;</span>Enter your name:<span class="hljs-tag">&lt;/<span class="hljs-name">label</span>&gt;</span>
    <span class="hljs-tag">&lt;<span class="hljs-name">input</span> <span class="hljs-attr">type</span>=<span class="hljs-string">"text"</span> [(<span class="hljs-attr">ngModel</span>)]=<span class="hljs-string">"name"</span> <span class="hljs-attr">id</span>=<span class="hljs-string">"name"</span> /&gt;</span>

    <span class="hljs-tag">&lt;<span class="hljs-name">button</span> (<span class="hljs-attr">click</span>)=<span class="hljs-string">"convertToUppercase()"</span>&gt;</span>Convert to Uppercase<span class="hljs-tag">&lt;/<span class="hljs-name">button</span>&gt;</span>

    <span class="hljs-tag">&lt;<span class="hljs-name">p</span>&gt;</span>Your name in uppercase: {{ uppercaseName }}<span class="hljs-tag">&lt;/<span class="hljs-name">p</span>&gt;</span>
  <span class="hljs-tag">&lt;/<span class="hljs-name">div</span>&gt;</span>
</code></pre>
<ol start="40">
<li><p><strong>component name: divisiblechecker</strong></p>
<p>Input two numbers, and check if the first is divisible by the second.</p>
</li>
</ol>
<pre><code class="lang-typescript"><span class="hljs-keyword">import</span> { Component } <span class="hljs-keyword">from</span> <span class="hljs-string">'@angular/core'</span>;

<span class="hljs-meta">@Component</span>({
  selector: <span class="hljs-string">'app-divisiblechecker'</span>,
  templateUrl: <span class="hljs-string">'./divisiblechecker.component.html'</span>,
  styleUrl: <span class="hljs-string">'./divisiblechecker.component.css'</span>
})
<span class="hljs-keyword">export</span> <span class="hljs-keyword">class</span> DivisiblecheckerComponent {
  num1 = <span class="hljs-number">0</span>;
  num2 = <span class="hljs-number">1</span>;
  isDivisible = <span class="hljs-literal">false</span>;

  checkDivisibility() {
    <span class="hljs-built_in">this</span>.isDivisible = <span class="hljs-built_in">this</span>.num1 % <span class="hljs-built_in">this</span>.num2 === <span class="hljs-number">0</span>;
  }
}
</code></pre>
<pre><code class="lang-xml"><span class="hljs-tag">&lt;<span class="hljs-name">div</span>&gt;</span>
    <span class="hljs-tag">&lt;<span class="hljs-name">label</span> <span class="hljs-attr">for</span>=<span class="hljs-string">"num1"</span>&gt;</span>Enter first number:<span class="hljs-tag">&lt;/<span class="hljs-name">label</span>&gt;</span>
    <span class="hljs-tag">&lt;<span class="hljs-name">input</span> <span class="hljs-attr">type</span>=<span class="hljs-string">"number"</span> [(<span class="hljs-attr">ngModel</span>)]=<span class="hljs-string">"num1"</span> <span class="hljs-attr">id</span>=<span class="hljs-string">"num1"</span> /&gt;</span>

    <span class="hljs-tag">&lt;<span class="hljs-name">label</span> <span class="hljs-attr">for</span>=<span class="hljs-string">"num2"</span>&gt;</span>Enter second number:<span class="hljs-tag">&lt;/<span class="hljs-name">label</span>&gt;</span>
    <span class="hljs-tag">&lt;<span class="hljs-name">input</span> <span class="hljs-attr">type</span>=<span class="hljs-string">"number"</span> [(<span class="hljs-attr">ngModel</span>)]=<span class="hljs-string">"num2"</span> <span class="hljs-attr">id</span>=<span class="hljs-string">"num2"</span> /&gt;</span>

    <span class="hljs-tag">&lt;<span class="hljs-name">button</span> (<span class="hljs-attr">click</span>)=<span class="hljs-string">"checkDivisibility()"</span>&gt;</span>Check Divisibility<span class="hljs-tag">&lt;/<span class="hljs-name">button</span>&gt;</span>

    <span class="hljs-tag">&lt;<span class="hljs-name">p</span> *<span class="hljs-attr">ngIf</span>=<span class="hljs-string">"isDivisible"</span>&gt;</span>Yes, {{ num1 }} is divisible by {{ num2 }}.<span class="hljs-tag">&lt;/<span class="hljs-name">p</span>&gt;</span>
    <span class="hljs-tag">&lt;<span class="hljs-name">p</span> *<span class="hljs-attr">ngIf</span>=<span class="hljs-string">"!isDivisible"</span>&gt;</span>No, {{ num1 }} is not divisible by {{ num2 }}.<span class="hljs-tag">&lt;/<span class="hljs-name">p</span>&gt;</span>
  <span class="hljs-tag">&lt;/<span class="hljs-name">div</span>&gt;</span>
</code></pre>
<ol start="41">
<li><strong>component name:</strong> emailvalidator</li>
</ol>
<pre><code class="lang-typescript"><span class="hljs-keyword">import</span> { Component } <span class="hljs-keyword">from</span> <span class="hljs-string">'@angular/core'</span>;

<span class="hljs-meta">@Component</span>({
  selector: <span class="hljs-string">'app-emailvalidator'</span>,
  templateUrl: <span class="hljs-string">'./emailvalidator.component.html'</span>,
  styleUrls: [<span class="hljs-string">'./emailvalidator.component.css'</span>]
})
<span class="hljs-keyword">export</span> <span class="hljs-keyword">class</span> EmailValidatorComponent {
  email: <span class="hljs-built_in">string</span> = <span class="hljs-string">''</span>;
  isValid: <span class="hljs-built_in">boolean</span> | <span class="hljs-literal">null</span> = <span class="hljs-literal">null</span>;

  validateEmail() {
    <span class="hljs-keyword">const</span> regex = <span class="hljs-regexp">/^[\w-\.]+@([\w-]+\.)+[\w-]{2,4}$/g</span>;
    <span class="hljs-built_in">this</span>.isValid = regex.test(<span class="hljs-built_in">this</span>.email);
  }
}
</code></pre>
<pre><code class="lang-xml"><span class="hljs-tag">&lt;<span class="hljs-name">div</span>&gt;</span>
<span class="hljs-tag">&lt;<span class="hljs-name">input</span> <span class="hljs-attr">type</span>=<span class="hljs-string">"email"</span> [(<span class="hljs-attr">ngModel</span>)]=<span class="hljs-string">"email"</span> <span class="hljs-attr">placeholder</span>=<span class="hljs-string">"Enter email"</span>/&gt;</span>
<span class="hljs-tag">&lt;<span class="hljs-name">button</span> (<span class="hljs-attr">click</span>)=<span class="hljs-string">"validateEmail()"</span>&gt;</span>Validate Email<span class="hljs-tag">&lt;/<span class="hljs-name">button</span>&gt;</span>
<span class="hljs-tag">&lt;<span class="hljs-name">p</span> *<span class="hljs-attr">ngIf</span>=<span class="hljs-string">"isValid !== null"</span>&gt;</span>{{ isValid ? 'Valid' : 'Invalid' }} email<span class="hljs-tag">&lt;/<span class="hljs-name">p</span>&gt;</span>
<span class="hljs-tag">&lt;/<span class="hljs-name">div</span>&gt;</span>
</code></pre>
<ol start="42">
<li><strong>component name:</strong> areacalculator</li>
</ol>
<pre><code class="lang-typescript"><span class="hljs-keyword">import</span> { Component } <span class="hljs-keyword">from</span> <span class="hljs-string">'@angular/core'</span>;

<span class="hljs-meta">@Component</span>({
  selector: <span class="hljs-string">'app-areacalculator'</span>,
  templateUrl: <span class="hljs-string">'./areacalculator.component.html'</span>,
  styleUrls: [<span class="hljs-string">'./areacalculator.component.css'</span>]
})
<span class="hljs-keyword">export</span> <span class="hljs-keyword">class</span> AreaCalculatorComponent {
  length: <span class="hljs-built_in">number</span> = <span class="hljs-number">0</span>;
  width: <span class="hljs-built_in">number</span> = <span class="hljs-number">0</span>;
  area: <span class="hljs-built_in">number</span> | <span class="hljs-literal">null</span> = <span class="hljs-literal">null</span>;

  calculateArea() {
    <span class="hljs-built_in">this</span>.area = <span class="hljs-built_in">this</span>.length * <span class="hljs-built_in">this</span>.width;
  }
}
</code></pre>
<pre><code class="lang-xml"><span class="hljs-tag">&lt;<span class="hljs-name">div</span>&gt;</span>
<span class="hljs-tag">&lt;<span class="hljs-name">input</span> <span class="hljs-attr">type</span>=<span class="hljs-string">"number"</span> [(<span class="hljs-attr">ngModel</span>)]=<span class="hljs-string">"length"</span> <span class="hljs-attr">placeholder</span>=<span class="hljs-string">"Enter length"</span>/&gt;</span>
<span class="hljs-tag">&lt;<span class="hljs-name">input</span> <span class="hljs-attr">type</span>=<span class="hljs-string">"number"</span> [(<span class="hljs-attr">ngModel</span>)]=<span class="hljs-string">"width"</span> <span class="hljs-attr">placeholder</span>=<span class="hljs-string">"Enter width"</span>/&gt;</span>
<span class="hljs-tag">&lt;<span class="hljs-name">button</span> (<span class="hljs-attr">click</span>)=<span class="hljs-string">"calculateArea()"</span>&gt;</span>Calculate Area<span class="hljs-tag">&lt;/<span class="hljs-name">button</span>&gt;</span>
<span class="hljs-tag">&lt;<span class="hljs-name">p</span> *<span class="hljs-attr">ngIf</span>=<span class="hljs-string">"area !== null"</span>&gt;</span>Area: {{ area }} sq. units<span class="hljs-tag">&lt;/<span class="hljs-name">p</span>&gt;</span>
<span class="hljs-tag">&lt;/<span class="hljs-name">div</span>&gt;</span>
</code></pre>
<ol start="43">
<li><strong>component name:</strong> lengthconverter</li>
</ol>
<pre><code class="lang-typescript"><span class="hljs-keyword">import</span> { Component } <span class="hljs-keyword">from</span> <span class="hljs-string">'@angular/core'</span>;

<span class="hljs-meta">@Component</span>({
  selector: <span class="hljs-string">'app-lengthconverter'</span>,
  templateUrl: <span class="hljs-string">'./lengthconverter.component.html'</span>,
  styleUrls: [<span class="hljs-string">'./lengthconverter.component.css'</span>]
})
<span class="hljs-keyword">export</span> <span class="hljs-keyword">class</span> LengthConverterComponent {
  meters: <span class="hljs-built_in">number</span> = <span class="hljs-number">0</span>;
  kilometers: <span class="hljs-built_in">number</span> | <span class="hljs-literal">null</span> = <span class="hljs-literal">null</span>;

  convertToKilometers() {
    <span class="hljs-built_in">this</span>.kilometers = <span class="hljs-built_in">this</span>.meters / <span class="hljs-number">1000</span>;
  }
}
</code></pre>
<pre><code class="lang-xml"><span class="hljs-tag">&lt;<span class="hljs-name">div</span>&gt;</span>
<span class="hljs-tag">&lt;<span class="hljs-name">input</span> <span class="hljs-attr">type</span>=<span class="hljs-string">"number"</span> [(<span class="hljs-attr">ngModel</span>)]=<span class="hljs-string">"meters"</span> <span class="hljs-attr">placeholder</span>=<span class="hljs-string">"Enter length in meters"</span>/&gt;</span>
<span class="hljs-tag">&lt;<span class="hljs-name">button</span> (<span class="hljs-attr">click</span>)=<span class="hljs-string">"convertToKilometers()"</span>&gt;</span>Convert to Kilometers<span class="hljs-tag">&lt;/<span class="hljs-name">button</span>&gt;</span>
<span class="hljs-tag">&lt;<span class="hljs-name">p</span> *<span class="hljs-attr">ngIf</span>=<span class="hljs-string">"kilometers !== null"</span>&gt;</span>Length: {{ kilometers }} km<span class="hljs-tag">&lt;/<span class="hljs-name">p</span>&gt;</span>
<span class="hljs-tag">&lt;/<span class="hljs-name">div</span>&gt;</span>
</code></pre>
<ol start="44">
<li><strong>component name:</strong> emailobfuscator</li>
</ol>
<pre><code class="lang-typescript"><span class="hljs-keyword">import</span> { Component } <span class="hljs-keyword">from</span> <span class="hljs-string">'@angular/core'</span>;

<span class="hljs-meta">@Component</span>({
  selector: <span class="hljs-string">'app-emailobfuscator'</span>,
  templateUrl: <span class="hljs-string">'./emailobfuscator.component.html'</span>,
  styleUrls: [<span class="hljs-string">'./emailobfuscator.component.css'</span>]
})
<span class="hljs-keyword">export</span> <span class="hljs-keyword">class</span> EmailObfuscatorComponent {
  email: <span class="hljs-built_in">string</span> = <span class="hljs-string">''</span>;
  obfuscatedEmail: <span class="hljs-built_in">string</span> = <span class="hljs-string">''</span>;

  obfuscateEmail() {
    <span class="hljs-built_in">this</span>.obfuscatedEmail = <span class="hljs-built_in">this</span>.email.replace(<span class="hljs-regexp">/@/g</span>, <span class="hljs-string">'[at]'</span>).replace(<span class="hljs-regexp">/\./g</span>, <span class="hljs-string">'[dot]'</span>);
  }
}
</code></pre>
<pre><code class="lang-xml"><span class="hljs-tag">&lt;<span class="hljs-name">div</span>&gt;</span>
<span class="hljs-tag">&lt;<span class="hljs-name">input</span> <span class="hljs-attr">type</span>=<span class="hljs-string">"email"</span> [(<span class="hljs-attr">ngModel</span>)]=<span class="hljs-string">"email"</span> <span class="hljs-attr">placeholder</span>=<span class="hljs-string">"Enter email"</span>/&gt;</span>
<span class="hljs-tag">&lt;<span class="hljs-name">button</span> (<span class="hljs-attr">click</span>)=<span class="hljs-string">"obfuscateEmail()"</span>&gt;</span>Obfuscate Email<span class="hljs-tag">&lt;/<span class="hljs-name">button</span>&gt;</span>
<span class="hljs-tag">&lt;<span class="hljs-name">p</span> *<span class="hljs-attr">ngIf</span>=<span class="hljs-string">"obfuscatedEmail"</span>&gt;</span>Obfuscated: {{ obfuscatedEmail }}<span class="hljs-tag">&lt;/<span class="hljs-name">p</span>&gt;</span>
<span class="hljs-tag">&lt;/<span class="hljs-name">div</span>&gt;</span>
</code></pre>
<ol start="45">
<li><strong>component name:</strong> dayofweekdisplay</li>
</ol>
<pre><code class="lang-typescript"><span class="hljs-keyword">import</span> { Component } <span class="hljs-keyword">from</span> <span class="hljs-string">'@angular/core'</span>;

<span class="hljs-meta">@Component</span>({
  selector: <span class="hljs-string">'app-dayofweekdisplay'</span>,
  templateUrl: <span class="hljs-string">'./dayofweekdisplay.component.html'</span>,
  styleUrls: [<span class="hljs-string">'./dayofweekdisplay.component.css'</span>]
})
<span class="hljs-keyword">export</span> <span class="hljs-keyword">class</span> DayOfWeekDisplayComponent {
  day: <span class="hljs-built_in">string</span> = <span class="hljs-string">''</span>;

  showDay() {
    <span class="hljs-keyword">const</span> today = <span class="hljs-keyword">new</span> <span class="hljs-built_in">Date</span>();
    <span class="hljs-keyword">const</span> days = [<span class="hljs-string">'Sunday'</span>, <span class="hljs-string">'Monday'</span>, <span class="hljs-string">'Tuesday'</span>, <span class="hljs-string">'Wednesday'</span>, <span class="hljs-string">'Thursday'</span>, <span class="hljs-string">'Friday'</span>, <span class="hljs-string">'Saturday'</span>];
    <span class="hljs-built_in">this</span>.day = days[today.getDay()];
  }
}
</code></pre>
<pre><code class="lang-xml"><span class="hljs-tag">&lt;<span class="hljs-name">div</span>&gt;</span>
<span class="hljs-tag">&lt;<span class="hljs-name">button</span> (<span class="hljs-attr">click</span>)=<span class="hljs-string">"showDay()"</span>&gt;</span>Show Day of the Week<span class="hljs-tag">&lt;/<span class="hljs-name">button</span>&gt;</span>
<span class="hljs-tag">&lt;<span class="hljs-name">p</span> *<span class="hljs-attr">ngIf</span>=<span class="hljs-string">"day"</span>&gt;</span>Today is: {{ day }}<span class="hljs-tag">&lt;/<span class="hljs-name">p</span>&gt;</span>
<span class="hljs-tag">&lt;/<span class="hljs-name">div</span>&gt;</span>
</code></pre>
<ol start="46">
<li><strong>component name:</strong> percentcalculator</li>
</ol>
<pre><code class="lang-typescript"><span class="hljs-keyword">import</span> { Component } <span class="hljs-keyword">from</span> <span class="hljs-string">'@angular/core'</span>;

<span class="hljs-meta">@Component</span>({
  selector: <span class="hljs-string">'app-percentcalculator'</span>,
  templateUrl: <span class="hljs-string">'./percentcalculator.component.html'</span>,
  styleUrls: [<span class="hljs-string">'./percentcalculator.component.css'</span>]
})
<span class="hljs-keyword">export</span> <span class="hljs-keyword">class</span> PercentCalculatorComponent {
  total: <span class="hljs-built_in">number</span> = <span class="hljs-number">0</span>;
  percentage: <span class="hljs-built_in">number</span> = <span class="hljs-number">0</span>;
  result: <span class="hljs-built_in">number</span> | <span class="hljs-literal">null</span> = <span class="hljs-literal">null</span>;

  calculatePercentage() {
    <span class="hljs-built_in">this</span>.result = (<span class="hljs-built_in">this</span>.percentage / <span class="hljs-number">100</span>) * <span class="hljs-built_in">this</span>.total;
  }
}
</code></pre>
<pre><code class="lang-xml"><span class="hljs-tag">&lt;<span class="hljs-name">div</span>&gt;</span>
<span class="hljs-tag">&lt;<span class="hljs-name">input</span> <span class="hljs-attr">type</span>=<span class="hljs-string">"number"</span> [(<span class="hljs-attr">ngModel</span>)]=<span class="hljs-string">"total"</span> <span class="hljs-attr">placeholder</span>=<span class="hljs-string">"Enter total value"</span>/&gt;</span>
<span class="hljs-tag">&lt;<span class="hljs-name">input</span> <span class="hljs-attr">type</span>=<span class="hljs-string">"number"</span> [(<span class="hljs-attr">ngModel</span>)]=<span class="hljs-string">"percentage"</span> <span class="hljs-attr">placeholder</span>=<span class="hljs-string">"Enter percentage"</span>/&gt;</span>
<span class="hljs-tag">&lt;<span class="hljs-name">button</span> (<span class="hljs-attr">click</span>)=<span class="hljs-string">"calculatePercentage()"</span>&gt;</span>Calculate Percentage<span class="hljs-tag">&lt;/<span class="hljs-name">button</span>&gt;</span>
<span class="hljs-tag">&lt;<span class="hljs-name">p</span> *<span class="hljs-attr">ngIf</span>=<span class="hljs-string">"result !== null"</span>&gt;</span>Result: {{ result }}<span class="hljs-tag">&lt;/<span class="hljs-name">p</span>&gt;</span>
<span class="hljs-tag">&lt;/<span class="hljs-name">div</span>&gt;</span>
</code></pre>
<ol start="47">
<li><strong>component name:</strong> primechecker</li>
</ol>
<pre><code class="lang-typescript"><span class="hljs-keyword">import</span> { Component } <span class="hljs-keyword">from</span> <span class="hljs-string">'@angular/core'</span>;

<span class="hljs-meta">@Component</span>({
  selector: <span class="hljs-string">'app-primechecker'</span>,
  templateUrl: <span class="hljs-string">'./primechecker.component.html'</span>,
  styleUrls: [<span class="hljs-string">'./primechecker.component.css'</span>]
})
<span class="hljs-keyword">export</span> <span class="hljs-keyword">class</span> PrimeCheckerComponent {
  <span class="hljs-built_in">number</span>: <span class="hljs-built_in">number</span> = <span class="hljs-number">0</span>;
  isPrime: <span class="hljs-built_in">boolean</span> | <span class="hljs-literal">null</span> = <span class="hljs-literal">null</span>;

  checkPrime() {
    <span class="hljs-keyword">if</span> (<span class="hljs-built_in">this</span>.number &lt;= <span class="hljs-number">1</span>) {
      <span class="hljs-built_in">this</span>.isPrime = <span class="hljs-literal">false</span>;
      <span class="hljs-keyword">return</span>;
    }
    <span class="hljs-keyword">for</span> (<span class="hljs-keyword">let</span> i = <span class="hljs-number">2</span>; i &lt; <span class="hljs-built_in">this</span>.number; i++) {
      <span class="hljs-keyword">if</span> (<span class="hljs-built_in">this</span>.number % i === <span class="hljs-number">0</span>) {
        <span class="hljs-built_in">this</span>.isPrime = <span class="hljs-literal">false</span>;
        <span class="hljs-keyword">return</span>;
      }
    }
    <span class="hljs-built_in">this</span>.isPrime = <span class="hljs-literal">true</span>;
  }
}
</code></pre>
<pre><code class="lang-xml"><span class="hljs-tag">&lt;<span class="hljs-name">div</span>&gt;</span>
<span class="hljs-tag">&lt;<span class="hljs-name">input</span> <span class="hljs-attr">type</span>=<span class="hljs-string">"number"</span> [(<span class="hljs-attr">ngModel</span>)]=<span class="hljs-string">"number"</span> <span class="hljs-attr">placeholder</span>=<span class="hljs-string">"Enter number"</span>/&gt;</span>
<span class="hljs-tag">&lt;<span class="hljs-name">button</span> (<span class="hljs-attr">click</span>)=<span class="hljs-string">"checkPrime()"</span>&gt;</span>Check Prime<span class="hljs-tag">&lt;/<span class="hljs-name">button</span>&gt;</span>
<span class="hljs-tag">&lt;<span class="hljs-name">p</span> *<span class="hljs-attr">ngIf</span>=<span class="hljs-string">"isPrime !== null"</span>&gt;</span>{{ number }} is {{ isPrime ? '' : 'not' }} a prime number.<span class="hljs-tag">&lt;/<span class="hljs-name">p</span>&gt;</span>
<span class="hljs-tag">&lt;/<span class="hljs-name">div</span>&gt;</span>
</code></pre>
<ol start="48">
<li><strong>component name:</strong> cubecalculator</li>
</ol>
<pre><code class="lang-typescript"><span class="hljs-keyword">import</span> { Component } <span class="hljs-keyword">from</span> <span class="hljs-string">'@angular/core'</span>;

<span class="hljs-meta">@Component</span>({
  selector: <span class="hljs-string">'app-cubecalculator'</span>,
  templateUrl: <span class="hljs-string">'./cubecalculator.component.html'</span>,
  styleUrls: [<span class="hljs-string">'./cubecalculator.component.css'</span>]
})
<span class="hljs-keyword">export</span> <span class="hljs-keyword">class</span> CubeCalculatorComponent {
  <span class="hljs-built_in">number</span>: <span class="hljs-built_in">number</span> = <span class="hljs-number">0</span>;
  cube: <span class="hljs-built_in">number</span> | <span class="hljs-literal">null</span> = <span class="hljs-literal">null</span>;

  calculateCube() {
    <span class="hljs-built_in">this</span>.cube = <span class="hljs-built_in">Math</span>.pow(<span class="hljs-built_in">this</span>.number, <span class="hljs-number">3</span>);
  }
}
</code></pre>
<pre><code class="lang-xml"><span class="hljs-tag">&lt;<span class="hljs-name">div</span>&gt;</span>
<span class="hljs-tag">&lt;<span class="hljs-name">input</span> <span class="hljs-attr">type</span>=<span class="hljs-string">"number"</span> [(<span class="hljs-attr">ngModel</span>)]=<span class="hljs-string">"number"</span> <span class="hljs-attr">placeholder</span>=<span class="hljs-string">"Enter number"</span> /&gt;</span>
<span class="hljs-tag">&lt;<span class="hljs-name">button</span> (<span class="hljs-attr">click</span>)=<span class="hljs-string">"calculateCube()"</span>&gt;</span>Calculate Cube<span class="hljs-tag">&lt;/<span class="hljs-name">button</span>&gt;</span>
<span class="hljs-tag">&lt;<span class="hljs-name">p</span> *<span class="hljs-attr">ngIf</span>=<span class="hljs-string">"cube !== null"</span>&gt;</span>The cube of {{ number }} is {{ cube }}<span class="hljs-tag">&lt;/<span class="hljs-name">p</span>&gt;</span>
<span class="hljs-tag">&lt;/<span class="hljs-name">div</span>&gt;</span>
</code></pre>
<ol start="49">
<li><strong>component name:</strong> randomcolorgenerator</li>
</ol>
<pre><code class="lang-typescript"><span class="hljs-keyword">import</span> { Component } <span class="hljs-keyword">from</span> <span class="hljs-string">'@angular/core'</span>;

<span class="hljs-meta">@Component</span>({
  selector: <span class="hljs-string">'app-randomcolorgenerator'</span>,
  templateUrl: <span class="hljs-string">'./randomcolorgenerator.component.html'</span>,
  styleUrls: [<span class="hljs-string">'./randomcolorgenerator.component.css'</span>]
})
<span class="hljs-keyword">export</span> <span class="hljs-keyword">class</span> RandomColorGeneratorComponent {
  color: <span class="hljs-built_in">string</span> = <span class="hljs-string">'#ffffff'</span>;

  generateRandomColor() {
    <span class="hljs-built_in">this</span>.color = <span class="hljs-string">'#'</span> + <span class="hljs-built_in">Math</span>.floor(<span class="hljs-built_in">Math</span>.random()*<span class="hljs-number">16777215</span>).toString(<span class="hljs-number">16</span>);
  }
}
</code></pre>
<pre><code class="lang-xml"><span class="hljs-tag">&lt;<span class="hljs-name">div</span>&gt;</span>
<span class="hljs-tag">&lt;<span class="hljs-name">button</span> (<span class="hljs-attr">click</span>)=<span class="hljs-string">"generateRandomColor()"</span>&gt;</span>Generate Random Color<span class="hljs-tag">&lt;/<span class="hljs-name">button</span>&gt;</span>
<span class="hljs-tag">&lt;<span class="hljs-name">p</span> [<span class="hljs-attr">style.background</span>]=<span class="hljs-string">"color"</span>&gt;</span>Random
<span class="hljs-tag">&lt;/<span class="hljs-name">div</span>&gt;</span>
</code></pre>
<ol start="50">
<li><strong>component name:</strong> gradecalculator</li>
</ol>
<pre><code class="lang-typescript"><span class="hljs-keyword">import</span> { Component } <span class="hljs-keyword">from</span> <span class="hljs-string">'@angular/core'</span>;

<span class="hljs-meta">@Component</span>({
  selector: <span class="hljs-string">'app-gradecalculator'</span>,
  templateUrl: <span class="hljs-string">'./gradecalculator.component.html'</span>,
  styleUrls: [<span class="hljs-string">'./gradecalculator.component.css'</span>]
})
<span class="hljs-keyword">export</span> <span class="hljs-keyword">class</span> GradeCalculatorComponent {
  score: <span class="hljs-built_in">number</span> = <span class="hljs-number">0</span>;
  grade: <span class="hljs-built_in">string</span> = <span class="hljs-string">''</span>;

  calculateGrade() {
    <span class="hljs-keyword">if</span> (<span class="hljs-built_in">this</span>.score &gt;= <span class="hljs-number">90</span>) {
      <span class="hljs-built_in">this</span>.grade = <span class="hljs-string">'A'</span>;
    } <span class="hljs-keyword">else</span> <span class="hljs-keyword">if</span> (<span class="hljs-built_in">this</span>.score &gt;= <span class="hljs-number">80</span>) {
      <span class="hljs-built_in">this</span>.grade = <span class="hljs-string">'B'</span>;
    } <span class="hljs-keyword">else</span> <span class="hljs-keyword">if</span> (<span class="hljs-built_in">this</span>.score &gt;= <span class="hljs-number">70</span>) {
      <span class="hljs-built_in">this</span>.grade = <span class="hljs-string">'C'</span>;
    } <span class="hljs-keyword">else</span> <span class="hljs-keyword">if</span> (<span class="hljs-built_in">this</span>.score &gt;= <span class="hljs-number">60</span>) {
      <span class="hljs-built_in">this</span>.grade = <span class="hljs-string">'D'</span>;
    } <span class="hljs-keyword">else</span> {
      <span class="hljs-built_in">this</span>.grade = <span class="hljs-string">'F'</span>;
    }
  }
}
</code></pre>
<pre><code class="lang-xml"><span class="hljs-tag">&lt;<span class="hljs-name">div</span>&gt;</span>
<span class="hljs-tag">&lt;<span class="hljs-name">input</span> <span class="hljs-attr">type</span>=<span class="hljs-string">"number"</span> [(<span class="hljs-attr">ngModel</span>)]=<span class="hljs-string">"score"</span> <span class="hljs-attr">placeholder</span>=<span class="hljs-string">"Enter score"</span> /&gt;</span>
<span class="hljs-tag">&lt;<span class="hljs-name">button</span> (<span class="hljs-attr">click</span>)=<span class="hljs-string">"calculateGrade()"</span>&gt;</span>Calculate Grade<span class="hljs-tag">&lt;/<span class="hljs-name">button</span>&gt;</span>
<span class="hljs-tag">&lt;<span class="hljs-name">p</span> *<span class="hljs-attr">ngIf</span>=<span class="hljs-string">"grade"</span>&gt;</span>Your grade is {{ grade }}<span class="hljs-tag">&lt;/<span class="hljs-name">p</span>&gt;</span>
<span class="hljs-tag">&lt;/<span class="hljs-name">div</span>&gt;</span>
</code></pre>
<p><a target="_blank" href="https://github.com/joidjao/angularcomponents">github</a></p>
]]></content:encoded></item><item><title><![CDATA[Github Fundamentals]]></title><description><![CDATA[Step #1 — git init
This command initializes a new Git repository in your project directory. It creates a hidden .git folder to track changes in your project.

Step #2 — git status
The git status command shows the current state of your project, listin...]]></description><link>https://managing-files-and-folder-on-pa.hashnode.dev/github-fundamentals</link><guid isPermaLink="true">https://managing-files-and-folder-on-pa.hashnode.dev/github-fundamentals</guid><dc:creator><![CDATA[Jovy Gimeno Idjao]]></dc:creator><pubDate>Thu, 26 Sep 2024 04:32:29 GMT</pubDate><content:encoded><![CDATA[<p>Step #1 — git init</p>
<p>This command initializes a new Git repository in your project directory. It creates a hidden <code>.git</code> folder to track changes in your project.</p>
<p><img src="https://miro.medium.com/v2/resize:fit:381/1*76st61PvppMJ7yX2G8xfhQ.png" alt class="image--center mx-auto" /></p>
<p>Step #2 — git status</p>
<p>The <code>git status</code> command shows the current state of your project, listing any untracked files or changes that have not yet been staged for commit.</p>
<p><img src="https://miro.medium.com/v2/resize:fit:264/1*jC1_pKaml2C9kX-2WxNC-A.png" alt class="image--center mx-auto" /></p>
<p>Step #3 — git add .</p>
<p>The <code>git add .</code> command stages all modified or newly added files in your project, preparing them for a commit.</p>
<p><img src="https://miro.medium.com/v2/resize:fit:274/1*-04rQ9S729V3VHPw_DH59w.png" alt class="image--center mx-auto" /></p>
<p>Step #4 — git commit -m “message”</p>
<p>This command commits the staged changes and includes a message describing what changes were made. Be sure to write meaningful messages that summarize the work done.</p>
<p><img src="https://miro.medium.com/v2/resize:fit:232/1*u96BcBv5_Vj2n6w7UKOcAg.png" alt class="image--center mx-auto" /></p>
<p>Step #5 — git pull</p>
<p>The <code>git pull</code> command fetches updates from a remote repository and merges them into your local branch. This is useful to ensure your local work is up-to-date with the remote project.</p>
<p><img src="https://miro.medium.com/v2/resize:fit:223/1*_d6CCo8y_mMzWZbV0FpwMQ.png" alt class="image--center mx-auto" /></p>
<p>Step #6 — git push</p>
<p>The <code>git push</code> command uploads your local commits to a remote repository. Make sure you've committed all changes locally before pushing.</p>
<p><img src="https://miro.medium.com/v2/resize:fit:210/1*9eikpiDgQqh4Nv-xOrFJuQ.png" alt class="image--center mx-auto" /></p>
<p>Step #7 — git log</p>
<p>This command displays the commit history of the repository, showing commit IDs, messages, and authors. You can scroll through the log to review past commits.</p>
<p><img src="https://miro.medium.com/v2/resize:fit:212/1*81Sx1A_4HY56qSQVI5kPAw.png" alt class="image--center mx-auto" /></p>
]]></content:encoded></item><item><title><![CDATA[Creating a Database and Tables in MySQL with Dummy Data]]></title><description><![CDATA[I will demonstrate how to create a MySQL database and the tables that go with it using the command line in this blog article. Structured data is often managed with MySQL, a potent relational database management system. The fundamental stages will be ...]]></description><link>https://managing-files-and-folder-on-pa.hashnode.dev/creating-a-database-and-tables-in-mysql-with-dummy-data</link><guid isPermaLink="true">https://managing-files-and-folder-on-pa.hashnode.dev/creating-a-database-and-tables-in-mysql-with-dummy-data</guid><dc:creator><![CDATA[Jovy Gimeno Idjao]]></dc:creator><pubDate>Tue, 24 Sep 2024 12:36:31 GMT</pubDate><content:encoded><![CDATA[<p>I will demonstrate how to create a MySQL database and the tables that go with it using the command line in this blog article. Structured data is often managed with MySQL, a potent relational database management system. The fundamental stages will be covered in this tutorial, which include login into MySQL, making a database called denormalized_db, specifying five tables (employee, student, product, order, and sales), and populating each field with dummy data. This tutorial will provide you step-by-step instructions along with code samples, so it doesn't matter if you're a newbie or just brushing up on your abilities.</p>
<h3 id="heading-step-1-creating-the-database-denormalizeddb">Step 1: Creating the Database <code>denormalized_db</code></h3>
<p>This command creates a new database named <code>denormalized_db</code>. You can name it according to your project's needs.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1727180398698/6fb12162-dd9d-499c-83d1-b817aaa8daad.png" alt class="image--center mx-auto" /></p>
<h3 id="heading-step-2-using-the-database">Step 2: Using the Database</h3>
<p>After creating the database, you need to switch to it using the <code>USE</code> command.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1727180558116/72f82a89-8ce1-49f8-8847-5f112a64829c.png" alt class="image--center mx-auto" /></p>
<h3 id="heading-step-3-defining-tables">Step 3: Defining Tables</h3>
<p>This table holds employee details. The <code>employee_id</code> is the primary key, which auto-increments with each new entry.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1727180617075/286a51df-1046-4cf3-9cdd-27cc283c1f45.png" alt class="image--center mx-auto" /></p>
<p>This table holds student details. <code>student_id</code> serves as the primary key.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1727180486340/fcb25aed-82e9-4e47-9274-f1b94dd58495.png" alt class="image--center mx-auto" /></p>
<p>This table contains product information, with <code>product_id</code> as the primary key.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1727180696247/2a38988c-26a1-4059-aada-fade5e7ca349.png" alt class="image--center mx-auto" /></p>
<p>This table records orders, with <code>order_id</code> as the primary key and a foreign key reference to the <code>producttbl</code>.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1727180752042/0a30a48e-9580-4caa-8395-9c6e9a80ac09.png" alt class="image--center mx-auto" /></p>
<p>This table tracks sales, linking to <code>ordertbl</code> via the <code>order_id</code> foreign key.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1727180896849/6108ba73-c05f-4565-91b0-98d093a2e701.png" alt class="image--center mx-auto" /></p>
<h3 id="heading-step-4-inserting-dummy-data-into-each-table">Step 4: Inserting Dummy Data into Each Table</h3>
<p>This command inserts one sample employee record into the <code>employeetbl</code>.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1727180998524/5ac9eb3c-2990-4963-bfef-9f29fcc3f0a5.png" alt class="image--center mx-auto" /></p>
<p>This command inserts one sample student record.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1727181073194/ddf9a115-95eb-4d8f-99b9-78eb6bdc9300.png" alt class="image--center mx-auto" /></p>
<p>This command inserts one product record.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1727181123205/d3c6d2b8-2de5-46a5-9eb7-0a291b59d854.png" alt class="image--center mx-auto" /></p>
<p>This command logs one sale.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1727181284211/fa429649-5ebe-4703-ba95-f6cad6ef8eec.png" alt class="image--center mx-auto" /></p>
<h3 id="heading-step-5-results">Step 5: Results!</h3>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1727181330780/1bc79ccd-21b6-4ad0-9d71-2b07cc71813a.png" alt class="image--center mx-auto" /></p>
]]></content:encoded></item><item><title><![CDATA[Angular Basic Routing]]></title><description><![CDATA[This is a step-by-step tutorial on creating a simple Angular routing.
Step 1: Name your new repository AngularBasicRouting.

Step 2: Inside Angular Files, create a Components Folder.

Step #3: Create four components by going to your angular folder fi...]]></description><link>https://managing-files-and-folder-on-pa.hashnode.dev/angular-basic-routing</link><guid isPermaLink="true">https://managing-files-and-folder-on-pa.hashnode.dev/angular-basic-routing</guid><dc:creator><![CDATA[Jovy Gimeno Idjao]]></dc:creator><pubDate>Mon, 23 Sep 2024 13:27:41 GMT</pubDate><content:encoded><![CDATA[<p>This is a step-by-step tutorial on creating a simple Angular routing.</p>
<h3 id="heading-step-1-name-your-new-repository-angularbasicrouting">Step 1: Name your new repository AngularBasicRouting.</h3>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1727080250442/0f7ec0a7-23d5-4ead-b44c-30a71e542671.png" alt class="image--center mx-auto" /></p>
<h3 id="heading-step-2-inside-angular-files-create-a-components-folder">Step 2: Inside Angular Files, create a Components Folder.</h3>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1727080388425/ab09e124-a9d0-4599-a33e-6bedc05f5ba7.png" alt class="image--center mx-auto" /></p>
<h3 id="heading-step-3-create-four-components-by-going-to-your-angular-folder-files-and-using-the-command-ng-generate-component-foldernamefilename">Step #3: Create four components by going to your angular folder files and using the command "ng generate component foldername/filename."</h3>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1727080522115/17e511c8-6802-4327-a1c9-bf106865b376.png" alt class="image--center mx-auto" /></p>
<h3 id="heading-step-4-in-your-angular-files-now-create-an-appmodulets-file">Step #4: In your Angular Files, now create an app.module.ts file.</h3>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1727082783711/7512146c-9d35-4e41-91a2-df10b637a6ae.png" alt class="image--center mx-auto" /></p>
<h3 id="heading-step-5-apply-this-code">Step #5: Apply this code</h3>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1727082800587/f01686bb-3ac7-4d7a-a354-b4d5370cd89c.png" alt class="image--center mx-auto" /></p>
<h3 id="heading-step-6-remove-the-standalone-and-imports-code-from-your-appcomponentts-file-then-import-routeroutlet">Step #6: Remove the standalone and imports code from your app.component.ts file, then import RouterOutlet.</h3>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1727083055890/c48ea938-2ed3-4ec6-ac97-75dc7cb32fd8.png" alt class="image--center mx-auto" /></p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1727083071318/a43cc1c3-09b8-4f5d-8f6c-bc4048182997.png" alt class="image--center mx-auto" /></p>
<h3 id="heading-step-7-create-a-route-or-path">Step #7: Create a route or path.</h3>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1727083390317/43c8502f-41cf-4a8a-aec0-fea0bc18f06d.png" alt class="image--center mx-auto" /></p>
<h3 id="heading-step-8-proceed-to-the-components-folder-select-each-component-folder-and-remove-all-standalone-and-imports-from-each-typescript-component">Step #8: Proceed to the components folder, select each component folder, and remove all standalone and imports from each typescript component.</h3>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1727087160717/fdd84f58-735f-4375-b655-b573c3902322.png" alt class="image--center mx-auto" /></p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1727087182279/3f2497fe-98f0-47b5-9092-0efd59fb5898.png" alt class="image--center mx-auto" /></p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1727087196537/f18ca11a-a735-4fdf-9e35-bb750ca4062e.png" alt class="image--center mx-auto" /></p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1727087219328/136f80cf-1757-4e49-80c6-16b1ca896642.png" alt class="image--center mx-auto" /></p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1727087242128/2faffc62-06c0-44af-9e54-69f27683b177.png" alt class="image--center mx-auto" /></p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1727087260398/d1d7447c-562c-477a-9ee5-74209834ca76.png" alt class="image--center mx-auto" /></p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1727092027611/3f511844-d0c4-4731-aa93-efe6d83f0dfb.png" alt class="image--center mx-auto" /></p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1727092059836/1ed15b14-1e76-4d4b-a764-b3980663888d.png" alt class="image--center mx-auto" /></p>
<h3 id="heading-step-9-include-the-statements-on-each-component">Step #9: Include the statements on each component.</h3>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1727092680433/52bb0558-f819-422b-b46c-1c801c741100.png" alt class="image--center mx-auto" /></p>
<h3 id="heading-step-10-put-this-code-in-place-of-the-main-typescript">Step #10: Put this code in place of the main TypeScript</h3>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1727096229949/5a93ed7c-5948-4e62-837c-22cfcfc29479.png" alt class="image--center mx-auto" /></p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1727096246489/4c366524-076a-4c97-887f-8a26d597a627.png" alt class="image--center mx-auto" /></p>
<h3 id="heading-step-11-include-the-routerlink-with-each-component-and-give-it-a-name">Step #11: Include the routerlink with each component and give it a name.</h3>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1727096471098/feb58065-5e00-46f4-8f7e-ec89c1945c39.png" alt class="image--center mx-auto" /></p>
<h3 id="heading-step-12-using-command-prompt-navigate-to-the-angular-folder-files-and-execute-the-ng-serve-command-to-launch-the-application-the-output-will-look-like-this">Step #12: Using Command Prompt, navigate to the Angular folder files and execute the ng serve command to launch the application. The output will look like this.</h3>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1727097475906/a2134daa-f8f6-405d-9b3a-b2ce3326bf32.png" alt class="image--center mx-auto" /></p>
<h3 id="heading-step-13-finally-publish-the-project-to-your-github-repository">Step #13: Finally, publish the project to your Github repository.</h3>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1727097937876/74cb9031-1779-445a-9702-79b54075b632.png" alt class="image--center mx-auto" /></p>
<div class="embed-wrapper"><div class="embed-loading"><div class="loadingRow"></div><div class="loadingRow"></div></div><a class="embed-card" href="https://github.com/joidjao/AngularBasicRouting">https://github.com/joidjao/AngularBasicRouting</a></div>
]]></content:encoded></item><item><title><![CDATA[Using Git for Version Control on PythonAnywhere.]]></title><description><![CDATA[Introduction
In this article, I will guide you through the version control using Git on PythonAnywhere. Committing changes: This guide does include several sections like initializing a Git repository, making changes and committing to it for multiple ...]]></description><link>https://managing-files-and-folder-on-pa.hashnode.dev/using-git-for-version-control-on-pythonanywhere</link><guid isPermaLink="true">https://managing-files-and-folder-on-pa.hashnode.dev/using-git-for-version-control-on-pythonanywhere</guid><dc:creator><![CDATA[Jovy Gimeno Idjao]]></dc:creator><pubDate>Fri, 20 Sep 2024 11:43:27 GMT</pubDate><content:encoded><![CDATA[<h3 id="heading-introduction">Introduction</h3>
<p>In this article, I will guide you through the version control using Git on PythonAnywhere. Committing changes: This guide does include several sections like initializing a Git repository, making changes and committing to it for multiple times, and finally pushing the project at GitHub. At the end of this topic, you will be able to identify and explain how to use Git to optimize working with files in your project.</p>
<h3 id="heading-outline">Outline:</h3>
<ol>
<li><p>Initializing Git</p>
<p> The first step was to initialize a Git repository in my project folder. This was done in a PythonAnywhere Bash console.</p>
<pre><code class="lang-bash"> <span class="hljs-comment"># Navigate to the project directory</span>
 <span class="hljs-built_in">cd</span> /home/yourusername/projects

 <span class="hljs-comment"># Initialize Git in the folder</span>
 git init

 <span class="hljs-comment"># Verify Git initialization</span>
 ls -a
</code></pre>
<p> Initializing Git created a <code>.git</code> folder, indicating that version control was now active in the project directory.</p>
</li>
<li><p>It is very time consuming to make changes to the file and commit 10 times.<br /> It was after initiating Git that I created a file that is, Project_file. txt and made a change, committed it ten times. This enabled me to take track on every version of my file.</p>
<ol>
<li><p>Commands Used:</p>
<p> Create a new file and make the first commit:Create a new file and make the first commit:</p>
<pre><code class="lang-bash"> <span class="hljs-built_in">echo</span> <span class="hljs-string">"Initial content"</span> &gt; project_file.txt
 git add project_file.txt
 git commit -m <span class="hljs-string">"Initial commit: add project_file.txt"</span>
</code></pre>
</li>
<li><p><strong>Modify the file and commit changes</strong>: For each subsequent change, I followed this process:</p>
<pre><code class="lang-bash"> <span class="hljs-built_in">echo</span> <span class="hljs-string">"Change 1"</span> &gt;&gt; project_file.txt
 git add project_file.txt
 git commit -m <span class="hljs-string">"Commit #1: added Change 1"</span>

 <span class="hljs-comment"># Repeat for all 10 commits:</span>
 <span class="hljs-built_in">echo</span> <span class="hljs-string">"Change 2"</span> &gt;&gt; project_file.txt
 git add project_file.txt
 git commit -m <span class="hljs-string">"Commit #2: added Change 2"</span>
</code></pre>
</li>
</ol>
</li>
<li><p>Adding a Remote Repository and Pushing the Code to GitHub</p>
<p> All commits were then done locally, after which the author linked their local Git repository to a remote repository on GitHub to host the code online.</p>
<ol>
<li><p>Add a remote repository: I was able to create a new repository on GitHub and connect it with my local folder with the project:</p>
<pre><code class="lang-bash"> git remote add origin https://github.com/yourusername/ACT3.git
</code></pre>
</li>
<li><p>Push the changes to GitHub: Finally, synchronized all commits in the local repository with the remote repository:</p>
<pre><code class="lang-bash"> git push -u origin main
</code></pre>
</li>
</ol>
</li>
</ol>
]]></content:encoded></item><item><title><![CDATA[Managing Files and Folders on PythonAnywhere with Bash Commands.]]></title><description><![CDATA[Introduction
In this post, I’ll explain what directories and files are, how you can create, handle, and delete them with Bash commands on PythonAnywhere. Phrased as these commands they are relevant to any operating system based on Linux since they wi...]]></description><link>https://managing-files-and-folder-on-pa.hashnode.dev/managing-files-and-folders-on-pythonanywhere-with-bash-commands</link><guid isPermaLink="true">https://managing-files-and-folder-on-pa.hashnode.dev/managing-files-and-folders-on-pythonanywhere-with-bash-commands</guid><dc:creator><![CDATA[Jovy Gimeno Idjao]]></dc:creator><pubDate>Fri, 20 Sep 2024 09:55:55 GMT</pubDate><content:encoded><![CDATA[<h3 id="heading-introduction">Introduction</h3>
<p>In this post, I’ll explain what directories and files are, how you can create, handle, and delete them with Bash commands on PythonAnywhere. Phrased as these commands they are relevant to any operating system based on Linux since they will help the users to organize, modify and manage directories and files, as well as clean them up. In this part, I will provide insight on how to go about the Basic bash commands like how to create more than one directory, how to add files and how to delete them.</p>
<h3 id="heading-creating-directories">Creating Directories</h3>
<p>First, I started with the formation of 20 directories for various usages (documents, music, images, etc. ) in the Bash console using the <code>mkdir</code> command.</p>
<pre><code class="lang-bash">mkdir documents pictures downloads music videos projects notes backups reports logs work templates drafts code images scripts tests archives configs keys resources
</code></pre>
<p>The command that is used to create new directories is <code>mkdir</code>. It is done this way because all the directory names that are listed are created at the same time. The folders are as follows and each folder can be used for a specific type of data: Documents sub-folder for text files, music sub-folder for audio files, backups sub-folder for backup data.</p>
<p><strong>Verification:</strong> To ensure that the directories were created well, I had to use a linux command known is</p>
<pre><code class="lang-bash">ls
</code></pre>
<p>This lists all the folders in the current directory including the hidden ones and also the subdirectories.</p>
<h3 id="heading-adding-files">Adding Files</h3>
<p>Then, I typed “<code>cd</code> docs” to go to the documents directory then created 10 text files using the command “<code>touch</code> filename”. Here’s how I did it: Here’s how I did it:</p>
<ol>
<li><p>First, I moved into the <strong>documents</strong> directory:</p>
<pre><code class="lang-bash"> <span class="hljs-built_in">cd</span> documents
</code></pre>
</li>
<li><p>Then, I created 10 files in one go using:</p>
</li>
</ol>
<pre><code class="lang-bash">touch file{1..10}.txt
</code></pre>
<p>The <code>touch</code> command for creating zero bytes files, or alter timestamps on files. Compiling the languages using the {1..10} syntax yields the names of the files as file1. txt to file10. txt automatically.</p>
<p><strong>Verification:</strong> To verify the creation of the files, I listed the contents of the <strong>documents</strong> folder with:</p>
<pre><code class="lang-bash">ls
</code></pre>
<h3 id="heading-removing-files-and-directories">Removing Files and Directories</h3>
<p>For cleaning up I had to delete certain files and directories.</p>
<ol>
<li><p>Removing Files: I deleted a file using the rm command from the documents directory. For example, to delete file5.</p>
<pre><code class="lang-bash"> rm file5.txt
</code></pre>
<p> This command removes the file, The <code>rm</code> command is undesirable for recovery as it deletes the file permanently from the OS.</p>
</li>
<li><p>Removing Directories: I also had no choice but to delete root..documents and all the sub directories that were within it. Since the directory contained files, I used the <code>rm -r</code> command, which allows recursive deletion of a directory and its files:Since the directory contained files, I used the <code>rm -r</code> command, which allows recursive deletion of a directory and its files:</p>
<pre><code class="lang-bash"> <span class="hljs-built_in">cd</span> ..
 rm -r documents
</code></pre>
<p> The <code>-r</code> flag makes the overall command recursive therefore, it is able to delete the folder and all its sub-folder or files.</p>
</li>
</ol>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1726826054720/a00c0273-df49-4a55-99b7-8db73e0ef08b.png" alt class="image--center mx-auto" /></p>
]]></content:encoded></item></channel></rss>