Skip to content

TogglBoard: The most overly complicated time-tracking device ever created!

License

Notifications You must be signed in to change notification settings

NevilleS/toggl-board

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

79 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

TogglBoard

Build Status Dependencies Dev Dependencies

The most overly complicated time-tracking device ever created!

Device TogglBoard is a physical time-tracking device that connects to the Toggl API, so that I can quickly toggle between 7 different active projects. It's fanciest feature is the two-way sync; thanks to a motorized slider, the TogglBoard device can have it's active project overridden if I change the active project via any of the Toggl apps 🎉 🤖

It's still a work in progress, though.

TogglBoard Device

The device is powered by a Particle Core, a fantastic little WiFi-enabled IoT device that's been discontinued in favour of the new Particle Photon. The core interfaces with a motorized slide potentiometer that the user can slide up and down to choose between 8 different active projects to begin a new time entry in Toggl. If the device receives a command to change the current project (e.g. the user changed the project via the Toggl website), the motor is used to automatically slide the switch to the correct new position using a classic, closed-loop PID controller. This achieves the "two-way" sync, which means the device and the API are always displaying the same active project.

Overall, this requires:

  • Particle Core WiFi-enabled Microcontroller
  • Motorized Slide Potentiometer
  • Motor Driver
  • Shift Register (for lots of LEDs)
  • ...and lots of LEDs

TogglBoard Server

The server implements the logic that syncs the device and the Toggl API. That's rather mundane, so to make things interesting, it uses a handful of wholly unnecessary technologies; it's a:

  • Node.JS Server Application
  • ...compiled from Typescript
  • ...unit tested with Jest
  • ...containerized with Docker
  • ...built with Azure Pipelines CI (here)
  • ...deployed with Azure Pipelines CD (here)
  • ...hosted with Azure Web App for Containers (here)

About

TogglBoard: The most overly complicated time-tracking device ever created!

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •  

Languages