Телеграм бот на Node JS. Как создать тайм-трекер с помощью API Telegram Bot и веб хуков.
В данной статье вы узнаете, как вести учет рабочего времени с помощью Telegram Bot API и механизма веб хуков (англ. Webhooks). Мы разберем этапы создания, настройки и развертывания тайм-трекера. Но сначала хотелось бы рассказать, как эта идея пришла мне в голову. Если же вас интересует только техническая часть повествования, переходите сразу к следующему разделу.
Введение
Как-то в разговоре моя жена сказала, что ей нужно написать почасовой отчет о работе, проделанной за 3 последних месяца, и определить точное количество отработанных часов. Не имея в распоряжении никакого инструмента для регистрации рабочего времени, ей было довольно сложно рассчитать эти показатели по старым заметкам и чатам. Тогда она поддержала предложение своего руководителя создать группу в WhatsApp, куда будет отправлять сообщение в момент начала и окончания работы. Имеющиеся сообщения упростят составление подобных отчетов.
Идея отличная: телефон практически всегда под рукой, так что ничего не стоит просто написать слова “начало”/“окончание” или что угодно. Я вдохновился этой идеей и задумался о способах ее реализации. Часами я искал хороший инструмент для учета рабочего времени, руководствуясь следующими обязательными условиями: 1) он должен легко вводить сообщение “Задание выполняется” или “Задание готово”; 2) он работает на всех имеющихся устройствах.
Я опробовал несколько соответствующих приложений, которые запускались на компьютерах Mac, Linux и смартфонах, но ни одно из них меня не зацепило. Тогда я вернулся к способу учета времени, которым жена пользовалась на тот момент, и еще раз осмыслил классную задумку прописывать в мессенджере время начала и окончания работ. Изучив материал по теме ботов и веб хуков, я создал инструмент на основе Telegram.
➡️ Читать дальше
@javascriptv
В данной статье вы узнаете, как вести учет рабочего времени с помощью Telegram Bot API и механизма веб хуков (англ. Webhooks). Мы разберем этапы создания, настройки и развертывания тайм-трекера. Но сначала хотелось бы рассказать, как эта идея пришла мне в голову. Если же вас интересует только техническая часть повествования, переходите сразу к следующему разделу.
Введение
Как-то в разговоре моя жена сказала, что ей нужно написать почасовой отчет о работе, проделанной за 3 последних месяца, и определить точное количество отработанных часов. Не имея в распоряжении никакого инструмента для регистрации рабочего времени, ей было довольно сложно рассчитать эти показатели по старым заметкам и чатам. Тогда она поддержала предложение своего руководителя создать группу в WhatsApp, куда будет отправлять сообщение в момент начала и окончания работы. Имеющиеся сообщения упростят составление подобных отчетов.
Идея отличная: телефон практически всегда под рукой, так что ничего не стоит просто написать слова “начало”/“окончание” или что угодно. Я вдохновился этой идеей и задумался о способах ее реализации. Часами я искал хороший инструмент для учета рабочего времени, руководствуясь следующими обязательными условиями: 1) он должен легко вводить сообщение “Задание выполняется” или “Задание готово”; 2) он работает на всех имеющихся устройствах.
Я опробовал несколько соответствующих приложений, которые запускались на компьютерах Mac, Linux и смартфонах, но ни одно из них меня не зацепило. Тогда я вернулся к способу учета времени, которым жена пользовалась на тот момент, и еще раз осмыслил классную задумку прописывать в мессенджере время начала и окончания работ. Изучив материал по теме ботов и веб хуков, я создал инструмент на основе Telegram.
➡️ Читать дальше
@javascriptv
👍10❤1🔥1
Как легко управлять зависимостями в монорепозитории JS
Пытаясь эффективно управлять зависимостями в монорепозитории, можно столкнуться с этими двумя проблемами одновременно.
В некоторых случаях монорепозитории упрощают и ускоряют разработку, а также обеспечивают возможность совместно работать над кодом. Многие компании, от Google и Uber до стартапов, порой используют монорепозитории ради этих преимуществ.
Однако выбор архитектуры монорепозитория сопровождается определенными неудобствами. Не исключено, что возникнут проблемы, которые могут осложнить разработку и поддержку программных проектов, особенно при масштабировании.
Уделим внимание одной из самых наболевших проблем монорепозитория — управлению зависимостями. Посмотрим, как с помощью инструментов с открытым исходным кодом, таких как рабочие среды Pnpm и Yarn, а также Bit, можно элегантно решить эту задачу и значительно упростить работу с зависимостями.
➡️ Читать дальше
@javascriptv
Пытаясь эффективно управлять зависимостями в монорепозитории, можно столкнуться с этими двумя проблемами одновременно.
В некоторых случаях монорепозитории упрощают и ускоряют разработку, а также обеспечивают возможность совместно работать над кодом. Многие компании, от Google и Uber до стартапов, порой используют монорепозитории ради этих преимуществ.
Однако выбор архитектуры монорепозитория сопровождается определенными неудобствами. Не исключено, что возникнут проблемы, которые могут осложнить разработку и поддержку программных проектов, особенно при масштабировании.
Уделим внимание одной из самых наболевших проблем монорепозитория — управлению зависимостями. Посмотрим, как с помощью инструментов с открытым исходным кодом, таких как рабочие среды Pnpm и Yarn, а также Bit, можно элегантно решить эту задачу и значительно упростить работу с зависимостями.
➡️ Читать дальше
@javascriptv
👍7❤1🔥1
This media is not supported in your browser
VIEW IN TELEGRAM
WARP
Красивая анимация плавающей голограммы. Реализована с помощью JavaScript.
#анимация #javascript #css
https://codepen.io/al-ro/pen/oRZLbd
@javascriptv
Красивая анимация плавающей голограммы. Реализована с помощью JavaScript.
#анимация #javascript #css
https://codepen.io/al-ro/pen/oRZLbd
@javascriptv
👍8❤2👎1🔥1
This media is not supported in your browser
VIEW IN TELEGRAM
Fakebrowser – Браузер, что умеет подделывать нажатия пальцев для обхода анти-бот систем.
Моделируйте операции с мышью и клавиатурой, чтобы имитировать поведение обычного пользователя
#GitHub #JavaScript #Interesting #Browser
@javascriptv
Моделируйте операции с мышью и клавиатурой, чтобы имитировать поведение обычного пользователя
#GitHub #JavaScript #Interesting #Browser
@javascriptv
👍11🔥3❤1
This media is not supported in your browser
VIEW IN TELEGRAM
Fish Spinner - загрузчик для сайта. Спинер сделан при помощи CSS и JS
https://codepen.io/chrisgannon/pen/gOzgXve
@javascriptv
https://codepen.io/chrisgannon/pen/gOzgXve
@javascriptv
👍11🔥2❤1👎1
This media is not supported in your browser
VIEW IN TELEGRAM
Morphing Submit Button
Кнопка отправки морфинга. Реализована с помощью JavaScript.
#кнопка #javascript #css
https://codepen.io/toshiya-marukubo/pen/dypmMQq
Кнопка отправки морфинга. Реализована с помощью JavaScript.
#кнопка #javascript #css
https://codepen.io/toshiya-marukubo/pen/dypmMQq
👍16🔥3❤2
This media is not supported in your browser
VIEW IN TELEGRAM
cpc-days | 3d carousel
3D-карусель просмотра праздников по дням в месяце. Реализован с помощью CSS и JavaScript.
#3D #карусель #css #javascript
https://codepen.io/MarkBoots/pen/ExbbvOv
@javascriptv
3D-карусель просмотра праздников по дням в месяце. Реализован с помощью CSS и JavaScript.
#3D #карусель #css #javascript
https://codepen.io/MarkBoots/pen/ExbbvOv
@javascriptv
👍8🔥3❤1🤯1
🔥 Полезнейшая Подборка каналов
🖥 Javascript / front
@about_javascript - javascript продвинутый
@JavaScript_testit -тесты JS
@htmlcssjavas - web
@hashdev - web разработка
@javascriptv - javascript изучение
🖥 Machine learning
@ai_machinelearning_big_data – все о машинном обучении
@data_analysis_ml – все о анализе данных.
@machinelearning_ru – машинное обучении на русском от новичка до профессионала.
@machinelearning_interview – подготовка к собеседования Data Science
@datascienceiot – бесплатные книги Machine learning
@ArtificialIntelligencedl – канал о искусственном интеллекте
@neural – все о нейронных сетях
@machinee_learning – чат о машинном обучении
@datascienceml_jobs - работа ds, ml
@Machinelearning_Jobs
🖥 Python
@pythonl - python
@pro_python_code – погружение в python
@python_job_interview – подготовка к Python собеседованию
@python_testit тесты на python
@pythonlbooks - книги Python
@Django_pythonl django
@python_djangojobs - работа Python
@python_django_work
🖥 Java
@javatg - Java для програмистов
@javachats Java чат
@java_library - книги Java
@android_its Android разработка
@java_quizes - тесты Java
@Java_workit - работа Java
@progersit - шпаргалки ит
👣 Golang
@golang_interview - вопросы и ответы с собеседований по Go. Для всех уровней разработчиков.
@Golang_google - go для разработчиков
@golangtests - тесты и задачи GO
@golangl - чат Golang
@GolangJobsit - вакансии и работа GO
@golang_jobsgo - чат вакансий
@golang_books - книги Golang
@golang_speak - обсуждение задач Go
🖥 Linux
@linux_kal - чат kali linux
@linuxkalii - linux kali
@linux_read - книги linux
👷♂️ IT работа
@hr_itwork - ит-ваканнсии
🖥 SQL
@sqlhub - базы данных
@chat_sql - базы данных чат
🤡It memes
@memes_prog - ит-мемы
⚙️ Rust
@rust_code - язык программирования rust
@rust_chats - чат rust
#️⃣ c# c++
@csharp_ci - c# c++кодинг
@csharp_cplus чат
📓 Книги
@programming_books_it
@datascienceiot
@pythonlbooks
@golang_books
@frontendbooksit
@progersit
@linux_read
@java_library
@frontendbooksit
📢 English for coders
@english_forprogrammers - Английский для программистов
🖥 Github
@github_code
@about_javascript - javascript продвинутый
@JavaScript_testit -тесты JS
@htmlcssjavas - web
@hashdev - web разработка
@javascriptv - javascript изучение
@ai_machinelearning_big_data – все о машинном обучении
@data_analysis_ml – все о анализе данных.
@machinelearning_ru – машинное обучении на русском от новичка до профессионала.
@machinelearning_interview – подготовка к собеседования Data Science
@datascienceiot – бесплатные книги Machine learning
@ArtificialIntelligencedl – канал о искусственном интеллекте
@neural – все о нейронных сетях
@machinee_learning – чат о машинном обучении
@datascienceml_jobs - работа ds, ml
@Machinelearning_Jobs
@pythonl - python
@pro_python_code – погружение в python
@python_job_interview – подготовка к Python собеседованию
@python_testit тесты на python
@pythonlbooks - книги Python
@Django_pythonl django
@python_djangojobs - работа Python
@python_django_work
@javatg - Java для програмистов
@javachats Java чат
@java_library - книги Java
@android_its Android разработка
@java_quizes - тесты Java
@Java_workit - работа Java
@progersit - шпаргалки ит
@golang_interview - вопросы и ответы с собеседований по Go. Для всех уровней разработчиков.
@Golang_google - go для разработчиков
@golangtests - тесты и задачи GO
@golangl - чат Golang
@GolangJobsit - вакансии и работа GO
@golang_jobsgo - чат вакансий
@golang_books - книги Golang
@golang_speak - обсуждение задач Go
@linux_kal - чат kali linux
@linuxkalii - linux kali
@linux_read - книги linux
👷♂️ IT работа
@hr_itwork - ит-ваканнсии
@sqlhub - базы данных
@chat_sql - базы данных чат
🤡It memes
@memes_prog - ит-мемы
⚙️ Rust
@rust_code - язык программирования rust
@rust_chats - чат rust
#️⃣ c# c++
@csharp_ci - c# c++кодинг
@csharp_cplus чат
📓 Книги
@programming_books_it
@datascienceiot
@pythonlbooks
@golang_books
@frontendbooksit
@progersit
@linux_read
@java_library
@frontendbooksit
@english_forprogrammers - Английский для программистов
@github_code
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8❤2🔥2
This media is not supported in your browser
VIEW IN TELEGRAM
Gooey Navigation
Элементы меню - это svg картинки, стилизованные в SCSS.
https://codepen.io/simeydotme/pen/LYLxJqV
@javascriptv
Элементы меню - это svg картинки, стилизованные в SCSS.
https://codepen.io/simeydotme/pen/LYLxJqV
@javascriptv
🔥10👍6❤3👎1
Favicon (фавикон) — это термин, образованный из двух слов: favorite (“избранный”) и icon (“иконка”). Фавикон можно увидеть практически в каждом веб-приложении. Этот уникальный значок поможет выделить веб-приложение из тысяч других.
Вы, вероятно, стараетесь использовать возможности современных браузеров по максимуму, чтобы обеспечить оптимальный уровень пользовательского опыта. Именно поэтому необходимо заменять традиционные фавиконы адаптивными иконками, интересными современным пользователям.
Поговорим о том, как разработать и использовать в React-проекте адаптивные SVG-фавиконы, а также об их преимуществах.
➡️ Читать дальше
@javascriptv
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8❤1🔥1
This media is not supported in your browser
VIEW IN TELEGRAM
Intelligent Mouse Trailer
Анимация плавного курсора. Реализована с помощью JavaScript.
#анимация #курсор #javascript
https://codepen.io/Hyperplexed/pen/abYJQxP
@javascriptv
Анимация плавного курсора. Реализована с помощью JavaScript.
#анимация #курсор #javascript
https://codepen.io/Hyperplexed/pen/abYJQxP
@javascriptv
👍7❤1🔥1
В этой статье мы рассмотрим, что такое синглтон и все способы его реализации в JavaScript.
Синглтон — это шаблон проектирования, решающий две проблемы. Это гарантирует, что однопоточное приложение будет иметь только один экземпляр данного класса. Вторая проблема, когда нам нужно иметь глобальную точку доступа к какому-то экземпляру класса или просто объекту. Иногда разработчики называют некоторый объект синглтоном, даже если он решает только одну проблему.
Вот несколько случаев, когда мы можем использовать синглтон:
- Глобальное состояние приложения как единственный источник истинного — Redux, менеджеры состояний Mobx обеспечивают глобальный доступ к состоянию
- Служба API, в которой мы инкапсулируем некоторую логику и сохраняем сеанс или токен для выполнения вызовов API.
- Служба для хранения базы данных или соединения WebSocket, и здесь мы можем быть уверены, что у нас есть только одно соединение данного синглтона.
Итак, давайте посмотрим, как мы можем реализовать следующий шаблон.
➡️ Читать дальше
@javascriptv
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10❤1🔥1
Validate.js – библиотека, которая предоставляет декларативный способ валидации JavaScript-объектов
Поддерживает юнит-тестирование и на 100% покрывает код
⤷ Ссылка на проект
@github_code | #Interesting #JavaScript #Web
Поддерживает юнит-тестирование и на 100% покрывает код
⤷ Ссылка на проект
@github_code | #Interesting #JavaScript #Web
👍5🔥4❤1
This media is not supported in your browser
VIEW IN TELEGRAM
Magnetic Hover Interaction
Взаимодействие с магнитным зависанием. Реализовано с помощью JavaScript.
#анимация #курсор #javascript
https://codepen.io/dev_loop/pen/KKdEgdz
@javascriptv
Взаимодействие с магнитным зависанием. Реализовано с помощью JavaScript.
#анимация #курсор #javascript
https://codepen.io/dev_loop/pen/KKdEgdz
@javascriptv
❤8👍2🔥2
This media is not supported in your browser
VIEW IN TELEGRAM
Planet Picker
Небольшое приложение на JS, в котором реализован просмотр информации о планетах солнечной системы.
#css #js
https://codepen.io/team/keyframers/pen/YoaeGg
Небольшое приложение на JS, в котором реализован просмотр информации о планетах солнечной системы.
#css #js
https://codepen.io/team/keyframers/pen/YoaeGg
👍16🔥2❤1
Pdf.js – программа для чтения PDF-файлов, написанная на JavaScript и HTML5
Это проект с открытым исходным кодом, который постоянно ищет новых участников
⤷ Ссылка на проект
@javascriptv | #Interesting #Web #JavaScript
Это проект с открытым исходным кодом, который постоянно ищет новых участников
⤷ Ссылка на проект
@javascriptv | #Interesting #Web #JavaScript
👍12❤1👎1🔥1😁1
This media is not supported in your browser
VIEW IN TELEGRAM
3D Card Animation
3D-анимация карт. Реализована с помощью JavaScript.
#анимация #javascript
https://codepen.io/team/keyframers/pen/abywmrO
@javascriptv
3D-анимация карт. Реализована с помощью JavaScript.
#анимация #javascript
https://codepen.io/team/keyframers/pen/abywmrO
@javascriptv
👍5❤1🔥1
В этой статье будет подробно рассмотрена проблема загрузки исходных данных при использовании React в Sketch. Она заключается в том, что UI React рендерится без данных Sketch при первом открытии окна плагина.
Мы также рассмотрим одно из возможных решений этой проблемы. В конце статьи есть ссылка на полный демо-репозиторий.
Примечание: плагин реагирует только на слои, а не на страницы. Если запустить плагин с выбранной страницей, он будет рендериться без данных Sketch.
➡️ Читать дальше
@javascriptv
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7🔥2❤1
Chatwoot – проект, предоставляющий функционал для живого чата (чат-саппорта) с открытым исходным кодом, альтернатива Intercom, Zendesk, Drift, Crisp и т.д.
⤷ Ссылка на проект
@github_code | #Interesting #Ruby, #JavaScript
⤷ Ссылка на проект
@github_code | #Interesting #Ruby, #JavaScript
❤7👍2🔥1