Home  >  Article  >  Web Front-end  >  Build a Pomodoro Timer Website

Build a Pomodoro Timer Website

王林
王林Original
2024-08-25 20:31:36282browse

Build a Pomodoro Timer Website

Introduction

Hello, developers! I'm thrilled to introduce my latest project: a Pomodoro Timer. This project is perfect for anyone looking to enhance their time management skills or practice their front-end development. The Pomodoro Timer is a simple yet powerful tool designed to help you break your work into focused intervals, improving productivity and maintaining focus throughout the day.

Project Overview

The Pomodoro Timer is a web-based application that allows users to set a timer for focused work sessions, typically 25 minutes, followed by short breaks. This project demonstrates how to create a functional timer using JavaScript, along with a clean and responsive user interface with HTML and CSS.

Features

  • Simple Timer Interface: A minimalist design that displays the countdown timer and controls.
  • Start, Stop, Reset: Users can start, stop, and reset the timer with easy-to-use buttons.
  • Notification Alert: An alert is triggered when the timer reaches zero, signaling the end of a session.

Technologies Used

  • HTML: Provides the structure for the Pomodoro Timer.
  • CSS: Styles the timer, ensuring a clean and modern design.
  • JavaScript: Implements the core functionality of the timer, including countdown logic and user interactions.

Project Structure

Here's an overview of the project structure:

Pomodoro-Timer/
├── index.html
├── style.css
└── script.js
  • index.html: Contains the HTML structure for the Pomodoro Timer.
  • style.css: Includes CSS styles for a visually appealing and responsive design.
  • script.js: Manages the timer functionality, including countdown and user interactions.

Installation

To get started with the project, follow these steps:

  1. Clone the repository:

    git clone https://github.com/abhishekgurjar-in/Pomodoro-Timer.git
    
  2. Open the project directory:

    cd Pomodoro-Timer
    
  3. Run the project:

    • Open the index.html file in a web browser to use the Pomodoro Timer.

Usage

  1. Open the website in a web browser.
  2. Start the timer by clicking the "Start" button.
  3. Stop or reset the timer as needed using the "Stop" and "Reset" buttons.
  4. Focus on your work until the timer reaches zero, then take a short break before starting the next session.

Code Explanation

HTML

The index.html file defines the structure of the Pomodoro Timer, including the header, timer display, and control buttons. Here’s a snippet:

8b05045a5be5764f313ed5b9168a17e6
49099650ebdc5f3125501fa170048923
  93f0f5c25f18dab9d176bd4f6de5d30e
    7c8d9f814bcad6a1d7abe4eda5f773e5
    26faf3d1af674280d03ba217d87e9421
    b2386ffb911b14667cb8f0f91ea547a7Pomodoro Timer6e916e0f7d1e588d4f442bf645aedb2f
    af75c476cdb7e6c074ca6da9b40841de
    90392ec4442ad9ff612213ec639da4832cacc6d41bbb37262a98f745aa00fbf0
  9c3bca370b5104690d9ef395f2c5f8d1
  6c04bd5ca3fcae76e30b72ad730ca86d
    4883ec0eb33c31828b7c767c806e14c7
      527db218a609cb4e96157e28dc6f988cPomodoro Timer473f0a7621bec819994bb5020d29372a
      38e8f75036b4e9396a1cc6cc0591514e25:0094b3e26ee717c64999d7867364b1b4a3
      60842b9d6c79533b42cd0c6cd7485212
        443c620cf48a4716b774dd4364035d74Start65281c5ac262bf6d81768915a4a77ac0
        a7a60cea450f42b2b97b16a5d74b9609Stop65281c5ac262bf6d81768915a4a77ac0
        2da760dc65e610b23ad3e603d5b03982Reset65281c5ac262bf6d81768915a4a77ac0
      16b28748ea4df4d9c2150843fecfba68
    16b28748ea4df4d9c2150843fecfba68
    ffd6ba4147bda351239915f463e46e38
      e388a4556c0f65e1904146cc1a846beeMade with ❤️ by Abhishek Gurjar94b3e26ee717c64999d7867364b1b4a3
    16b28748ea4df4d9c2150843fecfba68
  36cc49f0c466276486e50c850b7e4956
73a6ac4ed44ffec12cee46588e518a5e

CSS

The style.css file styles the Pomodoro Timer, ensuring it is visually appealing and responsive. Below are some key styles:

.container {
  margin: 0 auto;
  max-width: 400px;
  text-align: center;
  padding: 20px;
  font-family: "Roboto", sans-serif;
}

.title {
  font-size: 36px;
  margin-bottom: 10px;
  color: #2c3e50;
}

.timer {
  font-size: 72px;
  color: #2c3e50;
}

button {
  font-size: 18px;
  padding: 10px 20px;
  margin: 10px;
  color: white;
  border: none;
  border-radius: 4px;
  cursor: pointer;
  text-transform: uppercase;
  transition: opacity 0.3s ease-in-out;
}

button:hover {
  opacity: 0.7;
}

#start {
  background-color: #27ae60;
}

#stop {
  background-color: #c0392b;
}

#reset {
  background-color: #7f8c8d;
}

.footer {
  margin-top: 250px;
  text-align: center;
}

JavaScript

The script.js file contains the logic for the Pomodoro Timer, including the countdown mechanism and handling user interactions. Here's a snippet:

const startEl = document.getElementById("start");
const stopEl = document.getElementById("stop");
const resetEl = document.getElementById("reset");
const timerEl = document.getElementById("timer");

let interval;
let timeLeft = 1500;

function updateTimer() {
  let minutes = Math.floor(timeLeft / 60);
  let seconds = timeLeft % 60;
  let formattedTime = `${minutes.toString().padStart(2, "0")}:${seconds
    .toString()
    .padStart(2, "0")}`;

  timerEl.innerHTML = formattedTime;
}

function startTimer() {
  interval = setInterval(() => {
    timeLeft--;
    updateTimer();
    if (timeLeft === 0) {
      clearInterval(interval);
      alert("Time's up!");
      timeLeft = 1500;
      updateTimer();
    }
  }, 1000);
}

function stopTimer() {
  clearInterval(interval);
}

function resetTimer() {
  clearInterval(interval);
  timeLeft = 1500;
  updateTimer();
}

startEl.addEventListener("click", startTimer);
stopEl.addEventListener("click", stopTimer);
resetEl.addEventListener("click", resetTimer);

Live Demo

You can check out the live demo of the Pomodoro Timer project here.

Conclusion

Building the Pomodoro Timer was a rewarding experience that allowed me to practice essential front-end skills such as HTML, CSS, and JavaScript. This project is a great tool for improving productivity, and I hope it inspires you to create your own tools for better time management. Happy coding!

Credits

This project was developed as part of my continuous learning journey in front-end development, with a focus on creating practical and interactive web applications.

Author

  • Abhishek Gurjar
    • GitHub Profile

The above is the detailed content of Build a Pomodoro Timer Website. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn