<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Forem: Tej</title>
    <description>The latest articles on Forem by Tej (@tpkahlon).</description>
    <link>https://forem.com/tpkahlon</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F155503%2F846d2627-d238-46e6-8d3d-babab0dd15de.png</url>
      <title>Forem: Tej</title>
      <link>https://forem.com/tpkahlon</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/tpkahlon"/>
    <language>en</language>
    <item>
      <title>JavaScript</title>
      <dc:creator>Tej</dc:creator>
      <pubDate>Fri, 01 Nov 2019 23:48:20 +0000</pubDate>
      <link>https://forem.com/tpkahlon/my-beginner-projects-in-js-css-html-4ba7</link>
      <guid>https://forem.com/tpkahlon/my-beginner-projects-in-js-css-html-4ba7</guid>
      <description>&lt;h3&gt;
  
  
  freeCodeCamp
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Project Title&lt;/th&gt;
&lt;th&gt;Project Link&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;JavaScript Algorithms and Data Structures Certification&lt;/td&gt;
&lt;td&gt;&lt;a href="https://www.youtube.com/playlist?list=PLUwWRchG-odq30zS-__AmZQQAcHzpBXaB"&gt;View Demo&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h3&gt;
  
  
  Gatsby
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Project Title&lt;/th&gt;
&lt;th&gt;Project Link&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;JSXP&lt;/td&gt;
&lt;td&gt;&lt;a href="https://jsxp.netlify.app"&gt;View Demo&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Blog&lt;/td&gt;
&lt;td&gt;&lt;a href="https://satrangi.netlify.app"&gt;View Demo&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h3&gt;
  
  
  Vanilla JavaScript
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Project Title&lt;/th&gt;
&lt;th&gt;Project Link&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Accordion&lt;/td&gt;
&lt;td&gt;&lt;a href="https://tpkahlon.github.io/javascript/40"&gt;View Demo&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Alarm&lt;/td&gt;
&lt;td&gt;&lt;a href="https://tpkahlon.github.io/javascript/23"&gt;View Demo&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Anti Chat&lt;/td&gt;
&lt;td&gt;&lt;a href="https://tpkahlon.github.io/javascript/30"&gt;View Demo&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Basic Fetch API&lt;/td&gt;
&lt;td&gt;&lt;a href="https://tpkahlon.github.io/javascript/basic-fetch-api"&gt;View Demo&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Basic Web Crawler&lt;/td&gt;
&lt;td&gt;&lt;a href="https://tpkahlon.github.io/javascript/16"&gt;View Demo&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;BetaKit RSS Compiler&lt;/td&gt;
&lt;td&gt;&lt;a href="https://tpkahlon.github.io/javascript/33"&gt;View Demo&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Calculator&lt;/td&gt;
&lt;td&gt;&lt;a href="https://tpkahlon.github.io/javascript/calculator"&gt;View Demo&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Captcha&lt;/td&gt;
&lt;td&gt;&lt;a href="https://tpkahlon.github.io/javascript/45"&gt;View Demo&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Cat Me&lt;/td&gt;
&lt;td&gt;&lt;a href="https://tpkahlon.github.io/javascript/cat-gallery"&gt;View Demo&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Cat in Space&lt;/td&gt;
&lt;td&gt;&lt;a href="https://tpkahlon.github.io/javascript/32"&gt;View Demo&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Check Unicode of a String&lt;/td&gt;
&lt;td&gt;&lt;a href="https://tpkahlon.github.io/javascript/check-unicode"&gt;View Demo&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Checkout page&lt;/td&gt;
&lt;td&gt;&lt;a href="https://tpkahlon.github.io/javascript/17"&gt;View Demo&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Color Picker&lt;/td&gt;
&lt;td&gt;&lt;a href="https://tpkahlon.github.io/javascript/34"&gt;View Demo&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Corona Virus Cases Tracker&lt;/td&gt;
&lt;td&gt;&lt;a href="https://tpkahlon.github.io/javascript/29"&gt;View Demo&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Counter&lt;/td&gt;
&lt;td&gt;&lt;a href="https://tpkahlon.github.io/javascript/35"&gt;View Demo&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Dark Internet&lt;/td&gt;
&lt;td&gt;&lt;a href="https://tpkahlon.github.io/javascript/26"&gt;View Demo&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Daylight Saving Timezone&lt;/td&gt;
&lt;td&gt;&lt;a href="https://tpkahlon.github.io/javascript/1"&gt;View Demo&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Dinky&lt;/td&gt;
&lt;td&gt;&lt;a href="https://tpkahlon.github.io/javascript/dinky"&gt;View Demo&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Eye Examination&lt;/td&gt;
&lt;td&gt;&lt;a href="https://tpkahlon.github.io/javascript/47"&gt;View Demo&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Editable Text page&lt;/td&gt;
&lt;td&gt;&lt;a href="https://tpkahlon.github.io/javascript/18"&gt;View Demo&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Functions&lt;/td&gt;
&lt;td&gt;&lt;a href="https://tpkahlon.github.io/javascript/functions"&gt;View Demo&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Humans&lt;/td&gt;
&lt;td&gt;&lt;a href="https://tpkahlon.github.io/javascript/27A"&gt;View Demo&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Iterators in JavaScript&lt;/td&gt;
&lt;td&gt;&lt;a href="https://tpkahlon.github.io/javascript/24"&gt;View Demo&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Load Video+Content&lt;/td&gt;
&lt;td&gt;&lt;a href="https://tpkahlon.github.io/javascript/42"&gt;View Demo&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Local Library page using Object Prototypes&lt;/td&gt;
&lt;td&gt;&lt;a href="https://tpkahlon.github.io/javascript/19"&gt;View Demo&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;MDN Periodic Table&lt;/td&gt;
&lt;td&gt;&lt;a href="https://tpkahlon.github.io/javascript/43"&gt;View Demo&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Modal&lt;/td&gt;
&lt;td&gt;&lt;a href="https://tpkahlon.github.io/javascript/39"&gt;View Demo&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;NaMo Memes&lt;/td&gt;
&lt;td&gt;&lt;a href="https://tpkahlon.github.io/javascript/31"&gt;View Demo&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;News Fetch API&lt;/td&gt;
&lt;td&gt;&lt;a href="https://tpkahlon.github.io/javascript/news-fetch-api"&gt;View Demo&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;News&lt;/td&gt;
&lt;td&gt;&lt;a href="https://tpkahlon.github.io/javascript/21"&gt;View Demo&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;One Month Weather Tracker&lt;/td&gt;
&lt;td&gt;&lt;a href="https://tpkahlon.github.io/javascript/3"&gt;View Demo&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;PetBar&lt;/td&gt;
&lt;td&gt;&lt;a href="https://tpkahlon.github.io/javascript/37"&gt;View Demo&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Program Structure&lt;/td&gt;
&lt;td&gt;&lt;a href="https://tpkahlon.github.io/javascript/program-structure"&gt;View Demo&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Radio Stations&lt;/td&gt;
&lt;td&gt;&lt;a href="https://tpkahlon.github.io/javascript/radio-app"&gt;View Demo&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Random Text Generator&lt;/td&gt;
&lt;td&gt;&lt;a href="https://tpkahlon.github.io/javascript/random-text-generator"&gt;View Demo&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Regular Expressions&lt;/td&gt;
&lt;td&gt;&lt;a href="https://tpkahlon.github.io/javascript/22"&gt;View Demo&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Shutter Menu&lt;/td&gt;
&lt;td&gt;&lt;a href="https://tpkahlon.github.io/javascript/38"&gt;View Demo&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Slider&lt;/td&gt;
&lt;td&gt;&lt;a href="https://tpkahlon.github.io/javascript/36"&gt;View Demo&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Solo Cricket&lt;/td&gt;
&lt;td&gt;&lt;a href="https://tpkahlon.github.io/javascript/46"&gt;View Demo&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Stars&lt;/td&gt;
&lt;td&gt;&lt;a href="https://tpkahlon.github.io/javascript/stars"&gt;View Demo&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Tabs&lt;/td&gt;
&lt;td&gt;&lt;a href="https://tpkahlon.github.io/javascript/41"&gt;View Demo&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Toronto&lt;/td&gt;
&lt;td&gt;&lt;a href="https://tpkahlon.github.io/javascript/toronto"&gt;View Demo&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;YouTube Playlist Duration Calculator&lt;/td&gt;
&lt;td&gt;&lt;a href="https://tpkahlon.github.io/javascript/44"&gt;View Demo&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Wall Clock&lt;/td&gt;
&lt;td&gt;&lt;a href="https://tpkahlon.github.io/javascript/25"&gt;View Demo&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Windows XP Screensaver&lt;/td&gt;
&lt;td&gt;&lt;a href="https://tpkahlon.github.io/javascript/15"&gt;View Demo&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h3&gt;
  
  
  React
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Project Title&lt;/th&gt;
&lt;th&gt;Project Link&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Angular&lt;/td&gt;
&lt;td&gt;&lt;a href="https://crudinangularjs.netlify.app"&gt;View Demo&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Booster&lt;/td&gt;
&lt;td&gt;&lt;a href="https://boostmeup.netlify.app"&gt;View Demo&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Boredom&lt;/td&gt;
&lt;td&gt;&lt;a href="https://boredom.netlify.app"&gt;View Demo&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;BB API&lt;/td&gt;
&lt;td&gt;&lt;a href="https://bbapi.netlify.app"&gt;View Demo&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;CDNJS&lt;/td&gt;
&lt;td&gt;&lt;a href="https://jscdn.netlify.app"&gt;View Demo&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;CWC19&lt;/td&gt;
&lt;td&gt;&lt;a href="https://crudwithcwc19.netlify.app"&gt;View Demo&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;CWC19 Team Directory&lt;/td&gt;
&lt;td&gt;&lt;a href="https://cwctd.netlify.app"&gt;View Demo&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Dog Breeds&lt;/td&gt;
&lt;td&gt;&lt;a href="https://breedsofdogs.netlify.app"&gt;View Demo&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Events in Toronto&lt;/td&gt;
&lt;td&gt;&lt;a href="https://eventsto.netlify.app"&gt;View Demo&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;FEDTimes&lt;/td&gt;
&lt;td&gt;&lt;a href="https://fedtimes.netlify.app"&gt;View Demo&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Festivals in Toronto&lt;/td&gt;
&lt;td&gt;&lt;a href="https://festivalsto.netlify.app"&gt;View Demo&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;FreeCodeCamp Full Curriculum&lt;/td&gt;
&lt;td&gt;&lt;a href="https://fccfc.netlify.app"&gt;View Demo&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Gindeed&lt;/td&gt;
&lt;td&gt;&lt;a href="https://gindeed.netlify.app"&gt;View Demo&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;GitUD&lt;/td&gt;
&lt;td&gt;&lt;a href="https://gitud.netlify.app"&gt;View Demo&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Gyaan&lt;/td&gt;
&lt;td&gt;&lt;a href="https://gyaan.netlify.app"&gt;View Demo&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;HackerNews&lt;/td&gt;
&lt;td&gt;&lt;a href="https://top10hackernews.netlify.app"&gt;View Demo&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Happy Birthday Playlist Tracker&lt;/td&gt;
&lt;td&gt;&lt;a href="https://hbdsongs.netlify.app"&gt;View Demo&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Harvard Art Museum&lt;/td&gt;
&lt;td&gt;&lt;a href="https://harvard-art-museum.netlify.app"&gt;View Demo&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Hukamama&lt;/td&gt;
&lt;td&gt;&lt;a href="https://hukamnama.netlify.app/"&gt;View Demo&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Indian Geography&lt;/td&gt;
&lt;td&gt;&lt;a href="https://indiangeography.netlify.app"&gt;View Demo&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;IPTV&lt;/td&gt;
&lt;td&gt;&lt;a href="https://iptv-org.netlify.app"&gt;View Demo&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Jackal&lt;/td&gt;
&lt;td&gt;&lt;a href="https://jackal.netlify.app"&gt;View Demo&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;LearnYou&lt;/td&gt;
&lt;td&gt;&lt;a href="https://learnyou.netlify.app"&gt;View Demo&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Multiple Images&lt;/td&gt;
&lt;td&gt;&lt;a href="https://multiple-images.netlify.app"&gt;View Demo&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Numbers&lt;/td&gt;
&lt;td&gt;&lt;a href="https://numbersapi.netlify.app"&gt;View Demo&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Radio Stations (Punjabi Edition)&lt;/td&gt;
&lt;td&gt;&lt;a href="https://japji.netlify.app"&gt;View Demo&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Radio Stations (Toronto Edition)&lt;/td&gt;
&lt;td&gt;&lt;a href="https://radioto.netlify.app"&gt;View Demo&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Reminder&lt;/td&gt;
&lt;td&gt;&lt;a href="https://myreminders.netlify.app"&gt;View Demo&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Sikh Gurus&lt;/td&gt;
&lt;td&gt;&lt;a href="https://sikhism.netlify.app"&gt;View Demo&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Singers&lt;/td&gt;
&lt;td&gt;&lt;a href="https://punjabitopten.netlify.app"&gt;View Demo&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Stations in Toronto&lt;/td&gt;
&lt;td&gt;&lt;a href="https://stationsto.netlify.app"&gt;View Demo&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Surnames&lt;/td&gt;
&lt;td&gt;&lt;a href="https://surnames.netlify.app"&gt;View Demo&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;TTC&lt;/td&gt;
&lt;td&gt;&lt;a href="https://ttcinc.netlify.app"&gt;View Demo&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;TV Channel Employees&lt;/td&gt;
&lt;td&gt;&lt;a href="https://crudwithemployees.netlify.app"&gt;View Demo&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;TV Series&lt;/td&gt;
&lt;td&gt;&lt;a href="https://tvshowsapi.netlify.app/"&gt;View Demo&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;TikTok&lt;/td&gt;
&lt;td&gt;&lt;a href="https://tiktoks.netlify.app"&gt;View Demo&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;University List&lt;/td&gt;
&lt;td&gt;&lt;a href="https://universities.netlify.app"&gt;View Demo&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;WWE Superstars&lt;/td&gt;
&lt;td&gt;&lt;a href="https://wwestars.netlify.app"&gt;View Demo&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Waste Wizard&lt;/td&gt;
&lt;td&gt;&lt;a href="https://wasteto.netlify.app"&gt;View Demo&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Watch a Live TV&lt;/td&gt;
&lt;td&gt;&lt;a href="https://bbctoronto.netlify.app"&gt;View Demo&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Weather&lt;/td&gt;
&lt;td&gt;&lt;a href="https://monthlyweather.netlify.app"&gt;View Demo&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Web Jokes (Norris)&lt;/td&gt;
&lt;td&gt;&lt;a href="https://jokesbychucknorris.netlify.app"&gt;View Demo&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Web Jokes (Random)&lt;/td&gt;
&lt;td&gt;&lt;a href="https://morejokes.netlify.app"&gt;View Demo&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;YouTube Channel API&lt;/td&gt;
&lt;td&gt;&lt;a href="https://jaanmahal.netlify.app"&gt;View Demo&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h3&gt;
  
  
  Redux
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Project Title&lt;/th&gt;
&lt;th&gt;Project Link&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;CRUD Operations using React Context&lt;/td&gt;
&lt;td&gt;&lt;a href="https://react-context-crud.netlify.app"&gt;View Demo&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Redux Basics&lt;/td&gt;
&lt;td&gt;&lt;a href="https://tpkahlon.github.io/javascript/redux"&gt;View Demo&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Engineering (Modern React+Redux Workflow)&lt;/td&gt;
&lt;td&gt;&lt;a href="https://bmo-engineering.netlify.app"&gt;View Demo&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h3&gt;
  
  
  React in Professional World
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Project Title&lt;/th&gt;
&lt;th&gt;Project Link&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Bind Static Data to UI&lt;/td&gt;
&lt;td&gt;&lt;a href="https://cars-list.netlify.app/"&gt;View Demo&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;PWA with Styled Components&lt;/td&gt;
&lt;td&gt;&lt;a href="https://a-random-user.netlify.app/"&gt;View Demo&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;The Star Wars API&lt;/td&gt;
&lt;td&gt;&lt;a href="https://tswa.netlify.app/"&gt;View Demo&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

</description>
      <category>html</category>
      <category>css</category>
      <category>javascript</category>
    </item>
    <item>
      <title>React</title>
      <dc:creator>Tej</dc:creator>
      <pubDate>Tue, 29 Oct 2019 15:30:14 +0000</pubDate>
      <link>https://forem.com/tpkahlon/my-react-projects-381p</link>
      <guid>https://forem.com/tpkahlon/my-react-projects-381p</guid>
      <description>&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Symbol&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;💡&lt;/td&gt;
&lt;td&gt;Project developed in order to understand a concept&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;📕&lt;/td&gt;
&lt;td&gt;Project is no longer maintained&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;👶&lt;/td&gt;
&lt;td&gt;Project content is not updated regularly&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;📝&lt;/td&gt;
&lt;td&gt;Project is based on an exercise from a book&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;🔥&lt;/td&gt;
&lt;td&gt;My favorite projects&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  React
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Project Title&lt;/th&gt;
&lt;th&gt;Project Link&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Boredom 📕&lt;/td&gt;
&lt;td&gt;&lt;a href="https://boredom.netlify.app"&gt;View Demo&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;CWC19 📕&lt;/td&gt;
&lt;td&gt;&lt;a href="https://crudwithcwc19.netlify.app"&gt;View Demo&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Dog Breeds 📕&lt;/td&gt;
&lt;td&gt;&lt;a href="https://breedsofdogs.netlify.app"&gt;View Demo&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;fccFC 🔥&lt;/td&gt;
&lt;td&gt;&lt;a href="https://fccfc.netlify.app"&gt;View Demo&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;GitUD 📕&lt;/td&gt;
&lt;td&gt;&lt;a href="https://gitud.netlify.app"&gt;View Demo&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Gyaan 📕&lt;/td&gt;
&lt;td&gt;&lt;a href="https://gyaan.netlify.app"&gt;View Demo&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;HackerNews 📕&lt;/td&gt;
&lt;td&gt;&lt;a href="https://top10hackernews.netlify.app"&gt;View Demo&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Hukamama 🔥&lt;/td&gt;
&lt;td&gt;&lt;a href="https://hukamnama.netlify.app/"&gt;View Demo&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Indian Geography 📕&lt;/td&gt;
&lt;td&gt;&lt;a href="https://indiangeography.netlify.app"&gt;View Demo&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Numbers 📕&lt;/td&gt;
&lt;td&gt;&lt;a href="https://numbersapi.netlify.app"&gt;View Demo&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Singers 📕&lt;/td&gt;
&lt;td&gt;&lt;a href="https://punjabitopten.netlify.app"&gt;View Demo&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;TV Channel Employees 📕&lt;/td&gt;
&lt;td&gt;&lt;a href="https://crudwithemployees.netlify.app"&gt;View Demo&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Reminder 📕&lt;/td&gt;
&lt;td&gt;&lt;a href="https://myreminders.netlify.app"&gt;View Demo&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Sikh Gurus 📕&lt;/td&gt;
&lt;td&gt;&lt;a href="https://sikhism.netlify.app"&gt;View Demo&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Surnames 📕&lt;/td&gt;
&lt;td&gt;&lt;a href="https://surnames.netlify.app"&gt;View Demo&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Festivals in Toronto 📕&lt;/td&gt;
&lt;td&gt;&lt;a href="https://festivalsto.netlify.app"&gt;View Demo&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Events in Toronto 📕&lt;/td&gt;
&lt;td&gt;&lt;a href="https://eventsto.netlify.app"&gt;View Demo&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Stations in Toronto 📕&lt;/td&gt;
&lt;td&gt;&lt;a href="https://stationsto.netlify.app"&gt;View Demo&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;TV Series 📕&lt;/td&gt;
&lt;td&gt;&lt;a href="https://tvshowsapi.netlify.app/"&gt;View Demo&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Weather 📕&lt;/td&gt;
&lt;td&gt;&lt;a href="https://monthlyweather.netlify.app"&gt;View Demo&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;WWE Superstars 📕&lt;/td&gt;
&lt;td&gt;&lt;a href="https://wwestars.netlify.app"&gt;View Demo&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Web Jokes (Random) 📕&lt;/td&gt;
&lt;td&gt;&lt;a href="https://morejokes.netlify.app"&gt;View Demo&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Web Jokes (Norris) 📕&lt;/td&gt;
&lt;td&gt;&lt;a href="https://jokesbychucknorris.netlify.app"&gt;View Demo&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Waste Wizard 📕&lt;/td&gt;
&lt;td&gt;&lt;a href="https://wasteto.netlify.app"&gt;View Demo&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Radio Stations (Punjabi Edition) 🔥📕&lt;/td&gt;
&lt;td&gt;&lt;a href="https://japji.netlify.app"&gt;View Demo&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Radio Stations (Toronto Edition) 🔥📕&lt;/td&gt;
&lt;td&gt;&lt;a href="https://radioto.netlify.app"&gt;View Demo&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;University List&lt;/td&gt;
&lt;td&gt;&lt;a href="https://universities.netlify.app"&gt;View Demo&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Gindeed&lt;/td&gt;
&lt;td&gt;&lt;a href="https://gindeed.netlify.app"&gt;View Demo&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Booster&lt;/td&gt;
&lt;td&gt;&lt;a href="https://boostmeup.netlify.app"&gt;View Demo&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;CDNJS&lt;/td&gt;
&lt;td&gt;&lt;a href="https://jscdn.netlify.app"&gt;View Demo&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  Redux
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Project Title&lt;/th&gt;
&lt;th&gt;Project Link&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Redux Basics 📝&lt;/td&gt;
&lt;td&gt;&lt;a href="https://tpkahlon.github.io/javascript/redux"&gt;View Demo&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

