The Comodoro project aims to provide quality tools related to time management, based on the pimalaya-time library.
The core concept is the timer, which gathers information about the cycle and the state. The server runs the timer and accepts connection from clients thanks to server binders. The clients communicate with the server using requests and responses, which allow them to control the timer.
The server can use multiple protocols at the same time. On the other hand, a client can use only one protocol. Each client can connect to one server binder. This pattern allows you to start a centralized timer from a client A on a protocol X and to read the current timer from a client B on a protocol Y.
┌────────────────────────┐
│Server │
│ ┌────────┐ │ Request ┌────────┐
│ │ │◄├─────────┤ │
│ ┌────────┤Binder A│ │ │Client A│
│ │ │ ├─┼────────►│ │
│ │ └────────┘ │Response └────────┘
│ │ │
│ ▼ ┌────────┐ │ ┌────────┐
│ ┌─────┐ │ │◄├─────────┤ │
│ │Timer│◄────┤Binder B│ │ │Client B│
│ └─────┘ │ ├─┼────────►│ │
│ ▲ └────────┘ │ └────────┘
│ │ │
│ │ ┌────────┐ │ ┌────────┐
│ │ │ │◄├─────────┤ │
│ └────────┤Binder C│ │ │Client C│
│ │ ├─┼────────►│ │
│ └────────┘ │ └────────┘
│ │
└────────────────────────┘
Currently, these tools have been built:
- A CLI, to manage your time from the terminal.