Commit No Bug
Published on

The PomoSimple Timer

Authors
  • avatar
    Name
    nikUnique
    Twitter
An interface of a pomodoro timer on a light blue background color

๐ŸŽฏ App Concept

I designed this application to help myself and others maintain focus and manage work intervals effectively (or at least nicely :)) using the Pomodoro Technique. This time management method breaks work into concentrated 25-minute intervals, followed by short breaks to maximize mental clarity and prevent burnout.

โœจ Motivation

After I learned React, I decided to write a Pomodoro timer app using the React library to practice my React skills + to have a React project sitting on my page. That is why I decided to build this web app.

โฑ๏ธ Key Features of the "PomoSimple Timer" App

  1. Timer Functionality: We can customize work and break intervals so that you can set the time you want.

  2. Notifications: Visual and audio alerts go off when the time is up, so you instantly know without constant clock-watching.

  3. Sounds: You can configure audio sounds for the end of timers so you can choose the right sound for you. Although there are only a couple of them at the moment.

  4. History tracking: There is also a history consisting of pomodoro items. Each item consists of:

    • Timer name
    • Start time
    • End time
    • Duration
    A pomodoro item

Also, each item has an eye icon that you can click; it opens another panel. And on that panel, we can see timer events like pause, resume, reset, and even interruption, because the timer is designed to persist when the page reloads or when the electricity turns off. I found this to be a nice feature, so you do not lose your progress in case of electricity problems.

Events panel of a pomodoro item

There is also a simple summary with some general statistics. You also see how much time each timer type used, and how many timers completed.

Summary panel of a "PomoSimple Timer" app
  1. CSV export: We can download productivity history so we can track when and how many Pomodoro we completed.

  2. Persistent timer state: Even if we accidentally refresh the page or electricity suddenly turns off, the timer progress is maintained.

  3. Customizable settings: You can choose alarm sound, volume, and timer mode. You can adjust the time for different types of timers (like pomodoro, short break, long break, or just a simple timer), so you can tailor the app to your specific work style.

๐Ÿ–ฅ๏ธ Technical Implementation Highlights

๐Ÿ“š In the project, I used the following libraries:

  • SimpleBar React: Provides custom scrollbar solutions. This one is really helpful, because without it, there was a problem when I tried to display a nicely looking scrollbar in different browsers.

  • React Icons: Used this for all icons in the app. Like this library ๐Ÿ‘.

  • React Hotkeys Hook: I tried to implement shortcut functionality without using external libraries, but in the end decided to leverage the React Hotkeys Hook library, because it is just simple to use. Shortcuts functionality isn't really a key feature; that's why it wasn't explained above.

๐ŸŒŸ What can you use it for?

You can use the web app for a lot of things, but here are a couple of options:

  • ๐Ÿ“š Study sessions
  • โœ๏ธ Creative writing blocks
  • ๐Ÿ  Remote work time management
  • ๐Ÿ› ๏ธ Personal project development

I personally use it for "๐Ÿ“š Study sessions" to learn programming, also for "๐Ÿ› ๏ธ Personal project development", and of course to write this blog post too :). Here is the link to my app.

Here you go ๐Ÿ˜ƒ! This is an overview of my "PomoSimple Timer" app.

Got questions? Send me an email to commitnobug@outlook.com