Назад в блог

~ 25 минут

Как создать консольный помодоро-таймер на Node.js: Пошаговое руководство

48

9/28/2024

Помодоро-техника — это один из самых эффективных методов управления временем. Она помогает повысить продуктивность, сосредоточиться на работе и делать регулярные перерывы, что уменьшает вероятность выгорания. В этой статье мы создадим консольный помодоро-таймер с прогрессбаром на Node.js.

Вадим Пашаев

Вадим Пашаев

Инженер, веб-разработчик, путешественник

Как создать консольный помодоро-таймер на Node.js: Пошаговое руководство | PXSTUDIO
Регистрация товарных знаков
Craftum - создайте сайт за 15 минут
Домены, хостинг от reg.ru

Что такое Помодоро?

Методика проста: нужно работать 25 минут (одна "помидорка") и затем сделать перерыв на 5 минут. После четырех циклов рекомендуется более длинный перерыв. В этой статье мы рассмотрим создание таймера для одной 25-минутной рабочей сессии.

Требования

Для реализации таймера нам понадобятся следующие библиотеки:

cli-progress: для визуализации прогресса в консоли.

ansi-colors: для добавления цветных элементов в прогрессбар.

Если у вас еще не установлен Node.js, скачайте и установите его с официального сайта: Node.js.

Шаг 1: Установка зависимостей

После того как вы установили Node.js, создайте новую папку для проекта и инициализируйте ее командой:

npm init -y

Теперь установите необходимые пакеты:

npm install cli-progress ansi-colors

Шаг 2: Написание кода таймера

Создайте файл timer.js и вставьте в него следующий код:

const cliProgress = require('cli-progress')
const colors = require('ansi-colors')

const progressBar = new cliProgress.SingleBar({
  format: 'Помодоро-таймер: |' + colors.green('{bar}') + '| {percentage}% || {value}/{total} минут',
  barCompleteChar: '\u2588',
  barIncompleteChar: '\u2591',
  hideCursor: true
})

// Задаем длительность таймера (в минутах)
const DURATION = 25 // 25 минут

// Запускаем прогресс-бар
progressBar.start(DURATION, 0)

// Создаем таймер, который будет увеличивать значение прогресс-бара на 1 единицу (1 минуту)
let timer = setInterval(() => {
  progressBar.increment() // Увеличиваем прогресс на 1 единицу

  // Проверяем не превышает ли заданное значение
  if (progressBar.value >= DURATION) {
    clearInterval(timer) // Останавливаем таймер
    progressBar.stop() // Останавливаем прогресс-бар
    console.log("Сессия помодоро завершена! Время отдыхать.")

    // Звуковой сигнал с консоли
    process.stdout.write('\x07')
  }
}, 60000) // 60000 миллисекунд = 1 минута

Шаг 3: Запуск таймера

Чтобы запустить таймер, введите в терминале следующую команду:

node timer.js

Таймер начнет отсчитывать 25 минут. По завершению сессии будет отображено сообщение "Сессия помодоро завершена!" и подан звуковой сигнал.

Шаг 4: Настройка длительности таймера

Вы можете легко изменить длительность рабочей сессии и перерыва. Для этого просто поменяйте значение переменной DURATION на нужное количество минут.

Пример для 30-минутного рабочего интервала:

const DURATION = 30

Заключение

Теперь у вас есть собственный консольный таймер для помодоро-техники! Этот проект является отличным способом практиковаться в работе с Node.js и создавать полезные инструменты для повышения продуктивности.

Если вы хотите расширить функционал, вы можете добавить поддержку нескольких циклов помидорок или настроить автоматическое начало перерывов.

Оставляйте свои вопросы и комментарии, и удачной работы с вашим новым таймером!

Видео на Youtube

видео на Youtube
видео на Youtube

https://www.youtube.com/watch?v=Y3ZHzej3Eb8

Код на Github

https://github.com/reactcoder-it/nodejs-pomodoro-timer

Подписаться на рассылку

Получите лучшие новости по веб-разработке и AI

Подписаться на рассылку

Получите лучшие новости по веб-разработке и AI

Оценка проекта

Хотите быструю оценку Вашего проекта?

Василий Иванов
Максим Насенников
Виктория Мальцева
Vadim Pashaev

Заполните форму справа и наша команда экспертов поможет найти для Вас оптимальное решение вашей идеи или задачи

Есть интересная идея?

И вы очень хотите ее реализовать, пишите нам и получите подробное коммерческое предложение и быструю реализацию