time-mastery/pmodoro-application
61.4
Adequate · 21 September 2026
8.2k
lines of production code
Dart
primary language
4
measurements over time
What this system is
This is a cross-platform productivity application built with Flutter, designed to help users manage tasks, track habits, and maintain focus through a Pomodoro timer. The system implements a clean architecture with a BLoC-based state management layer, supporting user authentication, local data persistence via Drift, and multi-language localization. It provides features for task and habit CRUD operations, timer state management, and configurable user settings, all wrapped in a consistent UI with dark mode support.
How it got here
2022 — Task management and timer feature implementation
33 changes.
This period focused on implementing the core task management and Pomodoro timer features, including domain models, repositories, and BLoC state management. The work also established a centralized architecture with dependency injection, global state management, and reusable UI components to support these new functionalities.
2023 — Feature expansion and architecture modernization
28 changes.
This period focused on implementing core application features, including habit tracking, task management, and user authentication, while simultaneously modernizing the underlying architecture. The team introduced a new local database implementation using Drift, replaced Isar, and established a comprehensive settings management system with corresponding BLoCs and UI components.
Features
Add AnalysisBloc for task management analysis
Introduced a new AnalysisBloc in the task management feature to handle analysis-related events and states. The bloc manages the lifecycle of fetching analysis data, transitioning through initial, loading, success, and failure states, and utilizes a GetAnalysisUseCase to retrieve analysis entities.
_lib/features/task\_management/presentation/blocs/analysis\bloc · high confidence
Add DateTime and SizedBox extension utilities
Users can now format dates and create spacing widgets more concisely via new Dart extensions. The DateTime extension provides task-specific time (HH:mm a) and date (yyyy-MM-dd) formatting, while the num extension adds spaceH() and spaceW() methods to generate SizedBox widgets for vertical and horizontal spacing.
lib/core/extensions · high confidence
Add German, English, and Persian translations for the app
The app now supports German (de), English (en), and Persian (fa) locales. This change introduces the corresponding .arb files in lib/l10n, providing the translated strings for UI elements such as tabs, settings, task management, and habit tracking, enabling users to view the application interface in their preferred language.
lib/l10n · high confidence
Add HabitModel for local data persistence
A new HabitModel class has been introduced in the habit tracking feature to handle the mapping between domain entities and local database records. This model includes fields for title, description, icon, color, and a unique UUID, and provides methods for JSON serialization and database collection conversion, enabling the app to store and retrieve habit data locally.
_lib/features/habit\tracking/data/models · high confidence
Add HomeBloc to manage home screen data and daily goals
A new HomeBloc has been introduced to handle the presentation logic for the home screen. It integrates with domain use cases to fetch uncompleted tasks and daily information, and manages the lifecycle for checking and saving daily goals. The implementation includes specific events (HomeDataFetched, DailyGoalChecked, DailyGoalSaved, DailyGoalUpdated) and corresponding states (Loading, Success, Failure) to drive the UI.
_lib/features/task\_management/presentation/blocs/home\bloc · high confidence
Add domain use cases for configuration settings
The domain layer for the configuration feature now includes six new use cases to manage user preferences: ChangeLocale, ChangeSettings, ChangeTheme, GetLocale, GetSettings, and GetTheme. These classes act as intermediaries that delegate calls to the SettingsRepository, enabling the application to retrieve and update locale, theme, and general settings.
lib/features/configuration/domain/usecases · high confidence
Add habit tracking BLoC for CRUD operations
The habit tracking feature now includes a new BLoC implementation that manages the state for creating, editing, deleting, and marking habits as done. This introduces the core presentation logic for habit tracking, handling events for fetching all habits, adding new ones, updating existing ones, and completing daily tasks.
_lib/features/habit\tracking/presentation/blocs · high confidence
Add habit tracking domain use cases
The habit tracking feature now includes domain use cases for adding, editing, deleting, and retrieving habits, as well as marking habits as done for the day. These use cases wrap repository calls to support the full lifecycle of habit management within the app.
_lib/features/habit\tracking/domain/usecases · high confidence
Add local data source for user settings
A new SettingsLocalDataSources class has been introduced to manage the persistence of user configuration preferences. It handles reading and writing settings such as notifications, sound, vibration, app updates, tips, and ads via local storage, as well as managing locale and theme selections.
_lib/features/configuration/data/data\sources · high confidence
Add notifications page with placeholder UI
A new NotificationsPage is introduced, providing a scaffolded UI for the notification feature. The page displays a header and a list of 100 placeholder notification items, each with a title, description, color, and icon. An empty state is shown when the list is empty, featuring an ice cream icon and a 'no notifications' message. The implementation currently uses hardcoded data and a TODO comment indicates the API connection is pending.
_lib/features/notification\management/presentation/pages · medium confidence
Add user profile and authentication UI screens
The authentication feature now includes complete UI for user profile and authentication flows. A new UserPage displays a ProfileView showing user details (name, email, username) and a logout button. Additionally, an AuthView provides a toggleable sign-in/sign-up form with fields for name, email, and password, along with a 'forget password' link and account creation toggle.
lib/features/authentication · medium confidence
Add weekly spending bar chart widget
A new bar chart widget has been added to visualize weekly spending in pomodoros. The component renders a horizontal bar chart displaying the last 7 days' data, with interactive touch states that highlight the selected day and display a tooltip showing the pomodoro count.
_lib/features/task\_management/presentation/pages/analysis\widgets · high confidence
Added Settings BLoC for managing user configuration
A new Settings BLoC has been introduced to centralize the management of user settings, including theme, language, and general preferences. This component handles fetching initial data (locale and theme), updating settings, and processing changes to language and theme, exposing corresponding loading, success, and failure states to the UI layer.
_lib/features/configuration/presentation/blocs/settings\bloc · high confidence
Added abstract UseCase base class
A new abstract class UseCase\<T, P\> has been added to the core resources, defining a standard interface for use cases with a generic type T for the result and an optional parameter P. This provides a consistent pattern for executing business logic operations.
lib/core/resources · high confidence
Added language and theme selection bottom sheets
Users can now change the app's display language and theme via new bottom-sheet UI components. The 'Change Language' widget presents a list of supported languages (English, Persian/Farsi, German) and triggers a locale change event. The 'Change Theme' widget displays available themes from the app's constants and applies the selected theme via the settings bloc.
lib/features/configuration/presentation/widgets · high confidence
Added local notification service for in-app and background alerts
Users can now receive local notifications within the app, including a welcome notification on first launch and background notifications that display a progress bar during active timers. The new \AppLocalNotification\ service manages notification permissions, initializes channels for standard and background alerts, and handles user interactions with notifications.
lib/core/services/notification · high confidence
Added settings repository implementation for configuration data
A new \SettingsRepositoryImpl\ class has been added to the configuration feature, implementing the \SettingsRepository\ interface. This implementation provides methods to retrieve and change user settings, including locale (language) and theme preferences, by delegating to local data sources. This enables the application to persist and manage user configuration choices.
lib/features/configuration/data/repositories · high confidence
Centralized app theme and styling constants
A new AppConstant class has been introduced to centralize application-wide styling and configuration. This includes default light and dark themes, a 'Polar Night' theme, and shared text styles, font families, and UI dimensions. Users will see consistent styling across the app, with support for multiple color schemes and a specific dark-mode aesthetic.
lib/core/constant · high confidence
Implement task and timer repository logic with local data sources
Added new repository implementations for task management and timer state persistence. The TaskRepositoryImpl now handles CRUD operations for tasks, including adding, retrieving by date, fetching all tasks, and retrieving uncompleted tasks, while also providing methods for daily goal tracking, analysis, and daily information. The TimerRepositoryImpl was introduced to manage saving and restoring Pomodoro session states and timer states, utilizing the respective local data sources for each.
_lib/features/task\management/data/repositories · medium confidence
Implemented local habit tracking repository
Added the domain interface and data-layer implementation for habit tracking, enabling users to add, edit, delete, complete, and retrieve habits stored locally via Isar.
_lib/features/habit\_tracking/data/repositories, lib/features/habit\tracking/domain/repositories · high confidence
Introduce Habit domain entity with UUID and status tracking
A new HabitEntity class has been added to the habit tracking feature, defining the core data model for habits. This entity includes fields for title, description, icon, color, and overviews, along with a unique identifier (id) and a UUID. It also tracks whether a habit is complete today via the isCompleteToday boolean. This change establishes the foundational data structure for habit tracking functionality.
_lib/features/habit\tracking/domain/entities · high confidence
Introduce TimerBloc for managing Pomodoro timer state and persistence
A new TimerBloc has been added to handle the lifecycle of the Pomodoro timer, including starting, pausing, resuming, and resetting the countdown. The implementation introduces events for task selection and deselection, allowing users to associate a timer with a specific task. It also adds states and logic for saving and restoring timer state, as well as saving completed Pomodoro sessions to the database. This centralizes the timer's behavior and UI state management within the task management feature.
_lib/features/task\_management/presentation/blocs/timer\bloc · high confidence
Introduce base BLoC for page index state management
A new base BLoC implementation has been added to handle page index changes. It defines a base event (PageIndexChanged) and state (PageChangeSuccess) to manage navigation state, allowing child BLoCs to inherit this behavior for consistent page index updates.
_lib/features/configuration/presentation/blocs/base\bloc · high confidence
Introduce domain entities for language and app settings
Added new domain entities to the configuration feature: LanguageEntity, which holds a title and language code, and SettingsEntity, which models user preferences for notifications, sound, vibration, app updates, tips, and ads. These entities provide the data structures used to represent and manage configuration state within the application.
lib/features/configuration/domain/entities · high confidence
Introduce domain entities for task management
Added new domain entities to support the task management feature: TaskEntity for core task data, PomodoroEntity for tracking pomodoro sessions, CategoryEntity for task categorization, DailyInformationEntity for daily progress metrics, and AnalysisEntity with YearlyAnalyzeItemEntity for analytical reporting. These entities form the domain layer's data model for the task management feature.
_lib/features/task\management/domain/entities · high confidence
Introduce habit tracking UI with add, edit, and delete capabilities
Users can now access the habit tracking feature, which includes a main list view displaying all habits and an add/edit form for creating or modifying habits. The new AddHabitPage allows users to input a title, description, color, and icon for each habit. The main HabitTrackingPage displays the list of habits and provides actions to add new habits, edit existing ones, or delete them, with the UI updating dynamically based on the state of the HabitTrackerBloc.
_lib/features/habit\tracking/presentation/pages · medium confidence
Introduce new app navigation, settings, and splash screen UI
The app now features a new bottom navigation bar with icons for Home, Tasks, Habit Tracking, Timer, and Settings, allowing users to switch between core sections of the app. A dedicated Settings page has been added, enabling users to toggle notifications, sound, and vibration, as well as change the app's language and theme. Additionally, a new splash screen with a rotating logo animation is displayed on app launch before transitioning to the main navigation.
lib/features/configuration/presentation/pages · high confidence
Introduce task and timer domain repositories
Added new domain-layer interfaces for task management and timer state. The TaskRepository defines methods for creating, retrieving, updating, and deleting tasks, as well as fetching daily and analysis data. The TimerRepository provides interfaces for saving and restoring timer state and recording pomodoro sessions. Both repositories use dartz Either for error handling, establishing the contract for data access in the task management feature.
_lib/features/task\management/domain/repositories · high confidence
Introduce task management BLoC for CRUD operations
Added the TasksBloc and its associated events and states to manage task lifecycle operations including adding, completing, deleting, editing, and filtering tasks. The implementation uses the dartz library to handle asynchronous results, providing loading, success, and failure states for each operation, enabling the UI to react to task management actions.
_lib/features/task\_management/presentation/blocs/tasks\bloc · high confidence
Introduce task management screens and timer interface
Adds new presentation pages for the task management feature, including a home page with daily goals and task lists, an analysis page with charts and heatmaps, and a timer page for managing pomodoro sessions. The update also introduces UI components for adding, editing, and filtering tasks, as well as widgets for the timer countdown and controls.
_lib/features/task\management/presentation/pages · high confidence
Introduces app-wide dependency injection and global state management
The application now uses a centralized dependency injection container (GetIt) to manage services, repositories, and BLoC instances, replacing the previous ad-hoc or hardcoded state management. This change ensures that all core services (audio, vibration, notifications, storage) and feature-specific use cases are properly wired and accessible throughout the app. Additionally, the app initializes global BLoC providers at startup, enabling consistent state handling across the UI.
lib · high confidence
Introduces domain usecases for task and timer state management
The task management feature now includes a comprehensive set of domain usecases that handle core operations such as adding, editing, completing, and deleting tasks, as well as retrieving task lists, daily information, and analysis data. Additionally, new usecases manage the persistence and restoration of timer state, enabling the application to save and restore the current timer configuration.
_lib/features/task\management/domain/usecases · high confidence
Introduces new parameter classes for core domain features
Added new parameter classes to the core resources layer to support habit management, task tracking, timer state, settings, and theming. Specifically, the diff introduces HabitParams and HabitOverviewParams for habit data, TaskParams for task details, TimerStateParams and TimerStateRestoreParams for managing timer states, ChangeSettingsParams for settings updates, and ThemeParams for theme selection. These classes serve as data transfer objects to facilitate communication between the UI and the domain layer.
lib/core/resources/params · high confidence
New data models for task management and analysis
Added new data models for the task management feature, including TaskModel, PomodoroModel, CategoryModel, DailyInformationModel, and AnalysisModel. These models provide serialization (toJson/fromJson) and database mapping (collectionToModel) for the respective domain entities, enabling the app to store and retrieve task, pomodoro, category, daily information, and analysis data.
_lib/features/task\management/data/models · high confidence
New habit item widget for tracking and managing habits
Users can now view individual habits with their associated color, icon, title, and description. Each habit card displays a heatmap of past completions and provides interactive buttons to mark a habit as done for the current day, edit the habit details, or delete the habit entirely.
_lib/features/habit\_tracking/presentation/shared\widgets · high confidence
New home screen widgets for task management
The home screen now displays a goal progress widget showing a circular progress indicator and task completion statistics, a task count widget displaying the number of remaining tasks, and a scrollable list of all tasks with an empty state and add button. These new widgets provide users with an overview of their daily goals and current task status on the home page.
_lib/features/task\_management/presentation/pages/home\widgets · high confidence
New local data sources for task and timer state persistence
The app introduces two new local data sources: TasksLocalDataSource and TimerLocalDataSource. TasksLocalDataSource handles CRUD operations for tasks, including fetching all tasks, uncompleted tasks, tasks by specific date, and analysis data. TimerLocalDataSource manages the persistence and restoration of timer states, including saving pomodoro records, restoring timer state from storage, and cleaning up state after completion or cancellation. These changes enable the app to persist task and timer data locally using the Drift database and file storage.
_lib/features/task\_management/data/data\sources · medium confidence
New notification item widget for consistent UI
A new NotificationItem widget has been added to the notification management feature. It displays a notification with an icon, title, and description, using the app's theme for text styles and a configurable color for the icon background. The layout is responsive, utilizing SizeConfig for dimensions, and includes a spaceW extension for spacing.
_lib/features/notification\management/presentation/widgets · high confidence
New shared UI components and base app bar
The app introduces a suite of reusable UI widgets in the shared\_widgets folder: a BaseAppBar with an animated fade-in and back-button logic, a GlobalButton for consistent action buttons, a GlobalIndicator for loading states, and a GlobalSnack helper for displaying toast messages. Additionally, a CustomFormField is added with password visibility toggling, numeric/rating input formatters, and length validation.
_lib/core/shared\widgets · high confidence
New task management UI components and timer controls
The task management feature now includes a suite of new presentation widgets: a daily goal dialog for setting targets, rich text display for task details, and list items for home and task management views. A new timer duration selector allows users to choose from preset intervals (1 to 120 minutes), and a timer task widget displays active task information. These components enable users to configure daily goals, view task details, and manage timer durations within the task management flow.
_lib/features/task\_management/presentation/shared\widgets · high confidence
New utility helpers for debugging, icon mapping, and time formatting
The app introduces several new utility classes in the core utilities layer to support upcoming features. A debug print helper is added to conditionally log messages during development. An icon converter maps string identifiers to Ionicons, and a ticker class provides a periodic stream for countdown timers. The main Utils class gains methods for formatting time (seconds to minutes/seconds, remaining time calculation, date formatting), generating unique IDs, checking if a date is today, and validating empty strings. These changes provide foundational tools for the UI and business logic layers.
lib/core/utils · high confidence
Project initialization and documentation updates
The repository was initialized with an MIT license file and a comprehensive README page featuring the app's title, feature list, and screenshots. Configuration files were added or updated: an l10n.yaml file was created to define localization paths, the .gitignore was updated to include .fvm/flutter\_sdk and other build artifacts, and the .metadata file was updated with new Flutter SDK revisions. Additionally, the analysis\_options.yaml was modified to enforce specific linting rules (always\_declare\_return\_types, prefer\_double\_quotes) and remove default lint inclusions.
(repo-wide) · high confidence
Behavioural changes
Add settings data model for configuration feature
A new SettingsModel class has been introduced in the configuration feature's data layer. This model extends the existing SettingsEntity and provides serialization logic (toJson/fromJson) to map between the domain entity and a JSON representation containing notification, sound, vibration, app updates, new tips, and ads settings.
lib/features/configuration/data/models · high confidence
Android package and Gradle configuration updates
The Android app's package name has been changed from 'im.mahmoud.pomodoro' to 'com.example.pomodore', requiring a corresponding update to the main activity class location and manifest declarations. Additionally, the project's Gradle wrapper has been upgraded from version 7.4 to 8.3, and the AndroidManifest.xml has been updated to include required queries for text processing and cleartext traffic permissions.
android · medium confidence
Centralized routing configuration for new feature pages
The application's navigation logic has been consolidated into a new central router (lib/core/router/router.dart). This change introduces explicit route mappings for the newly added Habit Tracking, Notification Management, Task Management (including Add, Edit, and Analysis pages), and Configuration (Splash and Base) pages, ensuring all deep links and internal navigations are handled through a single, centralized switch statement.
lib/core/router · high confidence
Introduce SettingsRepository interface for configuration management
A new abstract SettingsRepository interface has been added to the configuration feature's domain layer. This interface defines the core methods for managing application settings, including retrieving and updating general settings, as well as handling locale (language) and theme (appearance) configurations.
lib/features/configuration/domain/repositories · high confidence
Introduce local data source for habit tracking
The habit tracking feature now uses a new local data source that implements CRUD operations (create, read, update, delete) for habits, including completing habits, using a Drift-based database instead of the previous Isar implementation.
_lib/features/habit\_tracking/data/data\sources · medium confidence
Migrate local data persistence from Isar to Drift and secure storage
The app's local database has been replaced from Isar to Drift, introducing new tables for categories, daily goals, habits, habit trackers, pomodoros, and tasks, along with helper methods for CRUD operations. Additionally, a new secure storage service (FStorage) has been added to manage user preferences and timer state using FlutterSecureStorage.
lib/core/services/database · high confidence
Updated macOS Flutter plugin registration
The macOS Flutter engine now registers five additional native plugins: AudioplayersDarwin, AwesomeNotifications, FlutterSecureStorage, IsarFlutterLibs, and PathProvider. This enables audio playback, push notifications, secure local storage, local database operations, and file path resolution on macOS.
macos/Flutter · high confidence
Updated macOS app icon assets and window configuration
The macOS application now includes properly structured asset catalogs for 256px and 512px icons, with new Contents.json files defining the asset hierarchy. The app icon set has been updated to use specific filename references (e.g., app\_icon\_256-1.png) and explicit size attributes, ensuring correct icon rendering across all resolutions. Additionally, the main window configuration has been adjusted to hide the window on startup, changing the behavior from a custom frame with startup hiding to simply hiding on startup.
macos/Runner · medium confidence
iOS app renamed to 'Pomodore' and configured for background audio
The iOS application's display name and bundle name have been updated from 'Pomodoro' to 'Pomodore'. Additionally, the app's configuration has been updated to include the 'audio' background mode and enable arbitrary network loads, while also removing the deprecated 'UIViewControllerBasedStatusBarAppearance' setting.
ios · high confidence
macOS app bundle renamed to 'Pomodore.app' and deployment target updated
The macOS application bundle has been renamed from 'pomodoro.app' to 'Pomodore.app' across the Xcode project and scheme configurations. Additionally, the macOS deployment target has been raised from 10.11 to 10.14, and the Xcode project file format has been updated to version 54.
macos/Runner.xcodeproj · high confidence
Test coverage
Added model tests for task management data layer; Added tests for the Settings model; Added unit tests for core utility functions; Added unit tests for the HomeBloc; Added unit tests for the Settings BLoC; Added unit tests for the TasksBloc; Added unit tests for the TimerBloc; Updated test import to match app name change.
Dependencies
Upgrade to Flutter 3.19+ and modernize Android/iOS build configurations
The project has been upgraded to support Flutter 3.19+ (SDK \>=3.1.0), requiring a migration to the new Android Gradle plugin (AGP 8.1.0) and Kotlin 1.8.22. This includes updating \android/app/build.gradle\ to use the new plugin block syntax and namespace, and updating \android/settings.gradle\ to use the Flutter plugin loader. iOS and macOS minimum deployment targets have been raised to iOS 12.0 and macOS 10.14 respectively. Additionally, several new dependencies have been added, including \audioplayers\, \awesome\_notifications\, \drift\, and \flutter\_bloc\, while older packages like \is\ have been removed.
(dependencies) · high confidence
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
How this codebase got here
This is the PUBLIC form of this artifact. Findings are listed in full, but the details of SECURITY findings — which rule fired, in which file, on which line, and how to fix it — are deliberately withheld, and any secret-scanner results are excluded entirely. Where detail is absent here it was REMOVED FOR PUBLICATION; it is not missing from the analysis. The complete artifact is available from the repository owner.
Score
- CAI 56 → 61 (+5.6)
- Rubric changed (rubric-2026.08.19 → rubric-2026.09.15) — scores are not directly comparable.
Lenses
- Code Health 100 → 93 (-6.7)
- Architecture 92 → 89 (-3.4)
- Maturity 35 → 48 (+12.3)
- Readiness 57 → 55 (-1.8)
- Security 81 → 88 (+6.8)
- Domain Modelling 100 → 100 (+0.0)
Resolved (19)
- Change coupling: task_repository.dart ↔ tasks_bloc.dart (lib/features/task_management/domain/repositories/task_repository.dart)
- Change coupling: task_repository.dart ↔ tasks_state.dart (lib/features/task_management/domain/repositories/task_repository.dart)
- Change coupling: task_repository_impl.dart ↔ tasks_bloc.dart (lib/features/task_management/data/repositories/task_repository_impl.dart)
- Change coupling: tasks_local_data_source.dart ↔ task_repository.dart (lib/features/task_management/data/data_sources/tasks_local_data_source.dart)
- Change coupling: tasks_local_data_source.dart ↔ tasks_bloc.dart (lib/features/task_management/data/data_sources/tasks_local_data_source.dart)
- Change coupling: tasks_local_data_source.dart ↔ tasks_event.dart (lib/features/task_management/data/data_sources/tasks_local_data_source.dart)
- Change coupling: tasks_local_data_source.dart ↔ tasks_state.dart (lib/features/task_management/data/data_sources/tasks_local_data_source.dart)
- Change coupling: timer_repository_impl.dart ↔ timer_bloc.dart (lib/features/task_management/data/repositories/timer_repository_impl.dart)
- Coverage not included — suite not readable by the collector
- Dependency hygiene not measured — dependency manifest found but not parsed for hygiene
- High: security finding (details withheld)
- High: security finding (details withheld)
- High: security finding (details withheld)
- High: security finding (details withheld)
- High: security finding (details withheld)
- No exposed public API
- Test reliability not included
- complexity unreadable for .dart, .swift — churn × complexity hotspots could not be measured
- dormant codebase — no living knowledge left to concentrate
New (49)
- AddHabitView.build (cognitive 25) (lib/features/habit_tracking/presentation/pages/add_habit_page.dart)
- AddHabitView.build (cyclomatic 19) (lib/features/habit_tracking/presentation/pages/add_habit_page.dart)
- Change coupling: di.dart ↔ tasks_state.dart (lib/di.dart)
- Change-coupling hub: task_repository.dart → tasks_bloc.dart, tasks_event.dart, tasks_state.dart (lib/features/task_management/domain/repositories/task_repository.dart)
- Change-coupling hub: task_repository_impl.dart → tasks_bloc.dart, tasks_event.dart, tasks_state.dart (lib/features/task_management/data/repositories/task_repository_impl.dart)
- Change-coupling hub: tasks_local_data_source.dart → task_repository.dart, tasks_bloc.dart, tasks_event.dart, tasks_state.dart (lib/features/task_management/data/data_sources/tasks_local_data_source.dart)
- Dependency hygiene PARTLY measured — Maven/Gradle declarations read, no dependency graph resolved
- Documentation: no contributor guidance (README.md)
- Documentation: no installation or build instructions (README.md)
- Documentation: no usage examples (README.md)
- Duplicated block (10 lines × 3) (lib/features/task_management/data/repositories/task_repository_impl.dart)
- Duplicated block (12 lines × 2) (lib/features/configuration/presentation/widgets/change_language_bottom_sheet.dart)
- Duplicated block (12 lines × 2) (lib/features/task_management/presentation/pages/timer_page.dart)
- Duplicated block (14 lines × 2) (lib/features/habit_tracking/presentation/pages/add_habit_page.dart)
- Duplicated block (21 lines × 2) (lib/features/task_management/presentation/shared_widgets/home_task_item.dart)
- Duplicated block (26 lines × 3) (lib/features/task_management/presentation/pages/task_widgets/filter_tasks_widget.dart)
- Duplicated block (39–40 lines × 2) (lib/features/task_management/presentation/pages/add_task_page.dart)
- Duplicated block (50 lines × 2) (lib/features/task_management/presentation/pages/add_task_page.dart)
- Duplicated block (6 lines × 2) (lib/core/utils/utils.dart)
- Duplicated block (7 lines × 2) (lib/features/task_management/presentation/pages/add_category_page.dart)
- …and 29 more
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
Survey your own repository
time-mastery/pmodoro-application was measured the same way every project in this corpus was: the same rubric, at a pinned commit, with the result published in full. Point a surveyor at a repository you know and see whether you agree with it.
About this page
- The score is its most recent published measurement, taken on 21 September 2026 at a pinned commit. It is not a live figure and does not change until the project is measured again.
- Measured at commit fca9ffcfad7f2ac1a3d7afaaa67af77a49d9c729 — the exact code this score is about.
- Scored under rubric-2026.09.15 — the same rubric and the same method as every other entry in this index.
- Measured by watchdog.canine.dev using codehealth-analyzer preprod-fa71c66cabd8.