</description>
      <category>javascript</category>
      <category>react</category>
    </item>
    <item>
      <title>ES6</title>
      <dc:creator>Tej</dc:creator>
      <pubDate>Sun, 27 Oct 2019 21:00:25 +0000</pubDate>
      <link>https://forem.com/tpkahlon/es6-concepts-using-emojis-1f7a</link>
      <guid>https://forem.com/tpkahlon/es6-concepts-using-emojis-1f7a</guid>
      <description>&lt;h2&gt;
  
  
  Course Credits
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;FreeCodeCamp&lt;/li&gt;
&lt;li&gt;Dylan Israel&lt;/li&gt;
&lt;li&gt;Course Link: &lt;a href="https://www.youtube.com/watch?v=nZ1DMMsyVyI"&gt;View&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  TOC
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Template Literals&lt;/li&gt;
&lt;li&gt;Destructuring&lt;/li&gt;
&lt;li&gt;Object Literal&lt;/li&gt;
&lt;li&gt;For of loop&lt;/li&gt;
&lt;li&gt;Spread operator&lt;/li&gt;
&lt;li&gt;Rest operator&lt;/li&gt;
&lt;li&gt;Arrow Functions&lt;/li&gt;
&lt;li&gt;Default Params&lt;/li&gt;
&lt;li&gt;Array.includes&lt;/li&gt;
&lt;li&gt;Let &amp;amp; const&lt;/li&gt;
&lt;li&gt;Export &amp;amp; import&lt;/li&gt;
&lt;li&gt;String.padStart(), String.padEnd()&lt;/li&gt;
&lt;li&gt;Classes&lt;/li&gt;
&lt;li&gt;Trailing commas&lt;/li&gt;
&lt;li&gt;Async/Await&lt;/li&gt;
&lt;li&gt;Sets&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Template Literals
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;fruit&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;🍌&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;milk&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;🥛&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;bananaShake&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;fruit&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;milk&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="s2"&gt;`(&lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;fruit&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;) Banana (&lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;milk&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;) Milk shake is ready.`&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;`&lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;bananaShake&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;fruit&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;milk&lt;/span&gt;&lt;span class="p"&gt;)}&lt;/span&gt;&lt;span class="s2"&gt;`&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Destructuring
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Objects
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;purchasedItems&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="na"&gt;fruit&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;🍇&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="na"&gt;vegetable&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;🥕&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="na"&gt;bakery&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;🍪&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;
&lt;span class="p"&gt;};&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;bakery&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;purchasedItems&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;`Hungry? How about try a &lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;bakery&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;?`&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Arrays
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;cart&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;🍇&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;🥕&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;🍪&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;🥩&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;];&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;item&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;cart&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;`Cashier scanned &lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;item&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="s2"&gt; first.`&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Object Literal
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;boilEgg&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;egg&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;water&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;salt&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;recipe&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nx"&gt;egg&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="nx"&gt;water&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="nx"&gt;salt&lt;/span&gt;
  &lt;span class="p"&gt;};&lt;/span&gt;
  &lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;`Get a saucepan, Add 3 cups &lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;recipe&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;water&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="s2"&gt; and a pinch of &lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;recipe&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;salt&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;. Throw &lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;recipe&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;egg&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="s2"&gt; and boil for 10 minutes.`&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="nx"&gt;boilEgg&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;🥚&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;🚰&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;🧂&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  For of loop
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;let&lt;/span&gt; &lt;span class="nx"&gt;bill&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;receipt&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mf"&gt;1.99&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mf"&gt;13.67&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mf"&gt;14.21&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mf"&gt;5.27&lt;/span&gt;&lt;span class="p"&gt;];&lt;/span&gt;
&lt;span class="k"&gt;for&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;item&lt;/span&gt; &lt;span class="k"&gt;of&lt;/span&gt; &lt;span class="nx"&gt;receipt&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nx"&gt;bill&lt;/span&gt; &lt;span class="o"&gt;+=&lt;/span&gt; &lt;span class="nx"&gt;item&lt;/span&gt;
&lt;span class="p"&gt;};&lt;/span&gt;
&lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;`Your total bill is $&lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;bill&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;.`&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Spread operator
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;purchasedItems&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="na"&gt;fruit&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;🍇&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="na"&gt;vegetable&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;🥕&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="na"&gt;bakery&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;🍪&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;
&lt;span class="p"&gt;};&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;juiceRecipe&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="p"&gt;...&lt;/span&gt;&lt;span class="nx"&gt;purchasedItems&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="na"&gt;kitchen&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;sugar&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="na"&gt;device&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;blender&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;
&lt;span class="p"&gt;};&lt;/span&gt;
&lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;`Trying a &lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;juiceRecipe&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;vegetable&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="s2"&gt; juice.`&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Rest operator
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;cart&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[];&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;addItem&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;(...&lt;/span&gt;&lt;span class="nx"&gt;items&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;`&lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;items&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="s2"&gt; added in the card. Total items in the cart: &lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;items&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;length&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;.`&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="nx"&gt;addItem&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;🍎&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;🥭&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;🍍&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;🍌&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Arrow Functions
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;shoppingBag&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;
  &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="na"&gt;id&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;🥭&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="na"&gt;type&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;fruit&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;
  &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="na"&gt;id&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;🍎&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="na"&gt;type&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;fruit&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;
  &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="na"&gt;id&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;🍌&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="na"&gt;type&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;fruit&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;
  &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="na"&gt;id&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;4&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;🥕&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="na"&gt;type&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;vegetable&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;];&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;findVegetable&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;shoppingBag&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;filter&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;item&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="nx"&gt;item&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;type&lt;/span&gt; &lt;span class="o"&gt;===&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;vegetable&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="nx"&gt;findVegetable&lt;/span&gt; &lt;span class="p"&gt;?&lt;/span&gt; &lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;`&lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;findVegetable&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;length&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="s2"&gt; vegetable found in the bag.`&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Forgot to buy vegetables.&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Default Params
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;readyToCheckout&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;limit&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;10&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="nx"&gt;limit&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;=&lt;/span&gt; &lt;span class="mi"&gt;10&lt;/span&gt; &lt;span class="p"&gt;?&lt;/span&gt; &lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;`Today, shopping was in budget.`&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;`Today, lot of items were bought.`&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="nx"&gt;readyToCheckout&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;23&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Array.includes
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;receipt&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;🍎&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;🥭&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;🍍&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;🍌&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;];&lt;/span&gt;
&lt;span class="nx"&gt;receipt&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;includes&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;🍌&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;?&lt;/span&gt; &lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;`You bought bananas?`&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;`How come there are no bananas?`&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Let &amp;amp; const
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;let&lt;/span&gt; &lt;span class="nx"&gt;apple&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="nx"&gt;apple&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;🍏&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;`Green Apple: &lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;apple&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;`&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="nx"&gt;apple&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;🍎&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;`Red Apple: &lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;apple&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;`&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;banana&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;🍌&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;`Banana: &lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;banana&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;`&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="nx"&gt;banana&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;🌯&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="c1"&gt;// WRONG&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Export &amp;amp; import
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Example: &lt;a href="https://codesandbox.io/s/practical-water-mnzjj"&gt;View source&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  String.padStart(), String.padEnd()
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;let&lt;/span&gt; &lt;span class="nx"&gt;apple&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;🍏&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="kd"&gt;let&lt;/span&gt; &lt;span class="nx"&gt;banana&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;🍌&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;dozenApples&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;apple&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;padStart&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;12&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;apple&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;dozenBananas&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;banana&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;padEnd&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;12&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;banana&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;`Buy dozen apples: &lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;dozenApples&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;. Total apples: &lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;dozenApples&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;length&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;`&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;`Buy dozen bananas: &lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;dozenBananas&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;. Total bananas: &lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;dozenApples&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;length&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;`&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Classes
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Example: &lt;a href="https://codesandbox.io/s/naughty-frost-lrj7t"&gt;View source&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Trailing commas
&lt;/h2&gt;

&lt;p&gt;Trailing commas after function arguments, object declaration works, is not recommended.&lt;/p&gt;

&lt;h2&gt;
  
  
  Async/Await
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Example: &lt;a href="https://codesandbox.io/s/cool-tdd-m7pw1"&gt;View source&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Sets
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;let&lt;/span&gt; &lt;span class="nx"&gt;cart&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nb"&gt;Set&lt;/span&gt;&lt;span class="p"&gt;([&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;🍇&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;🥕&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;🍪&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;🍪&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;🍪&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;🍪&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;🥩&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;]);&lt;/span&gt;
&lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;`Total unique items in the cart: &lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;cart&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;size&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;`&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



</description>
      <category>javascript</category>
    </item>
    <item>
      <title>MERN</title>
      <dc:creator>Tej</dc:creator>
      <pubDate>Fri, 18 Oct 2019 17:46:13 +0000</pubDate>
      <link>https://forem.com/tpkahlon/let-s-learn-mern-7ha</link>
      <guid>https://forem.com/tpkahlon/let-s-learn-mern-7ha</guid>
      <description>&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Symbol&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;💡&lt;/td&gt;
&lt;td&gt;Project developed in order to understand a concept&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;📕&lt;/td&gt;
&lt;td&gt;Project is no longer maintained&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;👶&lt;/td&gt;
&lt;td&gt;Project content is not updated regularly&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;📝&lt;/td&gt;
&lt;td&gt;Project is based on an exercise from a book&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;🔥&lt;/td&gt;
&lt;td&gt;My favorite projects&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Source&lt;/td&gt;
&lt;td&gt;&lt;a href="https://github.com/tpkahlon/express"&gt;Repository&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Project Title&lt;/th&gt;
&lt;th&gt;Project Link&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Basics&lt;/td&gt;
&lt;td&gt;Express API concepts&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Fake Team&lt;/td&gt;
&lt;td&gt;Fake Team handles all CRUD operations for REST API. It enables input validation using Joi.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Rest API with Mongoose&lt;/td&gt;
&lt;td&gt;ES6 compatible code structure of REST API with CRUD operations&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Share Idea&lt;/td&gt;
&lt;td&gt;Simple React Application built on basic REST API and MERN stack: &lt;a href="https://go.aws/34QbTQl"&gt;Demo&lt;/a&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Bakery Store&lt;/td&gt;
&lt;td&gt;Web site built using Express&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Share Projects&lt;/td&gt;
&lt;td&gt;MERN site to add, edit, delete, view Project links: &lt;a href="https://share-projects.herokuapp.com/"&gt;Demo&lt;/a&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Muft&lt;/td&gt;
&lt;td&gt;An online application to listen to free radio stations : &lt;a href="https://muft.herokuapp.com/"&gt;Demo&lt;/a&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Google Images Search&lt;/td&gt;
&lt;td&gt;An online application to scrape 100 google images based on timing filter : &lt;a href="https://google-images-scraper.herokuapp.com/"&gt;Demo&lt;/a&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Current Status: Chapter 3(a) in progress...&lt;/p&gt;

&lt;h2&gt;
  
  
  Jargon
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;FSO: Full Stack Open&lt;/li&gt;
&lt;li&gt;Client: Local user device&lt;/li&gt;
&lt;li&gt;Server: Host machine where site is stored&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This post is a living document. It will get updates as I proceed through University of Helsinki's curriculum. It will serve as a complete documentation of my journey/experience/knowledge achieved from the course.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Course: &lt;a href="https://tiny.cc/fsoen"&gt;Link&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  History
&lt;/h2&gt;

&lt;p&gt;The motivation behind this post is to turn my creative idea into a full-stack web application. From this germination of seed, arisen the need for the tools. Hence, I researched and came across FSO's curriculum which captured my interest.&lt;/p&gt;

&lt;h2&gt;
  
  
  Motivation
&lt;/h2&gt;

&lt;p&gt;My purpose behind this post is to share my knowledge while I learn core principles and put them in practice. As you follow along with this post, you may have to come up with your motivation factor, that will bind your interest in learning full-stack development principles.&lt;/p&gt;

&lt;h2&gt;
  
  
  Timeline
&lt;/h2&gt;

&lt;p&gt;No bells and whistles. This post strictly focuses on serious learning. No hard timelines associated. Follow the post at your own pace and I will make updates here whenever I complete a theoretical module and fully understand the topics at hand.&lt;/p&gt;

&lt;h2&gt;
  
  
  Fundamentals of Web Applications
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Requirements
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Install Google Chrome and Firefox&lt;/li&gt;
&lt;li&gt;Learn how to use Developer tools in each browser (especially Network tab, Console tab, Inspector/Elements tab)&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Client/Server Communication
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Reference Project: &lt;a href="https://fullstack-exampleapp.herokuapp.com"&gt;Link&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;While you open link above, Keep Network tab open in developer tools. Check Disable cache option. Each time you reload the link above, client will send an explicit request to server for each asset if "Disable Cache" is checked: &lt;a href="https://devtoolsecrets.com/secret/performance-disable-the-browser-cache.html"&gt;Link&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Client communicates with Server using &lt;code&gt;HTTP&lt;/code&gt; protocol: &lt;a href="https://developer.mozilla.org/en-US/docs/Web/HTTP"&gt;Link&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Network tab is place where you can see the entire process in action. Reload the page and you will see two HTTP requests were sent to the server, one for the HTML page and other for the Image with response 200.&lt;/p&gt;

&lt;p&gt;When you click each request, you can see more options like Request headers, Request response, HTTP header information, Cookies, Params, Type of HTTP request (200/404) etc.&lt;/p&gt;

&lt;p&gt;In response header, you can view entire HTML page. This page contains an image tag which initiates another GET request from client to fetch image content from server.&lt;/p&gt;

&lt;p&gt;In Firefox, you will see an additional 404 GET request for missing &lt;code&gt;favicon.ico&lt;/code&gt; file in meta tags.&lt;/p&gt;

&lt;h4&gt;
  
  
  HTTP Cycle
&lt;/h4&gt;

