manuelzzz/to_do_list
46.7
Weak · 21 September 2026
2.6k
lines of production code
Dart
primary language
4
measurements over time
What this system is
This is a Flutter-based task management application that allows users to create, filter, and track daily, weekly, and monthly to-do items. The system integrates Firebase Authentication for user registration, login, and Google Sign-In, while using SQLite for local task persistence. It provides a complete user flow including authentication, task creation with date selection, and a home dashboard for managing and deleting tasks.
Features
Add new user registration page and controller
Users can now create a new account via a dedicated Register page. This change introduces the RegisterPage UI component and the corresponding RegisterController, which handles the registration flow by validating email and password inputs and invoking the UserService to complete the registration.
lib/app/modules/auth/register · medium confidence
Add password confirmation validation
A new Validators class is introduced in the core validators module, providing a static compare method for form field validation. This method compares a user-provided value against a reference value (typically for password confirmation), returning a specific error message if the values do not match, or null if they do.
lib/app/core/validators · high confidence
Add task creation page with date selection
Users can now create new tasks by providing a description and selecting a date. This change introduces a new task creation flow, including a dedicated page (task\_create\_page.dart) with a form for the task description and a calendar button (calendar\_button.dart) for date selection. The controller (task\_create\_controller.dart) manages the selected date and handles the save logic, while the module (task\_module.dart) wires up the repository, service, and controller dependencies.
lib/app/modules/tasks · high confidence
Implemented login, Google authentication, and password recovery on the login page
The login page now supports full authentication flows. Users can log in with email and password, authenticate via Google, or request a password reset. The login controller was expanded to handle these three distinct actions, including error handling for invalid credentials and network exceptions, while the UI integrates form validation and status notifications.
lib/app/modules/auth/login · high confidence
Implemented task repository for saving, filtering, and managing tasks
Added the TasksRepository interface and its SQLite-backed implementation, enabling users to save new tasks, retrieve them by date range, toggle completion status, and delete or clear all tasks.
lib/app/repositories/tasks · high confidence
Initialize Firebase in the app entry point
The application now initializes the Firebase SDK at startup. A new \firebase\_options.dart\ file was generated by the FlutterFire CLI to provide platform-specific configuration, and \main.dart\ was updated to call \Firebase.initializeApp\ before running the app, ensuring Firebase services are ready for use.
lib · high confidence
Introduce AuthProvider for centralized authentication state management
A new AuthProvider class has been added to manage authentication state within the app. This provider integrates with Firebase Authentication and a UserService to handle user sessions. It exposes the current user and provides a logout method. Additionally, it sets up listeners to monitor authentication state changes, automatically navigating users to the home screen upon login or to the login screen upon logout.
lib/app/core/auth · high confidence
Introduce TasksService for task management operations
A new TasksService interface and its implementation are added to the application, providing methods to save, retrieve (by day, tomorrow, or week), check/uncheck, delete, and clear tasks. This introduces the service layer that delegates to the TasksRepository, enabling the application to manage task data through a consistent API.
lib/app/services/tasks · high confidence
Introduce home page with task filtering and management
The home module now provides a complete home page interface for managing tasks. Users can view task counts for today, tomorrow, and the current week, and filter their task list by day or date range. The controller handles loading task data, filtering by status (showing/hiding finished tasks), and performing actions like checking off tasks, deleting them, or clearing the entire table. The UI includes a header with task counts, filter buttons, a weekly filter, and a floating action button to create new tasks.
lib/app/modules/home · high confidence
Introduce user authentication and account management services
Added the user service layer to handle core account operations. The new UserService interface and UserServiceImpl provide methods for registering, logging in, and logging out, as well as managing account state with forgot password, Google login, and changing the username.
lib/app/services/user · high confidence
Introduce user authentication repository with email/password, Google Sign-In, and password reset
Added a new user repository interface and implementation that handles email/password registration and login, Google Sign-In integration, password reset functionality, user logout, and username updates. The implementation leverages Firebase Authentication and Google Sign-In to manage user sessions and credentials, providing a unified layer for all user authentication and profile management operations.
lib/app/repositories/user · high confidence
New TodoListField and TodoListLogo widgets
Added two new core UI components: a reusable TodoListField widget that provides a styled text input with optional password visibility toggling and validation, and a TodoListLogo widget that displays the application logo and title. These widgets introduce new visual elements and input handling capabilities to the app's core widget library.
lib/app/core/widget · high confidence
New home page widgets for task management and navigation
The home page now includes a set of new UI components that enable users to view and manage their tasks. Users can filter tasks by today, tomorrow, or week, with a visual progress indicator showing completion status. A confirmation dialog is provided for deleting tasks, and the home header greets the user by name. Additionally, a drawer allows users to change their display name and log out.
lib/app/modules/home/widgets · high confidence
Behavioural changes
Add AuthException class for authentication errors
A new AuthException class has been introduced in the exceptions module to handle authentication-related errors. This provides a dedicated exception type for signaling authentication failures within the application.
lib/app/exceptions · high confidence
Add TodoList navigator with global key
A new TodoListNavigator class has been introduced in the core navigation layer, providing a global NavigatorState key. This allows the application to perform navigation actions (such as pushing or popping routes) without requiring a BuildContext, enabling navigation from anywhere in the app.
lib/app/core/navigator · medium confidence
Add route resolution for TodoListModule and modernize TodoListPage constructor
The TodoListModule now exposes a getPage method that resolves routes by path, returning a TodoListPage with the appropriate bindings. The TodoListPage widget has been updated to use the modern Flutter constructor syntax (super.key) and no longer explicitly passes the key to the superclass.
lib/app/core/modules · medium confidence
Added core UI infrastructure and theming
The application now includes a centralized UI configuration that defines the primary color palette and button styles, alongside a custom icon set for the todo list interface. A new messages utility has been introduced to standardize how the app displays success and error notifications to users. Additionally, theme extensions have been added to simplify access to the app's color and text styles throughout the interface.
lib/app/core/ui · high confidence
Added user registration capability to the authentication module
The authentication module now supports user registration. A new RegisterController and RegisterPage have been added and registered with the dependency injection system, and the routing configuration now includes a '/register' path that renders the new registration page.
lib/app/modules/auth · high confidence
Fix SQLite foreign key enforcement and app lifecycle handling
The database connection factory now correctly enables foreign key constraints by using the valid SQL syntax \PRAGMA foreign\_keys = ON\ instead of the previous invalid \-\ operator. Additionally, the \SqliteAdmConnection\ class now ignores the \AppLifecycleState.hidden\ state, ensuring consistent database connection behavior when the application is hidden.
lib/app/core/database · high confidence
Integrate Firebase Auth and add Home/Task modules
The app module now registers Firebase Auth, user repository, user service, and auth provider as dependencies, enabling authentication flows. The app widget configures localization delegates and supported locales (Portuguese-Brazil), sets a custom UI theme, and registers routes for Home and Task modules alongside existing auth and splash screens.
lib/app · medium confidence
Introduce task data models and filter enum
Added new model classes to support task management: TaskModel for representing individual tasks with properties like id, description, dateTime, and finished status, including a factory method for database loading and a copyWith method for immutability; TaskFilterEnum with an extension providing Portuguese descriptions for today, tomorrow, and week filters; TotalTasksModel to track total and finished task counts; and WeekTaskModel to group tasks within a date range. These models enable filtering tasks by time period and managing task states.
lib/app/models · high confidence
Introduces a listener-based notification pattern for TodoList state management
Adds TodoListChangeNotifier to encapsulate loading, error, and success states for the todo list, and introduces TodoListListenerNotifier to manage the lifecycle of listeners attached to it. The listener automatically triggers UI feedback (showing/hiding a loader, displaying error or success messages) and supports an optional 'ever callback' that is invoked on every state change, providing a consistent way to handle asynchronous todo list operations.
lib/app/core/notifier · medium confidence
Project renamed and documentation updated
The project has been renamed from 'todo\_list' to 'To-do list' (reflected in the README title and content). The README has been significantly updated with installation instructions, app information, and contributing guidelines. Additionally, a LICENSE file (MIT) and devtools\_options.yaml have been added to the repository.
(repo-wide) · high confidence
Splash screen now displays the app logo
The splash page has been updated to display the TodoList logo instead of a login button. The page no longer includes an AppBar or a button to navigate to the login screen, focusing solely on the brand identity at startup.
lib/app/modules/splash · high confidence
Updated Android package name and app label
The Android application's package name has been changed from 'br.com.academiadoflutter.todo\_list' to 'com.example.to\_do\_list', and the app label has been updated to 'to\_do\_list'. This affects how the app is identified and launched on Android devices.
android · high confidence
iOS app renamed and test suite added
The iOS application's display name and bundle name have been updated from 'Todo List'/'todo\_list' to 'To Do List'/'to\_do\_list'. Additionally, a new unit test target (RunnerTests) has been integrated into the Xcode project, including the necessary build phases, target dependencies, and scheme configurations to support running tests.
ios · high confidence
Dependencies
Updated Android build configuration and added new dependencies
The Android build system was migrated to the new Gradle plugin management syntax, with the application ID and namespace updated to 'com.example.to\_do\_list' and multi-Dex enabled. Additionally, the project added several new dependencies including Firebase (firebase\_core, firebase\_auth), Google Sign-In, date picker, and other UI packages, while also updating existing dependencies like cupertino\_icons and provider.
(dependencies) · medium 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
Score
- CAI 46 → 47 (+0.7)
- Rubric changed (rubric-2026.08.19 → rubric-2026.09.15) — scores are not directly comparable.
Lenses
- Code Health 100 → 98 (-1.9)
- Architecture 100 → 94 (-5.8)
- Maturity 31 → 46 (+15.1)
- Readiness 24 → 17 (-7.0)
- Security 90 → 95 (+5.0)
- Domain Modelling 100 → 100 (+0.0)
Resolved (8)
- Coverage not included — suite not readable by the collector
- Dependency hygiene not measured — dependency manifest found but not parsed for hygiene
- No exposed public API
- Secret: gcp-api-key (lib/firebase_options.dart)
- Secret: gcp-api-key (lib/firebase_options.dart)
- Test reliability not included
- complexity unreadable for .dart, .kt, .swift — churn × complexity hotspots could not be measured
- dormant codebase — no living knowledge left to concentrate
New (12)
- Dependency hygiene PARTLY measured — Maven/Gradle declarations read, no dependency graph resolved
- Documentation: no contributor guidance (README.md)
- Documentation: no usage examples (README.md)
- Duplicated block (23 lines × 2) (lib/app/modules/auth/login/login_page.dart)
- Duplicated block (9 lines × 2) (lib/app/core/database/migrations/migration_v2.dart)
- Leaked secret: gcp-api-key (lib/firebase_options.dart)
- Leaked secret: high-entropy-secret (lib/firebase_options.dart)
- Low cohesion: SqliteConnectionFactory (LCOM4 4) (lib/app/core/database/sqlite_connection_factory.dart)
- MethodTooLong: _LoginPageState.build (lib/app/modules/auth/login/login_page.dart)
- No ADRs found
- Secret: gcp-api-key (lib/firebase_options.dart)
- Secret: gcp-api-key (lib/firebase_options.dart)
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
Survey your own repository
manuelzzz/to_do_list 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 59ad286a3e1713a91f6dd509ca0330d60d5dd709 — 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.