-
Notifications
You must be signed in to change notification settings - Fork 0
Home
git-kundan edited this page Nov 23, 2020
·
5 revisions
Welcome to the Concentrer wiki!
- Basic pomodoro functions - start/pause/stop a pomodoro and breaks
- Adjustable small and big break times, pomodoro times - global setting, project, set, task and pomodoro wise setting
- Create, edit, delete projects, tasks and assign pomodoro goals (sets)
- Sounds and alarms - ticks and completion
- Progress report - project, tasks, pomodoros completed, pending
- Domain model
- User Settings { user-uuid, user-name}
- Basic Authentication { user-uuid, password }
- Pomodoro Global Settings { user-uuid, pomodoro-duration, small-break-duration, long-break-duration, pomodoros-in-a-set }
- Project { project-uuid, project-name (non-unique), target-pomodoros (aggregated from tasks), pomodoro-duration, small-break-duration, long-break-duration, pomodoros-in-a-set}
- Tasks { task-uuid, project-uuid (can be blank for free tasks not assigned to a project), task-name (non-unique), target-pomodoros (user entered), pomodoro_duration, small_break_duration, long_break_duration, pomodoros_in_a_set, completed_pomodoros}
- Set { set-uuid, task-uuid (can be blank),pomodoro-duration, small-break-duration, long-break-duration, pomodoros-in-a-set }
- Pomodoro { pomodoro-uuid, pomodoro-set-uuid (not blank, required for break computation), sequence-number-in-set (must be less than pomodoros-in-a-set), pomodoro-duration, time-spent, break_time }
- Break { break_uuid, break_type, last_pomodoro_uuid, break_time, time_spent (must be less than break_time), status }
- Counter { pomodoro_uuid, pomodoro_set_uuid (not blank), pomodoro_number_in_set (must be less than pomodoros_in_a_set) }
- Architecture
- Modular data storage - file system, cloud storage or database.
- Modular authentication
- Application layer in Clojure - exposed via REST API
- Flexible Client UIs - Desktop, Web UI, Mobile Clients
- High Level Design *
Question 1. Where would the pomodoro ticks happen? Pomodoro ticks will happen at client. Each client should be able to work independently. The client should be in continuous touch with the back-end so that current state and commands can be shared across multiple clients.
Question 2. Will client maintain its own time to count ticks, or depend on system time? Every tick, client should check system time and accordingly compute the duration of current pomodoro. If the duration happens to be negative, then an error should happen to reset the pomodoro and start again.