&lt;p&gt;From above reference project, we can easily prototype a cycle of HTTP requests as follows:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;BROWSER&lt;/li&gt;
&lt;li&gt;HTTP GET Request (&lt;a href="https://fullstack-exampleapp.herokuapp.com"&gt;https://fullstack-exampleapp.herokuapp.com&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;SERVER&lt;/li&gt;
&lt;li&gt;HTML code&lt;/li&gt;
&lt;li&gt;BROWSER&lt;/li&gt;
&lt;li&gt;HTTP GET Request (&lt;a href="https://fullstack-exampleapp.herokuapp.com/kuva.png"&gt;https://fullstack-exampleapp.herokuapp.com/kuva.png&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;SERVER&lt;/li&gt;
&lt;li&gt;Image&lt;/li&gt;
&lt;li&gt;BROWSER&lt;/li&gt;
&lt;li&gt;Renders the page in the browser.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Traditional web applications
&lt;/h3&gt;

&lt;p&gt;Traditional web applications involved putting business logic on the server which generated HTML pages and added certain dynamic content in those pages which got parsed on the client side like PHP, ASP. In FSO's &lt;a href="https://fullstack-exampleapp.herokuapp.com"&gt;Referenced Project&lt;/a&gt;., Express is running on the server which generates HTML page that gets loaded on the client. Number of notes is a dynamic content in HTML file whose logic resides on the server.&lt;/p&gt;

&lt;h3&gt;
  
  
  Running application logic on the Browser
&lt;/h3&gt;

&lt;p&gt;In FSO's &lt;a href="https://fullstack-exampleapp.herokuapp.com/notes"&gt;Reference Project's Notes&lt;/a&gt; page, all the business logic for this page is written on the client side. When you load this page in the browser, see the Network tab to understand pattern of HTTP communication. Client makes a request to Notes page on the server, server return HTML page, which further contains a &lt;code&gt;CSS&lt;/code&gt; file, &lt;code&gt;JavaScript&lt;/code&gt; file. Within the &lt;code&gt;JavaScript&lt;/code&gt; file, there is an AJAX method used to further request for &lt;code&gt;JSON&lt;/code&gt; file. HTTP requests are triggered to get all these assets. Once &lt;code&gt;JSON&lt;/code&gt; file is retrieved, JavaScript file runs the logic that generate DOM elements which get appended to the document.&lt;/p&gt;

&lt;h3&gt;
  
  
  Event Handlers and Callback Functions
&lt;/h3&gt;

&lt;p&gt;Event handlers and Callback functions are common occurrences in JavaScript. A certain block of code written as a Function, is bound to an event, which gets executed when that particular event happens.&lt;/p&gt;

&lt;p&gt;In Notes page, &lt;code&gt;JavaScript&lt;/code&gt; file had certain logic where &lt;code&gt;onreadystatechange&lt;/code&gt; is an event bound to an event listener function.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Callback function: &lt;a href="https://developer.mozilla.org/en-US/docs/Glossary/Callback_function"&gt;Link&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Document Object Model
&lt;/h3&gt;

&lt;p&gt;In Chrome's Element tab and Firefox's Inspector tab, you can see tree structure for the entire DOM. In Notes page, we observed &lt;code&gt;JavaScript&lt;/code&gt; file had certain logic that create and add HTML Nodes into DOM tree.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;DOM: &lt;a href="https://en.wikipedia.org/wiki/Document_Object_Model"&gt;Link&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Manipulating DOM from Console
&lt;/h3&gt;

&lt;p&gt;The top-most node in DOM tree is &lt;code&gt;document&lt;/code&gt;. Let's try an example in Console tab to manipulate DOM.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Example Project: &lt;a href="https://jsfiddle.net/tpkahlon/f5uqv830"&gt;Link&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  CSS
&lt;/h3&gt;

&lt;p&gt;Notes page has certain styles associated that are present in &lt;code&gt;main.css&lt;/code&gt; stylesheet.&lt;/p&gt;

&lt;h3&gt;
  
  
  Loading a Page containing JavaScript - Revised
&lt;/h3&gt;

&lt;p&gt;HTTP communication pattern for Notes page is as follows:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;BROWSER&lt;/li&gt;
&lt;li&gt;HTTP GET Request (&lt;a href="https://fullstack-exampleapp.herokuapp.com/notes"&gt;https://fullstack-exampleapp.herokuapp.com/notes&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;SERVER&lt;/li&gt;
&lt;li&gt;HTML code&lt;/li&gt;
&lt;li&gt;BROWSER&lt;/li&gt;
&lt;li&gt;HTTP GET Request (&lt;a href="https://fullstack-exampleapp.herokuapp.com/main.css"&gt;https://fullstack-exampleapp.herokuapp.com/main.css&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;SERVER&lt;/li&gt;
&lt;li&gt;Stylesheet file&lt;/li&gt;
&lt;li&gt;BROWSER&lt;/li&gt;
&lt;li&gt;HTTP GET Request (&lt;a href="https://fullstack-exampleapp.herokuapp.com/main.js"&gt;https://fullstack-exampleapp.herokuapp.com/main.js&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;SERVER&lt;/li&gt;
&lt;li&gt;JavaScript file -&amp;gt; File execution happens on BROWSER&lt;/li&gt;
&lt;li&gt;HTTP GET Request (&lt;a href="https://fullstack-exampleapp.herokuapp.com/data.json"&gt;https://fullstack-exampleapp.herokuapp.com/data.json&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;SERVER&lt;/li&gt;
&lt;li&gt;JSON file&lt;/li&gt;
&lt;li&gt;BROWSER&lt;/li&gt;
&lt;li&gt;Renders the Notes page in the browser.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Forms and HTTP POST
&lt;/h3&gt;

&lt;p&gt;In Notes page, there is a Form tag in the markup that takes in user input, triggers a POST request upon submission to the server. Server takes the parameters came along with the request, creates an object, adds them in the array and redirects user back to Notes page. See Network tab to investigate the whole process.&lt;/p&gt;

&lt;h3&gt;
  
  
  AJAX
&lt;/h3&gt;

&lt;p&gt;Notes page uses traditional AJAX approach to get notes data.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;AJAX: &lt;a href="https://en.wikipedia.org/wiki/Ajax_programming"&gt;Link&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Single Page Application
&lt;/h3&gt;

&lt;p&gt;See the revised version of Notes app below, in SPA format. Investigate it using Network tab. The key takeaway is that upon submission, form does not reload the page and HTTP POST is handled in JavaScript file.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Demo: &lt;a href="https://fullstack-exampleapp.herokuapp.com/spa"&gt;Link&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;SPA: &lt;a href="https://en.wikipedia.org/wiki/Single-page_application"&gt;Link&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  References (Chapter: 0B)
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;HTML: &lt;a href="https://developer.mozilla.org/en-US/docs/Learn/Getting_started_with_the_web/HTML_basics"&gt;Link&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;CSS: &lt;a href="https://developer.mozilla.org/en-US/docs/Learn/Getting_started_with_the_web/CSS_basics"&gt;Link&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Forms: &lt;a href="https://developer.mozilla.org/en-US/docs/Learn/HTML/Forms/Your_first_HTML_form"&gt;Link&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Vanilla JavaScript: &lt;a href="https://www.freecodecamp.org/news/is-vanilla-javascript-worth-learning-absolutely-c2c67140ac34/"&gt;Link&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Front/Back Ends: &lt;a href="https://en.wikipedia.org/wiki/Front_and_back_ends"&gt;Link&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;JS Fatigue: &lt;a href="https://auth0.com/blog/how-to-manage-javascript-fatigue/"&gt;Link&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;JS Fatigue (2): &lt;a href="https://medium.com/@ericclemmons/javascript-fatigue-48d4011b6fc4"&gt;Link&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Key Takeaways
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Understand Traditional application behaviour vs. Single page application behaviour&lt;/li&gt;
&lt;li&gt;Understand function of legacy concepts like AJAX&lt;/li&gt;
&lt;li&gt;Understand HTTP communication between Client/Server using Network tab&lt;/li&gt;
&lt;li&gt;Understand Event handling, Callback functions, DOM, HTTP Status Codes.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Introduction to React
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Create-React-App
&lt;/h3&gt;

&lt;p&gt;Use &lt;code&gt;yarn create react-app test&lt;/code&gt; to scaffold a new React project.&lt;br&gt;
Use &lt;code&gt;yarn start&lt;/code&gt; to run development environment.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Source: &lt;a href="https://github.com/facebook/create-react-app"&gt;Link&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Arrow Functions: &lt;a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/Arrow_functions"&gt;Link&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Components: &lt;a href="https://reactjs.org/docs/components-and-props.html"&gt;Link&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;ES6: &lt;a href="https://es6-features.org/#Constants"&gt;Link&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;JSX: &lt;a href="https://reactjs.org/docs/introducing-jsx.html"&gt;Link&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Babel: &lt;a href="https://babeljs.io/repl/"&gt;Link&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Component
&lt;/h3&gt;

&lt;p&gt;Following is an example of a React component. You can run JavaScript logic inside of it. &lt;strong&gt;JSX&lt;/strong&gt; syntax was used to return a block. JSX is compiled into ES2015 syntax using Babel.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Example Project: &lt;a href="https://jsfiddle.net/tpkahlon/2ug14ce6"&gt;Link&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Multiple Components
&lt;/h3&gt;

&lt;p&gt;Following is an example of multiple react components.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Example Project: &lt;a href="https://jsfiddle.net/tpkahlon/gjsuqm6d"&gt;Link&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Props: Passing data to components
&lt;/h3&gt;

&lt;p&gt;Props are used to pass data to components. See example below. We used ES6 destructuring to get specific parameters passed to child component from parent component.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Example Project: &lt;a href="https://jsfiddle.net/tpkahlon/0d8m3tbh"&gt;Link&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  Notes
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;React component names must be capitalized.&lt;/li&gt;
&lt;li&gt;Use console.log() to debug errors.&lt;/li&gt;
&lt;li&gt;React component must contain one root element.&lt;/li&gt;
&lt;li&gt;Fragments can be used to wrap multiple elements.&lt;/li&gt;
&lt;li&gt;Fragments: &lt;a href="https://reactjs.org/docs/fragments.html#short-syntax"&gt;Link&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Key Takeaways
&lt;/h3&gt;

&lt;p&gt;Get familiar with ES6, JSX, Components, Props, Multiple Components, Components rules, Fragments.&lt;/p&gt;

&lt;h3&gt;
  
  
  Minor Project
&lt;/h3&gt;

&lt;p&gt;Based on current concepts we covered in &lt;code&gt;FSO&lt;/code&gt;, I have built a Create-react-app project which allows user to track/view current Events hosted by Toronto library. The source code for this project is up on Github for your reference. There were some key milestones I achieved during this project. I was able to perform pagination behavior where we you press Load More button at the bottom of App, you merge next set of data into your existing objects. I used &lt;code&gt;Lodash&lt;/code&gt; library functions like &lt;code&gt;chunk&lt;/code&gt;, &lt;code&gt;sortBy&lt;/code&gt; that were helpful to achieve some tasks in this project. Front-end portion of the project is coded using &lt;code&gt;React bootstrap&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;Some of the concepts like &lt;code&gt;useState&lt;/code&gt; and &lt;code&gt;useEffect&lt;/code&gt; were not covered yet. Do not worry about it, focus mainly on separation of concerns like declaring child/parent components, passing props and keeping business logic separate. I will make frequent updates to divide the components into clean nuclear modules with proper naming conventions.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;View: &lt;a href="https://tpkahlon.github.io/tpl-events"&gt;Link&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Source: &lt;a href="https://github.com/tpkahlon/tpl-events"&gt;Link&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I would encourage you to build a similar starter app to practice some of the React components we covered so far in &lt;code&gt;FSO&lt;/code&gt; curriculum.&lt;/p&gt;

&lt;h2&gt;
  
  
  JavaScript
&lt;/h2&gt;

&lt;p&gt;Modern JavaScript is updated under ECMAScript standards. Modern JavaScript code is converted into legacy code via Babel. NodeJS allows to run JavaScript out of the scope of browser environment.&lt;/p&gt;

&lt;h3&gt;
  
  
  Variables
&lt;/h3&gt;

&lt;p&gt;&lt;code&gt;Let&lt;/code&gt; allows you to define a variable and change it later. &lt;code&gt;Const&lt;/code&gt; does not allow program to change a variable when it is set. &lt;code&gt;Var&lt;/code&gt; declaration is deprecated.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Example Project: &lt;a href="https://jsfiddle.net/tpkahlon/3aucg4xe"&gt;Link&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Arrays
&lt;/h3&gt;

&lt;p&gt;Arrays allow us to hold any type of data in it.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Example Project: &lt;a href="https://jsfiddle.net/tpkahlon/jxc2pz94"&gt;Link&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Array Mutation
&lt;/h3&gt;

&lt;p&gt;To append an item to existing array and clone resulting array in React realm, Use &lt;code&gt;concat&lt;/code&gt;.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Example Project: &lt;a href="https://jsfiddle.net/tpkahlon/7drjLhuc"&gt;Link&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Destructuring
&lt;/h3&gt;

&lt;p&gt;To store the array item in individual variables, use destructuring operator.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Example Project: &lt;a href="https://jsfiddle.net/tpkahlon/hsumx9co"&gt;Link&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Objects
&lt;/h3&gt;

&lt;p&gt;Object can store key-value pairs where value can be of any data type.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Example Project: &lt;a href="https://jsfiddle.net/tpkahlon/6L2rpa18"&gt;Link&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Functions
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Example Project: &lt;a href="https://jsfiddle.net/tpkahlon/kh2ewuos"&gt;Link&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Concept of Classes / THIS will be discussed in depth during later part of course.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;ES: &lt;a href="https://en.wikipedia.org/wiki/ECMAScript"&gt;Link&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Babel: &lt;a href="https://babeljs.io"&gt;Link&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Const: &lt;a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/const"&gt;Link&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Let: &lt;a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/let"&gt;Link&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;JavaScript: &lt;a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript"&gt;Link&lt;/a&gt;, &lt;a href="https://github.com/getify/You-Dont-Know-JS"&gt;Link&lt;/a&gt;, &lt;a href="https://egghead.io"&gt;Link&lt;/a&gt;, &lt;a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/A_re-introduction_to_JavaScript"&gt;Link&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;THIS: &lt;a href="https://egghead.io/courses/understand-javascript-s-this-keyword-in-depth"&gt;Link&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Component state, Event handlers
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Component helper functions and Destructuring
&lt;/h3&gt;

&lt;p&gt;Component helper functions are logic blocks whose output is rendered by the component. See &lt;code&gt;calculateRun&lt;/code&gt; function below.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Example Project: &lt;a href="https://jsfiddle.net/tpkahlon/ek8vs43t"&gt;Link&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Page re-rendering, Stateful component and Event handling
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Example Project: &lt;a href="https://jsfiddle.net/tpkahlon/kzc0d74b"&gt;Link&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  A more complex state, debugging React apps
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Complex state
&lt;/h3&gt;

&lt;p&gt;Use object to contain multiple state properties. Make use of ES6 spread operator to concatenate original value of state and new state value achieved.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Spread operator: &lt;a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Spread_syntax"&gt;Link&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Example Project: &lt;a href="https://jsfiddle.net/tpkahlon/p698x5La"&gt;Link&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Handling arrays
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Concat: &lt;a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/concat"&gt;Link&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Push: &lt;a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/push"&gt;Link&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Join: &lt;a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/join"&gt;Link&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Example Project: &lt;a href="https://jsfiddle.net/tpkahlon/vebwyz28"&gt;Link&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Conditional rendering
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Example Project: &lt;a href="https://jsfiddle.net/tpkahlon/Lkef902s"&gt;Link&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Debugging React applications
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Use developer console for error debugging.&lt;/li&gt;
&lt;li&gt;Use &lt;code&gt;debugger&lt;/code&gt; command in your code.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Rules of Hooks
&lt;/h3&gt;

&lt;p&gt;Do not use &lt;code&gt;useEffect&lt;/code&gt; and &lt;code&gt;useState&lt;/code&gt; inside a loop, conditional expression or inside another component.&lt;/p&gt;

&lt;h3&gt;
  
  
  Event Handling Revisited
&lt;/h3&gt;

&lt;p&gt;Event handlers must always be a function or a reference to a function.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Example Project: &lt;a href="https://jsfiddle.net/tpkahlon/Lkef902s"&gt;Link&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Passing Event Handlers to Child Components
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Example Project: &lt;a href="https://jsfiddle.net/tpkahlon/mwhrjsf9"&gt;Link&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Do Not Define Components Within Components
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Never define components inside of other components.&lt;/li&gt;
&lt;li&gt;Make each component into its nuclear entity.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Rendering a collection, modules
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Developer Toolkit
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Get comfortable using &lt;code&gt;console.log()&lt;/code&gt; whenever an issue persists.&lt;/li&gt;
&lt;li&gt;VS Code Snippets: &lt;a href="https://code.visualstudio.com/docs/editor/userdefinedsnippets#_creating-your-own-snippets"&gt;Link&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;React Snippets: &lt;a href="https://marketplace.visualstudio.com/items?itemName=xabikos.ReactSnippets"&gt;Link&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Higher Order Functions
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://www.youtube.com/watch?v=BMUiFMZr7vk&amp;amp;list=PL0zVEGEvSaeEd9hlmCXrk5yUyqUag-n84"&gt;Learn the concept&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.youtube.com/watch?v=bCqtb-Z5YGQ&amp;amp;list=PL0zVEGEvSaeEd9hlmCXrk5yUyqUag-n84&amp;amp;index=2"&gt;Map&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.youtube.com/watch?v=Wl98eZpkp-c&amp;amp;t=31s"&gt;Reduce&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Rendering Collections
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Example Project: &lt;a href="https://github.com/tpkahlon/notes"&gt;Source&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Array indexes as keys: &lt;a href="https://medium.com/@robinpokorny/index-as-a-key-is-an-anti-pattern-e0349aece318"&gt;Link&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Import: &lt;a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/import"&gt;Link&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Export: &lt;a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/export"&gt;Link&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Forms
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Example Project: &lt;a href="https://github.com/tpkahlon/notes"&gt;Source&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Controlled Components: &lt;a href="https://reactjs.org/docs/forms.html#controlled-components"&gt;Link&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Conditional Operators: &lt;a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Conditional_Operator"&gt;Link&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Getting data from server
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Example Project: &lt;a href="https://github.com/tpkahlon/notes"&gt;Source&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;JSON Server: &lt;a href="https://github.com/typicode/json-server"&gt;Link&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Promise: &lt;a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise"&gt;Link&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Asynchronous Loop: &lt;a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/EventLoop"&gt;Link&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Event Loop: &lt;a href="https://www.youtube.com/watch?v=8aGhZQkoFbQ"&gt;Link&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Axios: &lt;a href="https://github.com/axios/axios"&gt;Link&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;State Hooks: &lt;a href="https://reactjs.org/docs/hooks-state.html"&gt;Link&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Effect Hooks: &lt;a href="https://reactjs.org/docs/hooks-effect.html"&gt;Link&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Effect Procedure: &lt;a href="https://reactjs.org/docs/hooks-reference.html#conditionally-firing-an-effect"&gt;Link&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Altering data in server
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Example Project: &lt;a href="https://github.com/tpkahlon/notes"&gt;Source&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;JSON Server: &lt;a href="https://github.com/typicode/json-server"&gt;Link&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Promise: &lt;a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Using_promises"&gt;Link&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Promise Chaining: &lt;a href="https://javascript.info/promise-chaining"&gt;Link&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Catch: &lt;a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise/catch"&gt;Link&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Adding styles to React app
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Example Project: &lt;a href="https://github.com/tpkahlon/notes"&gt;Source&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;className: &lt;a href="https://reactjs.org/docs/dom-elements.html#classname"&gt;Link&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;DOM style: &lt;a href="https://reactjs.org/docs/dom-elements.html#style"&gt;Link&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Inline styles: &lt;a href="https://react-cn.github.io/react/tips/inline-styles.html"&gt;Link&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Goodies
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Yarn
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Docs: &lt;a href="https://yarnpkg.com/en/docs/cli/"&gt;Link&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Initialize a project: &lt;code&gt;yarn init -y&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Add a dependency: &lt;code&gt;yarn add package_name&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Add a development environment based dependency: &lt;code&gt;yarn add package_name --dev&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Add a global dependency: &lt;code&gt;yarn global add package_name&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Check outdated dependencies: &lt;code&gt;yarn outdated&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Remove a dependency: &lt;code&gt;yarn remove package_name&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;yarn-lock.json&lt;/code&gt; is an important file and do not ignore it in the repository.&lt;/li&gt;
&lt;li&gt;Clean global cache: &lt;code&gt;yarn cache clean&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Run audit: &lt;code&gt;yarn audit&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>javascript</category>
      <category>mern</category>
      <category>fullstack</category>
    </item>
    <item>
      <title>Workflow</title>
      <dc:creator>Tej</dc:creator>
      <pubDate>Thu, 17 Oct 2019 14:05:55 +0000</pubDate>
      <link>https://forem.com/tpkahlon/got-a-startup-idea-a-used-windows-machine-is-all-you-want-hl3</link>
      <guid>https://forem.com/tpkahlon/got-a-startup-idea-a-used-windows-machine-is-all-you-want-hl3</guid>
      <description>&lt;p&gt;Gone are the days when Macbooks were seen as a pivot in Front End Development world. At this moment, Front End Development spectrum is blessed where Windows has improved to the point that you no longer need to seek for expensive Mac machines. You could get away with buying a minimal configured machine from Kijiji or eBay, that can run a WSL and continue to build on your next startup idea.&lt;/p&gt;

&lt;p&gt;There are only 3 main things you would require on your Windows machine:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Visual Studio Code&lt;/li&gt;
&lt;li&gt;WSL (Recommended: Ubuntu)&lt;/li&gt;
&lt;li&gt;Hyper (Recommended)&lt;/li&gt;
&lt;li&gt;Cascadia Font (Recommended)&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Step 1 (Clean up)
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Update Windows 10 to the latest patches.&lt;/li&gt;
&lt;li&gt;Use dark mode in Windows for toned display. (FLUX App is recommended for developers who have eye sensitivity problems. You can download FLUX using &lt;code&gt;choco install f.lux&lt;/code&gt; once you have setup Chocolatey)&lt;/li&gt;
&lt;li&gt;Restart the machine and move on to Step 2.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Step 2 (Apps)
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Download and install Chocolatey: &lt;a href="https://chocolatey.org/install"&gt;https://chocolatey.org/install&lt;/a&gt;. Think of this as BREW or a package handler for your OS like Yarn.&lt;/li&gt;
&lt;li&gt;See list of all available packages here: &lt;a href="https://chocolatey.org/packages"&gt;https://chocolatey.org/packages&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Install and activate WSL. See docs: &lt;a href="https://docs.microsoft.com/en-us/windows/wsl/install-win10"&gt;https://docs.microsoft.com/en-us/windows/wsl/install-win10&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Install VS Code using &lt;code&gt;choco install vscode&lt;/code&gt;. Recommended extension: &lt;a href="https://marketplace.visualstudio.com/items?itemName=Shan.code-settings-sync"&gt;https://marketplace.visualstudio.com/items?itemName=Shan.code-settings-sync&lt;/a&gt;, which allows you to download your preferred workstation extensions locally in one go.&lt;/li&gt;
&lt;li&gt;Install Hyper terminal using &lt;code&gt;choco install hyper&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Step 3 (Clean up)
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Configure VS Code terminal and Hyper to use Bash (WSL).&lt;/li&gt;
&lt;li&gt;VS Code will install specific extensions like "Remote WSL for Ubuntu", please complete those processes.&lt;/li&gt;
&lt;li&gt;Download and install Cascadia font: &lt;a href="https://github.com/microsoft/cascadia-code"&gt;https://github.com/microsoft/cascadia-code&lt;/a&gt;. Set that as default font in Hyper.&lt;/li&gt;
&lt;li&gt;Restart the machine.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Step 4 (WSL Clean up)
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Update and clean up the Ubuntu WSL distro using: &lt;code&gt;sudo apt update &amp;amp;&amp;amp; sudo apt upgrade &amp;amp;&amp;amp; sudo apt dist-upgrade &amp;amp;&amp;amp; sudo apt autoclean &amp;amp;&amp;amp; sudo apt autoremove &amp;amp;&amp;amp; sudo apt purge&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Step 5 (Apps)
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Clone the following repository and copy only bash files to your home location in WSL. Command: &lt;code&gt;cd ~ &amp;amp;&amp;amp; mkdir Sites &amp;amp;&amp;amp; cd Sites &amp;amp;&amp;amp; git clone https://github.com/tpkahlon/source-files &amp;amp;&amp;amp; cd source-files &amp;amp;&amp;amp; cp .bash* ~&lt;/code&gt;. Run &lt;code&gt;source ~/.bashrc&lt;/code&gt; to restart terminal process to apply changes. In the &lt;code&gt;.bashrc&lt;/code&gt; file, you can add aliases specific for your daily development. Only make modifications to &lt;code&gt;.bashrc&lt;/code&gt; file as needed in future. &lt;/li&gt;
&lt;li&gt;Install git using &lt;code&gt;sudo apt install curl git&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Set up username and email for Git: &lt;code&gt;git config --global user.name "Xyz"&lt;/code&gt; and `git config --global user.email "&lt;a href="mailto:xyz@xyz.com"&gt;xyz@xyz.com&lt;/a&gt;".&lt;/li&gt;
&lt;li&gt;Follow the steps to generate and store SSH key in your Github account. Link: &lt;a href="https://help.github.com/en/articles/connecting-to-github-with-ssh"&gt;https://help.github.com/en/articles/connecting-to-github-with-ssh&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Install NodeJS. Link: &lt;a href="https://github.com/nodesource/distributions/blob/master/README.md#debinstall"&gt;https://github.com/nodesource/distributions/blob/master/README.md#debinstall&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Install Yarn. Link: &lt;a href="https://yarnpkg.com/lang/en/docs/install/#debian-stable"&gt;https://yarnpkg.com/lang/en/docs/install/#debian-stable&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Step 6 (Revision)
&lt;/h2&gt;

&lt;p&gt;Let us pause here and see what we have achieved so far. All your project dependencies like Node, Git etc. stay within your WSL machine. Your Windows machine only holds VS Code and Hyper apps. This setup is so clean, has less clutter and easy to maintain. Going forward, initialize all your projects in WSL. Let's see a sample below.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 7 (Typical Workflow)
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Add a &lt;code&gt;Sites&lt;/code&gt; directory in home location using &lt;code&gt;cd ~ &amp;amp;&amp;amp; mkdir Sites&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Clone a sample project here: &lt;code&gt;git clone https://github.com/taniarascia/react-hooks &amp;amp;&amp;amp; cd react-hooks &amp;amp;&amp;amp; yarn &amp;amp;&amp;amp; yarn start&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Run &lt;code&gt;code .&lt;/code&gt; to open the source files from WSL to VS Code in Windows.&lt;/li&gt;
&lt;li&gt;You can see the testing environment running on your Windows machine via WSL.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Step 8 (Maintenance)
&lt;/h2&gt;

&lt;p&gt;Run &lt;code&gt;u&lt;/code&gt; in the WSL. It is an alias available in &lt;code&gt;.bashrc&lt;/code&gt; file that will update/prune all necessary/outdated packages in WSL.&lt;/p&gt;

&lt;p&gt;We have done it! Hopefully, you have got your development environment successfully setup in Windows. It is clean, minimal and tasks are distributed across WSL and Windows. Stay hassle free and have fun coding amazing apps. Set the trend: #MacIsOptionalIn2019.&lt;/p&gt;

&lt;h2&gt;
  
  
  Goodies
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Check out my Settings sync gist to get up and running with all necessary VS Code extensions for React development. Link: &lt;a href="https://gist.github.com/tpkahlon/8c22c8f1929c37ecf7d8c7ba1ee4eb2f"&gt;https://gist.github.com/tpkahlon/8c22c8f1929c37ecf7d8c7ba1ee4eb2f&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;

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