Following the principles of Clean Architecture.
-
Sessions
- Sessions last for up to 10 hours.
- Users can start a new session if needed.
- Minimum session duration is 5 minutes; shorter sessions will be disregarded.
- Sessions can only be stopped if the last active time (
Session.lastTimeActive
) is less than 5 minutes.
-
Pomodoro
- Minimum duration: 25 minutes
- Maximum duration: 120 minutes
-
Short Breaks
- Minimum duration: 1 minute
- Maximum duration: 15 minutes
-
Long Breaks
- Minimum duration: 3 minutes
- Maximum duration: 60 minutes
-
Long Intervals
- Minimum count: 2
- Maximum count: 6
-
- Can read the default duration.
-
- Can modify the default duration.
-
- Can reset the default duration.
-
- Can sign in to the app using their GitHub account.
-
- Can start sessions.
-
- Can stop sessions.
-
- Can stop sessions across platforms based on the last active time.
-
- Can view a session by start date.
-
- Can view sessions by a range of dates (start date inclusive; end date exclusive), filtering both the start date and end date of the session.
-
- Can copy sessions from local/offline storage to their account.
-
- Can delete sessions from local/offline storage.
-
- Can create new notes.
-
- Can read notes by ID or by the date they were created/updated.
-
- Can update notes.
-
- Can delete notes.
-
- Can select the repo/project/issue to associate with a new session.
-
- Can view the total number of Pomodori for each repo/project/issue.
-
- Store default duration constraints in the database.
npm test
npm run build && node ./lib/examples/external-users-app/index.js
- The Model is the application object, the View is its screen representation, and the Controller defines how the user interface reacts to user input.
- Views and Models are decoupled by establishing a subscribe/notify protocol between them.
- The View ensures that its appearance reflects the state of the model.
- The View uses an instance of a Controller subclass to implement specific response strategies.
npm version major|minor|patch
This version is more consistent and clearer, making it easier for users to understand the project's constraints, functionalities, and how to interact with the application.