GithubHelp home page GithubHelp logo

arduino-pomodoro's Introduction

Info

  • 🛠️  16 months professional experience contributing to products powered by C++.
  • 📜  Studied computer science at the University of British Columbia (UBC).
  • 💻  Comfortable developing on Linux, macOS, and Windows, in-person and remote.
  • 💼  Currently seeking back-end, full-stack and other software development roles.

Stack

... we are all shaped by the tools we train ourselves to use ― Edsger W. Dijkstra

Frequency Technology
Often C++*, Elixir*, SQL, HTML, CSS, JavaScript
Periodically Java, Godot GDScript, Swift for iOS
Occasionally Python, Bash
Bucket List Rust, Go, Kotlin for Android, Flutter, React Native

* = most experience

Doodles

What does a billion look like? src
One column layout with full-width sections
(responsive html / css template)
src
swing
(controls: W, S, shift+W, shift+S)
src

arduino-pomodoro's People

Contributors

pseigo avatar

Stargazers

 avatar

Watchers

 avatar  avatar

arduino-pomodoro's Issues

Manually trigger long break

There should be a way to manually switch to a long break using the push buttons.

Currently, button 2 only changes from Timer::Work -> Timer::BreakShort, or from Timer::BreakShort || Timer::BreakLong -> Timer::Work, regardless of how many pomodoros have been completed.

This is good, but there is no way to manually switch to a long break.

A possibility may be to use a long press on button 2 to switch to a long break.

Start Timer::Work state paused

The work state should start paused to allow the user to manually begin their work session.

When the timer is set to the Timer::Work state, Timer1.stop() should probably be called, as if the pause button was pressed.

Change appearance of RGB LED for pause state

Currently, the indicator RGB LED turns red during the Timer::Pause state, without any indication of what state it was paused from.

Perhaps it would be better to slowly pulse the LED in the colour of the previous state. For example, if you're in the work state, the LED is green. When you click the pause button, the timer will stop and the LED will slowly pulse green. Click the button again and the work state will be restored with a solid green indicator.

Tick immediately when state is changed

tick() should tick immediately when the timer is changing states. At the moment, you have to wait for the next tick (~1 second) before you can see the updated time. Alternatively, update the display with the current time as soon as the state is changed to avoid "skipping" a tick when starting the timer.

Button 2: switching modes when paused

Currently, button 2 is configured to do nothing when the timer is in the "Pause" state.

Instead, when paused, using the button should switch to the opposite mode. Note that this is the opposite state of timer.m_state_previous, because timer.m_state will be set to Timer::Pause.

Clean up debounced_press

This function should be a lot cleaner, specifically where the button release is handled. Perhaps also replace the 1/-1 system of determining which button is pressed.

Clock sometimes stops ticking

When pressing either button for > 500 ms, the hardware clock is stopped. This is a result of old testing code which should be removed.

Make sounds configurable

It may be beneficial to have an boolean for sounds in the Config class. This can include..

  1. bool m_sound_tick if true, speaker "ticks" on each tick()
  2. bool m_sound_complete if true, speaker plays a sound when a pomodoro has been completed
    • there may be a better word to use than complete

5 pomodoros instead of 4

After 4 pomodoros have passed and all 4 yellow LEDs go out, the timer cycles through one extra pomodoro (for a total of 5 pomodoros instead of 4) before resetting.

Time on display does not update when entering work mode

2581a74 (requested by #6) adds a feature to pause the timer when entering work mode. However, when entering the work state (followed by a pause), the timer displays 0.00 instead of the time of the new work period as expected.

ie. it should display 25.00 (or whatever the work period is set to) and be paused.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.