<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Abdur Rehman Khalid</title>
    <description>The latest articles on DEV Community by Abdur Rehman Khalid (@abdurrehmaan).</description>
    <link>https://dev.to/abdurrehmaan</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%2F621965%2F36252ea8-12d5-47ca-8639-92281ee09e0c.png</url>
      <title>DEV Community: Abdur Rehman Khalid</title>
      <link>https://dev.to/abdurrehmaan</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/abdurrehmaan"/>
    <language>en</language>
    <item>
      <title>Restaurant Menu using javascript </title>
      <dc:creator>Abdur Rehman Khalid</dc:creator>
      <pubDate>Sat, 22 May 2021 00:00:27 +0000</pubDate>
      <link>https://dev.to/abdurrehmaan/restaurant-menu-using-javascript-33ln</link>
      <guid>https://dev.to/abdurrehmaan/restaurant-menu-using-javascript-33ln</guid>
      <description>&lt;p&gt;Hello DEV community! 👋&lt;/p&gt;

&lt;p&gt;I've recently attempted to make a Restaurant Menu using HTML CSS and java script.&lt;/p&gt;

&lt;p&gt;Live Demo: &lt;a href="https://res-menu.netlify.app/" rel="noopener noreferrer"&gt;https://res-menu.netlify.app/&lt;/a&gt;&lt;br&gt;
You can check the github repository here for the source code: &lt;a href="https://github.com/abdurrehmaan/Restaurants-Menu" rel="noopener noreferrer"&gt;https://github.com/abdurrehmaan/Restaurants-Menu&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0vhm8m47bvgtqbc3e4cq.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0vhm8m47bvgtqbc3e4cq.png" alt="alt text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Please note that some features are yet to be implemented and i would love to hear your feedback!&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>tutorial</category>
      <category>productivity</category>
      <category>webdev</category>
    </item>
    <item>
      <title>Games Every Programmer Should Play</title>
      <dc:creator>Abdur Rehman Khalid</dc:creator>
      <pubDate>Tue, 11 May 2021 15:29:57 +0000</pubDate>
      <link>https://dev.to/abdurrehmaan/games-every-programmer-should-play-301g</link>
      <guid>https://dev.to/abdurrehmaan/games-every-programmer-should-play-301g</guid>
      <description>&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--RA8LG7E---/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ydbhm75jdyr1a4brnamk.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--RA8LG7E---/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ydbhm75jdyr1a4brnamk.png" alt="Game Every Programmer should play"&gt;&lt;/a&gt;&lt;br&gt;
Programming games are often overlooked as a way to learn a new programming language or improve your knowledge of an existing one. Here are few programming games that are worth a try.&lt;/p&gt;

&lt;h2&gt;CodinGame&lt;/h2&gt;

&lt;p&gt;Visit CodinGame here - &lt;a href="https://www.codingame.com/"&gt;https://www.codingame.com/&lt;/a&gt;&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--7Vs2ZpIg--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/pvqkozlryqvgled6sa2g.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--7Vs2ZpIg--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/pvqkozlryqvgled6sa2g.png" alt="alt text"&gt;&lt;/a&gt;&lt;br&gt;
CodinGame is one of the better-known free platforms for learning how to code through games. The platform supports over 25 programming languages and comes with challenges that become gradually harder as you progress through them. CodinGame is a community, too. You can solve challenges together with your friends or colleagues and learn how other players solve particular challenges.&lt;/p&gt;

&lt;h2&gt;Codemonkey&lt;/h2&gt;

&lt;p&gt;Visit Codemonkey here - &lt;a href="https://www.codemonkey.com/"&gt;https://www.codemonkey.com/&lt;/a&gt;&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--kAk6IRH5--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/yu9hrmtdqtad0101eqhf.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--kAk6IRH5--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/yu9hrmtdqtad0101eqhf.png" alt="alt text"&gt;&lt;/a&gt;&lt;br&gt;
 Codemonkey teaches codding using CoffeeScript, a real programing language, to teach you to build your own games in HTML5. It's aimed at codding for kids, but it's definitely fun for adults too.&lt;/p&gt;

&lt;h2&gt;Flexbox Froggy&lt;/h2&gt;

&lt;p&gt;Visit Flexbox Froggy here - &lt;a href="https://flexboxfroggy.com/"&gt;https://flexboxfroggy.com/&lt;/a&gt;&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--rte3VTu6--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/0lm4988di7do61f6lqf5.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--rte3VTu6--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/0lm4988di7do61f6lqf5.png" alt="alt text"&gt;&lt;/a&gt; &lt;br&gt;
In this game, you must bring the frogs home to their lilypads by mastering CSS flexbox, a powerful new module that makes layout a breeze. With it you can control alignment, spacing, and wrapping of elements on the webpage using only one or two lines of code.&lt;/p&gt;

&lt;h2&gt;CodeCombat&lt;/h2&gt;

&lt;p&gt;Visit Code Combat here - &lt;a href="https://codecombat.com/"&gt;https://codecombat.com/&lt;/a&gt;&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--bhwQ0tKH--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/gn6ihq74rzjsck64i8wx.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--bhwQ0tKH--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/gn6ihq74rzjsck64i8wx.png" alt="alt text"&gt;&lt;/a&gt;&lt;br&gt;
CodeCombat is a platform that gamifies Python, JavaScript, HTML, and the fundamentals of computer science. As you progress, you'll unlock heroes, pets, gear, and more.&lt;br&gt;
The game is free for all its core levels, with a $9.99 a month subscription if you want access to its extra level branches plus 3,500 bonus gems a month. The game has a strong open-source community that helps with translations and creating more levels.&lt;/p&gt;

&lt;h2&gt;Untrusted&lt;/h2&gt;

&lt;p&gt;Visit Untrusted here - &lt;a href="https://www.playuntrusted.com/"&gt;https://www.playuntrusted.com/&lt;/a&gt;&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--V1hLwUiE--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/qnr85w0ms1wwv9cc8hlp.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--V1hLwUiE--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/qnr85w0ms1wwv9cc8hlp.png" alt="alt text"&gt;&lt;/a&gt;&lt;br&gt;
Untrusted is a meta-JavaScript adventure game written by Alex Nisnevich and Greg Shuflin. You need to write (or remove) JavaScript code to create a gap in the walls surrounding you.&lt;br&gt;
Contrary to some of the other suggestions in this list, Untrusted is made for people already familiar with JavaScript. It starts easy, but the puzzles quickly become difficult. If you're up for a challenge, try Untrusted.&lt;/p&gt;

&lt;h2&gt;Cyber-Dojo&lt;/h2&gt;

&lt;p&gt;Visit Cyber-Dojo here: &lt;a href="https://www.cyber-dojo.org/"&gt;https://www.cyber-dojo.org/&lt;/a&gt;&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--bIgzDP-5--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/3blncljvnidcxz5gwi6x.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--bIgzDP-5--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/3blncljvnidcxz5gwi6x.png" alt="alt text"&gt;&lt;/a&gt;&lt;br&gt;
cyber-dojo is an online browser-based coding dojo game. cyber-dojo is the world's simplest non development environment. Each group writes their code and tests inside a web browser. presses their run-tests button to submit their code and tests to the cyber-dojo server.&lt;/p&gt;

&lt;h2&gt;AI Gaming&lt;/h2&gt;

&lt;p&gt;Visit AI Gaming here - &lt;a href="https://www.aigaming.com/"&gt;https://www.aigaming.com/&lt;/a&gt;&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--xJzFCjlD--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/81cxmasvxx49gi9kla0c.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--xJzFCjlD--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/81cxmasvxx49gi9kla0c.png" alt="alt text"&gt;&lt;/a&gt; &lt;br&gt;
Last but not the least, we have Microsoft's AI Gaming Platform where you can code bots in python and compete against your friends on 30+ different games &amp;amp; challenges. You can also participate in tournaments to win some really cool prizes. Along with learning to code a bot in Python, you will also get hands-on practice in using Microsoft's Cloud Platform, Azure.&lt;/p&gt;

&lt;p&gt;We hope you found at least one new programming game you’ll enjoy playing. There’s nothing better than learning how to code while having fun in the process. If you enjoyed this article, please feel free to share it on social media clicking the buttons top right.&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>watercooler</category>
      <category>codenewbie</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>Build your own Promodoro Timer</title>
      <dc:creator>Abdur Rehman Khalid</dc:creator>
      <pubDate>Sat, 01 May 2021 02:55:28 +0000</pubDate>
      <link>https://dev.to/abdurrehmaan/build-your-own-promodoro-timer-34ll</link>
      <guid>https://dev.to/abdurrehmaan/build-your-own-promodoro-timer-34ll</guid>
      <description>&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F22npeg09aoasdyzb8g42.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F22npeg09aoasdyzb8g42.png" alt="Promodoro Timer"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h1&gt;
  
  
  Build your own Promodoro Timer
&lt;/h1&gt;

&lt;h4&gt;
  
  
  Promodoro Timmer by Abdur Rehman
&lt;/h4&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Contributors&lt;/th&gt;
&lt;th&gt;Profile links&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Abdur Rehman&lt;/td&gt;
&lt;td&gt;&lt;a href="https://github.com/abdurrehmaan" rel="noopener noreferrer"&gt;https://github.com/abdurrehmaan&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Zeenat Parveen&lt;/td&gt;
&lt;td&gt;&lt;a href="https://github.com/Zeeizee" rel="noopener noreferrer"&gt;https://github.com/Zeeizee&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;Demo&lt;/th&gt;
&lt;th&gt;Source Code&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://promodorotimer.netlify.app/" rel="noopener noreferrer"&gt;https://promodorotimer.netlify.app/&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href="https://github.com/abdurrehmaan/pomodorotimer" rel="noopener noreferrer"&gt;https://github.com/abdurrehmaan/pomodorotimer&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fez4hs3kudqaquzu57g12.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fez4hs3kudqaquzu57g12.gif" alt="promodoro timer"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Today we will be creating Promodoro timer to track the totle work time and break time of a specific task . &lt;/p&gt;

&lt;p&gt;This task giving by (Raheel@&lt;a href="https://www.thedevnation.com/" rel="noopener noreferrer"&gt;Devnation&lt;/a&gt;) during the Web Programming course. The task was to build a promodoro timer which tells you exactly when to start the task and when to take a short break. At the End show the completed task and with calculated tasktime (tasktime + breaktime)&lt;br&gt;
Note: &lt;code&gt;tasktime == worktime&lt;/code&gt;;&lt;/p&gt;
&lt;h3&gt;
  
  
  The basic process is as follows:
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Start a 25-minute timer.&lt;/li&gt;
&lt;li&gt;Work until the timer rings.&lt;/li&gt;
&lt;li&gt;Take a short, five minutes break.&lt;/li&gt;
&lt;li&gt;List the Completed to task&lt;/li&gt;
&lt;li&gt;Calculate to total time(worktime + breaktime)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;
  
  
  User Interface
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fuser-images.githubusercontent.com%2F29798155%2F116761217-77344b00-aa30-11eb-9023-f754d7448aee.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fuser-images.githubusercontent.com%2F29798155%2F116761217-77344b00-aa30-11eb-9023-f754d7448aee.png" alt="image"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  User Task
&lt;/h2&gt;

&lt;p&gt;These are the user stories for this Pomodoro Timer:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;User can start / stop a timer&lt;/li&gt;
&lt;li&gt;User can Pause / Resume a timer&lt;/li&gt;
&lt;li&gt;User can add the title of a task&lt;/li&gt;
&lt;li&gt;User can see a list of the completed pomodoro task with completed time. &lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;
  
  
  framework and Toolkit
&lt;/h3&gt;

&lt;p&gt;We used Bootstrap which is open-source CSS framework&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt; &amp;lt;!-- bootstrap --&amp;gt;
    &amp;lt;link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@4.6.0/dist/css/bootstrap.min.css"
        integrity="sha384-B0vP5xmATw1+K9KRQjQERJvTumQW0nPEzvF6L/Z6nronJ3oUOFUFpCjEUQouq2+l" crossorigin="anonymous"&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;And We for Icons we Font-awesome icon sets and tools&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt; &amp;lt;link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.3/css/all.min.css"
        integrity="sha512-iBBXm8fW90+nuLcSKlbmrPcLa0OT92xO1BIsZ+ywDWZCvqsWgccV3gFoRBv0z+8dLJgyAHIhR35VZc2oM/gI1w=="
        crossorigin="anonymous" /&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Promodoro Structure
&lt;/h3&gt;

&lt;p&gt;We will start by creating a simple HTML structure to display a timer and add buttons to start, pause and stop it.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt; &amp;lt;div class="container my-3"&amp;gt;
        &amp;lt;h2 class="text-uppercase text-center display-4"&amp;gt;Promodoro Timer&amp;lt;/h2&amp;gt;
        &amp;lt;div class="worktimer my-4"&amp;gt;
        &amp;lt;/div&amp;gt;
        &amp;lt;div&amp;gt;
            &amp;lt;input type="text" class="taskname" placeholder="Enter your Task here"&amp;gt;
        &amp;lt;/div&amp;gt;
        &amp;lt;div class="wb-box my-4"&amp;gt;
            &amp;lt;div class="wt-box"&amp;gt;
                &amp;lt;label for=""&amp;gt;Work Time&amp;lt;/label&amp;gt;
                &amp;lt;input type="number" class="workinterval" value="25" readonly&amp;gt;
            &amp;lt;/div&amp;gt;
            &amp;lt;div class="wt-box"&amp;gt;
                &amp;lt;label for=""&amp;gt;Break Time&amp;lt;/label&amp;gt;
                &amp;lt;input type="number" class="breakinterval" value="5" readonly&amp;gt;
            &amp;lt;/div&amp;gt;
        &amp;lt;/div&amp;gt;
        &amp;lt;div class=" alertmessagebox text-center mb-2"&amp;gt;&amp;lt;small class="alertmessage d-none font-weight-bold "&amp;gt;Enter task
                name before
                start&amp;lt;/small&amp;gt;
        &amp;lt;/div&amp;gt;
        &amp;lt;div class="actionbtns"&amp;gt;
            &amp;lt;button class="btnstart startgrey "&amp;gt;&amp;lt;i class="fas fa-play-circle"&amp;gt;&amp;lt;/i&amp;gt;&amp;lt;/button&amp;gt;
            &amp;lt;button class="btnpause bg-warning d-none "&amp;gt;&amp;lt;i class="fas fa-pause-circle"&amp;gt;&amp;lt;/i&amp;gt;&amp;lt;/button&amp;gt;
            &amp;lt;button class="btnresume bg-warning d-none "&amp;gt;&amp;lt;i class="fas fa-step-forward"&amp;gt;&amp;lt;/i&amp;gt; &amp;lt;/button&amp;gt;
            &amp;lt;button class="btnstop bg-danger d-none "&amp;gt;&amp;lt;i class="fas fa-stop-circle"&amp;gt;&amp;lt;/i&amp;gt;&amp;lt;/button&amp;gt;
        &amp;lt;/div&amp;gt;
        &amp;lt;div class="mt-4"&amp;gt;
            &amp;lt;span class="text-uppercase text-center display-5 "&amp;gt;Your Completed Tasks&amp;lt;/span&amp;gt;

        &amp;lt;/div&amp;gt;
        &amp;lt;div class="completedList my-3"&amp;gt;
            &amp;lt;ul class="py-3"&amp;gt;

            &amp;lt;/ul&amp;gt;

        &amp;lt;/div&amp;gt;
    &amp;lt;/div&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;# Styling Promodoro Timer&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;  :root{
    --gray: #eeeded;
}
.yellowcolor {
    background: #e67e22;
    color:white;
}
.greencolor {
    background: #2980b9;
    color:white;
}
.container{
    max-width: 400px;
}
.worktimer {
    height: 150px;
    width: 100%;
    border-radius: 5px;
    display: flex;
    justify-content: center;
    align-items: center;
    margin: auto;
    /* background-color: var(--gray); */
    /* border: none; */
    outline: none;
    box-shadow: rgba(50, 50, 93, 0.25) 0px 30px 60px -12px inset, rgba(0, 0, 0, 0.3) 0px 18px 36px -18px inset;
}
.worktimer2 {
    height: 150px;
    width: 100%;
    border-radius: 5px;
    display: flex;
    justify-content: center;
    align-items: center;
    margin: auto;
    background-color: white;
    /* border: none; */
    outline: none;
    color:#2980b9;
    box-shadow: rgba(50, 50, 93, 0.25) 0px 30px 60px -12px inset, rgba(0, 0, 0, 0.3) 0px 18px 36px -18px inset;
}
.worktimer span {
    font-size: 5rem;
}
.taskname{
    width: 100%;
    height: 50px;
    border: none;
    outline: none;
    /* background-color: var(--gray); */
    padding: 20px;
    border-radius: 5px;
    /* background-color: #2980b9; */
    color: #2980b9;;
    font-size: 1.5rem;
    border: 2px solid #2980b9;
}
.wb-box{
    display: flex;
    justify-content: center;
    align-items: center;
}
.wb-box .wt-box {
    margin: 10px;
    text-align: center;
}
.wb-box .wt-box label {
    font-size: 1.2rem;
    font-weight: 600;
}
.wb-box .wt-box input {
    width: 100%;
    border: none;
    outline: none;
    padding: 10px;
    border-radius: 5px;
    text-align: center;
    font-size: 1.5rem;
}
.startgrey{
    background-color: #2980b9;
    opacity: 0.5;
}
.startblue{
    background-color: #2980b9;
    color:white;
}
.alertmessagebox
{
    height: 25px;
    width: 100%;
    color:#e67e22;
}
.workinterval {
    background-color: #2980b9;
    color: white;
}
.breakinterval{
    background-color: #e67e22;
    color: white;
}
.actionbtns{
    display: flex;
    justify-content: center;
    align-items: center;
}
.actionbtns button{
    margin: 5px;
    width: 50%;
    padding: 20px;
    border: none;
    border-radius: 5px; 
    color: white;
    font-size: 1.2rem;
}
.fas{
    font-size: 2.5rem;
}
.completedList ul {
  list-style:decimal;
    width: 100%;
    background-color: #a5d6f7;
    color: white;   
}
.completedList ul li { 
    background-color: white;
    margin-top: 20px;
    margin-bottom: 10px;
    margin-right: 20px;
    color: #2980b9;
    padding: 10px 10px;
    font-size: 1.2rem;
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h1&gt;
  
  
  Create a function to format and display the time
&lt;/h1&gt;

&lt;p&gt;First, I defined all the variables. As I was not using jQuery, I ensured that I captured all my elements using &lt;code&gt;document.querySelector.&lt;/code&gt;&lt;br&gt;
When the ‘start’ button is clicked, the interval is cleared. A new interval is set if isPaused changes from true to false.&lt;br&gt;
The ‘reset’ button clears the interval, and resets the variables.&lt;/p&gt;

&lt;p&gt;The timer function is where the countdown magic happens. It deducts one second from seconds. If seconds &amp;lt;; 0, the alarm is played, and the function determines if the next countdown should be a work session or break session&lt;/p&gt;

&lt;p&gt;Now it’s time to work on the +/- buttons for the work and break durations. Initially, I created an onclick function for every button. While it was functional, there was definitely room for improvement.&lt;br&gt;
It’s time to update the HTML!&lt;br&gt;
I created functions to update the countdown display and button display, and incorporated those functions into an overarching function that also updated the Work/Break status and durations.&lt;br&gt;
Finally, I used document.onclick to run the updateHTML function everytime the user clicks on the page. I also used window.setInterval to run the function 10 times a second for good measure.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;function setInitialTime() {
  document.getElementById("minutes").innerHTML = session_minutes;
  document.getElementById("seconds").innerHTML = session_seconds;
}

function start_work() {

  taskName = document.getElementById("taskname").value;
  const workTime = document.getElementById('worktime').value;
  const breakTime = document.getElementById('breaktime').value;
  session_minutes = workTime-1;
  session_seconds = 59;
  document.getElementById("minutes").innerHTML = session_minutes;
  document.getElementById("seconds").innerHTML = session_seconds;
  minutes_interval = setInterval(minutesTimer, 60000);
  seconds_interval = setInterval(secondsTimer, 1000);

  function minutesTimer() {
    session_minutes = session_minutes - 1;
    document.getElementById("minutes").innerHTML = session_minutes;
  }
  function secondsTimer() {
    session_seconds = session_seconds - 1;
    document.getElementById("seconds").innerHTML = session_seconds;

    if (session_seconds &amp;lt;= 0) {
      if (session_minutes &amp;lt;= 0) {
        clearInterval(minutes_interval);
        clearInterval(seconds_interval);
        document.getElementById("done").innerHTML = "Session Done, Take a Break!";
        document.getElementById("done").classList.add("show_message");
        start_break(breakTime);
      }
      session_seconds = 60;
    }
  }
}
function start_break(breakTime) {

  session_minutes = breakTime-1;
  session_seconds = 59;

  document.getElementById("minutes").innerHTML = session_minutes;
  document.getElementById("seconds").innerHTML = session_seconds;


  minutes_interval = setInterval(minutesTimer, 60000);
  seconds_interval = setInterval(secondsTimer, 1000);


  function minutesTimer() {
    session_minutes = session_minutes - 1;
    document.getElementById("minutes").innerHTML = session_minutes;
  }


  function secondsTimer() {
    session_seconds = session_seconds - 1;
    document.getElementById("seconds").innerHTML = session_seconds;


    if (session_seconds &amp;lt;= 0) {
      if (session_minutes &amp;lt;= 0) {

        clearInterval(minutes_interval);
        clearInterval(seconds_interval);


        document.getElementById("done").innerHTML = "Break Finished! Continue Working now!";
        document.getElementById("done").classList.add("show_message");

        start_work()
      }
      session_seconds = 60;
    }
  }
}
function reset(){

  clearInterval(minutes_interval)
  clearInterval(seconds_interval)
  let session_seconds = "00";
  let session_minutes = 00;
  document.getElementById("minutes").innerHTML = session_minutes;
  document.getElementById("seconds").innerHTML = session_seconds;
}
function startTime(){

  const dateNow = new Date();
  return dateNow
}

function stopTime(){
  const dateNow = new Date()
  return dateNow

}

document.getElementById("start-button").addEventListener("click", () =&amp;gt; {
  start_work();
  start = startTime()

  document.getElementById("start-button").classList.add("d-none")
  document.getElementById("pause-button").classList.remove("d-none")
});

document.getElementById("pause-button").addEventListener("click", () =&amp;gt;{
  clearInterval(minutes_interval)
  clearInterval(seconds_interval)

  document.getElementById("pause-button").classList.add("d-none")
  document.getElementById("resume-button").classList.remove("d-none")

} )
document.getElementById("resume-button").addEventListener("click", () =&amp;gt; {

  minutes_interval = setInterval(()=&amp;gt; {
    session_minutes = session_minutes - 1;
    document.getElementById("minutes").innerHTML = session_minutes;}, 
    60000);

  seconds_interval = setInterval(() =&amp;gt; {
    session_seconds = session_seconds - 1;
    document.getElementById("seconds").innerHTML = session_seconds;
  }, 1000);

  document.getElementById("pause-button").classList.remove("d-none")
  document.getElementById("resume-button").classList.add("d-none")
  document.getElementById("start-button").classList.add("d-none")
})
document.getElementById("reset-button").addEventListener("click", () =&amp;gt; {
  reset();
  stopp = stopTime()
  totalTime = dateFns.distanceInWords(start, stopp, {addSuffix: true})

  const completedSessionList = document.querySelector('#sessions-list')
  const html = `&amp;lt;li class="list-group-item d-flex justify-content-between align-items-center"&amp;gt;${taskName} was completed ${totalTime}&amp;lt;/li&amp;gt;`;

  completedSessionList.innerHTML += html;

  document.getElementById("done").innerHTML = "";
  document.getElementById("done").classList.remove("show_message");

  document.getElementById("start-button").classList.remove("d-none")
  document.getElementById("pause-button").classList.add("d-none")
  document.getElementById("resume-button").classList.add("d-none")

});
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;And that’s the wrap up of my project!&lt;br&gt;
You’ve reached the end of this tutorial. At this point, you should have a functioning Pomodoro timer application with useful features like sound alerts and notifications. If you have any questions or suggestions, please leave a comment below.&lt;/p&gt;

&lt;p&gt;Thanks for reading, and happy coding!&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>tutorial</category>
      <category>beginners</category>
    </item>
    <item>
      <title>What is Stored Procedure in SQL</title>
      <dc:creator>Abdur Rehman Khalid</dc:creator>
      <pubDate>Fri, 30 Apr 2021 11:37:21 +0000</pubDate>
      <link>https://dev.to/abdurrehmaan/what-is-stored-procedure-in-sql-4g9b</link>
      <guid>https://dev.to/abdurrehmaan/what-is-stored-procedure-in-sql-4g9b</guid>
      <description>&lt;p&gt;The new capabilities provided by stored procedures, require new disciplines for MySQL developers, only some of whom will have prior experience in stored program development using other relational databases.&lt;/p&gt;

&lt;h2&gt;what is store procedure &lt;/h2&gt;


&lt;p&gt;Stored Procedures are pre-compiled code which compiled for first time and its compiled format is saved, we call the compiled saved format whenever we want.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fpkd01dzi0tda5398yuyb.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fpkd01dzi0tda5398yuyb.png" alt="Store Procedure example"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;How to create store procedure in sql ? &lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F835v8tvzx3j3ihc1lz3c.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F835v8tvzx3j3ihc1lz3c.png" alt="How to create store procedur"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt; Stored Procedure Syntax &lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;
CREATE PROCEDURE procedure_name
AS
sql_statement
GO;

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

&lt;/div&gt;



&lt;h3&gt; Execute a Stored Procedure &lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;
EXEC procedure_name; 

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

&lt;/div&gt;



</description>
      <category>sql</category>
      <category>mysql</category>
      <category>database</category>
      <category>beginners</category>
    </item>
    <item>
      <title>Build your own digital clock using JavaScript</title>
      <dc:creator>Abdur Rehman Khalid</dc:creator>
      <pubDate>Tue, 27 Apr 2021 22:59:50 +0000</pubDate>
      <link>https://dev.to/abdurrehmaan/build-your-own-digital-clock-using-javascript-456h</link>
      <guid>https://dev.to/abdurrehmaan/build-your-own-digital-clock-using-javascript-456h</guid>
      <description>&lt;p&gt;Source code : &lt;a href="https://github.com/abdurrehmaan/DigitalClock" rel="noopener noreferrer"&gt; Github &lt;/a&gt; &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fuser-images.githubusercontent.com%2F29798155%2F115163471-c12d4080-a0c2-11eb-87cb-915e6fd4d581.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fuser-images.githubusercontent.com%2F29798155%2F115163471-c12d4080-a0c2-11eb-87cb-915e6fd4d581.gif" alt="1212"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;In this article, I am going to show you how to design a simple animated Digital Clock in JavaScript. Since, a browser executes a JavaScript program at the client side, the script will pick up time from the client's computer and display it.
&lt;/p&gt;

&lt;h3 id="what-we-want-to-have"&gt;What we want to have&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Display current date&lt;/li&gt;
&lt;li&gt;Display current time&lt;/li&gt;
&lt;li&gt;Increment the time on it's own&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id="technology-we-use"&gt;Technology we use&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Vanilla javascript&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id="the-javascript"&gt;The Javascript&lt;/h3&gt;

&lt;p&gt;The entire code for the working of the clock is written within the &lt;code&gt;tick()&lt;/code&gt; function. Inside this function, an object of the &lt;code&gt;Date()&lt;/code&gt; is created which allows you to call year, date, hour, minute, second.&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;const now = new Date();&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;In our code, this object is used for getting the current hours, minutes and seconds which are stored in different variables.&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;const h = now.getHours();
const m = now.getMinutes();
const s = now.getSeconds();&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;The obtained hours, minutes and seconds will be displayed in single digit if less than 10. For example, the current hour will be displayed as 7 instead of 07. To always display the elements of time in two-digit format, a 0 is appended before them whenever they are less than 10&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;&amp;lt;span&amp;gt;${h &amp;lt; 10 ? "0"+h:h}&amp;lt;/span&amp;gt;:
&amp;lt;span&amp;gt;${m &amp;lt; 10 ? "0"+m:m}&amp;lt;/span&amp;gt;:
&amp;lt;span&amp;gt;${s &amp;lt; 10 ? "0"+s:s}&amp;lt;/span&amp;gt;`;&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Now once our time is ready, let's display it in the div which we made before. This is done by obtaining the div using the document.getElementById method and give our time as the content of the div using the innerHTML property.&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;const clock = document.querySelector('.clock');
const html = `
&amp;lt;span&amp;gt;${h &amp;lt; 10 ? "0"+h:h}&amp;lt;/span&amp;gt;:
&amp;lt;span&amp;gt;${m &amp;lt; 10 ? "0"+m:m}&amp;lt;/span&amp;gt;:
&amp;lt;span&amp;gt;${s &amp;lt; 10 ? "0"+s:s}&amp;lt;/span&amp;gt;`;
clock.innerHTML = html;&lt;/code&gt;&lt;/pre&gt;

&lt;h2 id="base-design"&gt;Base design&lt;/h2&gt;

&lt;p&gt;Make the basic html structure&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;&amp;lt;!DOCTYPE html&amp;gt;
&amp;lt;html lang="en"&amp;gt;
&amp;lt;head&amp;gt;
    &amp;lt;meta charset="UTF-8"&amp;gt;
    &amp;lt;meta http-equiv="X-UA-Compatible" content="IE=edge"&amp;gt;
    &amp;lt;meta name="viewport" content="width=device-width, initial-scale=1.0"&amp;gt;
    &amp;lt;title&amp;gt;Digital Clock&amp;lt;/title&amp;gt;
&amp;lt;/head&amp;gt;
&amp;lt;body&amp;gt;
    &amp;lt;div class="clock-body"&amp;gt;
        &amp;lt;div class="inner-body"&amp;gt;
            &amp;lt;div class="clock"&amp;gt;
            
            &amp;lt;/div&amp;gt;
        &amp;lt;/div&amp;gt;
    &amp;lt;/div&amp;gt;
&amp;lt;/body&amp;gt;
&amp;lt;/html&amp;gt;&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Attach CSS&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;&amp;lt;link rel="stylesheet" href="css/digitalclock.css"&amp;gt;&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Attach Javascript file&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;&amp;lt;script src="js/digitalclock.js"&amp;gt;&amp;lt;/script&amp;gt;&lt;/code&gt;&lt;/pre&gt;

&lt;h2 id="the-styling"&gt;The Styling&lt;/h2&gt;

&lt;p&gt;Will add a nice font it will center the hero div and make the background fit nicely&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;@import url('https://fonts.googleapis.com/css?family=Orbitron');
.clock-body {
    margin: 200px auto;
    height: 200px;
    display: flex;
    justify-content: center;
    align-items: center;
}
.inner-body{
    width: 30%;
    height: 200px;
    display: flex;
    justify-content: center;
    align-items: center;
    border: 5px solid #2BC511;
    background-color: black;
    border-radius:12px;
}
.clock{
    font-size: 4em;
    font-weight: 700;
    text-align: center;
    color:#2BC511;
    font-family: 'Orbitron', sans-serif;
}
.clock span {
    padding: 20px;
}&lt;/code&gt;&lt;/pre&gt;

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