Skip to content

Pomodoro is a mobile app, developed using Flutter , serves as a simple productivity and time-management tool.

Notifications You must be signed in to change notification settings

Feras-dev/pomodoro

Repository files navigation

Pomodoro

Pomodoro is a mobile app, developed using Flutter , serves as a simple productivity and time-management tool.

screenshots:

Design

Block diagram

The block diagram below illustrates the logical flow of the Pomodoro application. First, the user will enter a task(s) they wish to complete. Once all pertinent information has been entered (ie. the task’s priority, its work time, and its break time) the work timer will run to completion before a break is initiated. After the break has ended, the user will be prompted to either continue working or exit out. The former occurs if the given task was not completed after one Pomodoro cycle or if the user chooses to work on another task, and the latter will allow the user to exit out of the application. image

Use case diagram

image

Activity diagram

The following diagram shows the path from beginning a new session to exiting out of the Pomodoro application. The user will initiate a session and from there can populate and manage a task list containing one or more tasks they wish to complete, as well as select a task to begin work on. Once the task(s) has been entered, the user will enter a sprint state to begin work on said task for the allotted time. The user can cycle through as many sprint states as needed until the task is complete, and at any point can exit out of the application whether from in a sprint state or on the task list management page. image

State machine diagram

The following diagram has been revised to include the application’s various states (idle, work, and sprint) as well as the choices that can be made by a user to enter different states within the diagram. These choices were elaborated to decrease linearity and showcase all paths possible from launch to termination. image

Class diagram

The class diagram has been refined to indicate the changes in codebase and the addition of two classes: StateMachineManager and NotificationManager. Instead of having the Task class reference the Pomodoro class, the Pomodoro class now stores the reference to the Task class. This simplifies the storage and association of the Task class to the Pomodoro class. The current state of the user (State) has been moved to the newly created class to be accessible throughout the whole scope of the application. All the classes have been segregated into packages according to their roles. image

Interaction sequence diagram

The Interaction sequence diagram below describes the interactions between the Pomodoro app’s classes, the context of each interaction, and the sequence of events of the app as a whole. Due to the diagram’s size, the diagram has been split into two images to be included in this document. Please refer to the attached Modelio project for the full diagram. image image

Package diagram

The package diagram below shows the structure and design of our application at the level of packages. At the higher level our application follows the MVC architecture which further contains many packages organized according to the functions they serve. Upon the application’s launch the user interacts with the components of the “View” package. The application also interacts with some external packages that are necessary for its low-level functionality. image

Deployment diagram

The deployment diagram below indicates the Pomodoro application deployment to Android. Various components comprise the application, and the AnrdroidManifest.xml file is responsible for declaring each of these components. The AndroidManifest.xml file will also specify application requirements, including the minimum version of Android necessary for successful deployment. image

Getting Started

How to run =>

About

Pomodoro is a mobile app, developed using Flutter , serves as a simple productivity and time-management tool.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages