burhanrashid52/WhatTodo
58.6
Adequate · 19 September 2026
2.8k
lines of production code
Dart
primary language
1
measurement over time
What this system is
WhatTodo is a cross-platform task management application built with Flutter that supports Android, iOS, and macOS. It provides core productivity features including the creation and organization of tasks, projects, and color-coded labels, with data persisted locally via SQLite. The system employs the BLoC pattern for state management and includes automated deployment pipelines for both Google Play and TestFlight.
How it got here
2018 — Initial project scaffolding and core feature implementation
17 changes.
This period established the foundational structure of the WhatTodo Flutter application, including platform-specific configurations for Android and iOS. It introduced the core BLoC-based state management architecture and implemented essential features such as task, project, and label management with local SQLite persistence.
2020–2024 — multi-platform expansion and CI automation
6 changes.
The project expanded its reach by adding native macOS desktop support and automating release pipelines for both iOS and Android using Fastlane. Concurrently, comprehensive testing infrastructure was established, including unit, widget, and integration tests to ensure reliability across core components and screens.
Features
Add Project feature with color-coded project management
Users can now create new projects with a custom name and a color-coded label via the Add Project screen. The application manages project data using a local SQLite database, exposing project lists and color selection state through a BLoC pattern. These projects are displayed in an expandable tile within the side drawer, allowing users to filter their view by selecting a specific project.
lib/pages/projects · high confidence
Add and manage labels with color coding and duplicate prevention
Users can now create new labels with a name and a specific color from a collapsible palette in the Add Label screen. The system prevents creating duplicate labels by checking for existing names before saving. Labels are displayed in an expandable section within the side drawer, where tapping a label applies a filter to the task list, and a dedicated 'Add Label' option allows users to open the creation form.
lib/pages/labels · high confidence
Add macOS desktop support
The application now runs on macOS. This change adds the complete macOS platform directory, including the Xcode project, build configurations, and native Swift entry points (AppDelegate, MainFlutterWindow). It registers Flutter plugins for package info, path provider, SQLite, and URL launching, and configures the app bundle as "WhatTodo" with the identifier "--platformsmacos.whatTodo".
macos · high confidence
Added SQLite database layer for tasks, projects, and labels
Introduced a new singleton database class (AppDatabase) in lib/db that initializes a local SQLite database containing tables for projects, tasks, and labels. This change adds the underlying persistence logic for the application's core data models, including schema creation and initial data seeding (e.g., an 'Inbox' project).
lib/db · high confidence
Added iOS Fastlane automation for TestFlight distribution
Added Fastlane configuration files (Appfile, Fastfile, Matchfile) to automate the iOS beta release process. The new \beta\ lane handles code signing via Match (using a dedicated Git repository for keys), increments the build number, sets the version number from the Flutter build name, builds the app, and uploads the beta to TestFlight using a stored API key.
ios/fastlane · high confidence
Android app initialization and configuration for Flutter v2 embedding
The Android app module has been initialized with the necessary configuration files to support the Flutter v2 embedding. This includes setting the package name to 'ja.burhanrashid52.whattodo', defining the main activity as a FlutterFragmentActivity, and configuring the AndroidManifest.xml with required internet permissions, intent queries for HTTPS and mailto schemes, and setting the main activity as exported (required for Android 12+). A basic white splash screen and launch theme have also been added.
android/app · high confidence
Automated Android deployment to Google Play via Fastlane
Added Fastlane configuration (Appfile, Fastfile, and documentation) to the Android build pipeline, enabling automated release builds and uploads to the Google Play Store internal track. The setup reads version metadata from Flutter environment variables and packages the release APK for upload.
android/fastlane · high confidence
Initial app shell with adaptive home layout
The application now initializes with a main entry point that sets up a Material theme and provides a HomeBloc for state management. The home screen is adaptive: on wider screens, it displays a side drawer alongside a content area that switches between views (Home, About, Add Task, Completed Tasks, Add Project, Add Label) based on the current screen state, while narrower screens show a standard single-page home view.
lib · high confidence
Initial iOS project scaffolding for WhatTodo
The iOS application structure has been established with the standard Flutter Runner configuration. This includes the app delegate implementations for both Objective-C and Swift, the main entry point, and the bridging header required for plugin integration. The app bundle is configured with the name 'WhatTodo', and the Info.plist sets the short version string to the Flutter build name and the build number to the Flutter build number. Visual assets are provided, including a complete set of app icons for iPhone and iPad, a launch screen storyboard, and the necessary asset catalogs.
ios/Runner · high confidence
Initial iOS project structure and build configuration
The iOS build system is now established with the standard Xcode project and workspace files required to compile and run the application. This includes the project configuration (project.pbxproj) defining the Runner target, source files, and resources, as well as the workspace setup (contents.xcworkspacedata) that links the project with the CocoaPods dependencies (Pods.xcodeproj). Additionally, build schemes and workspace settings are configured to enable building, testing, and launching the app in Xcode.
ios/Runner.xcodeproj · high confidence
Initial project setup and documentation
This change establishes the foundational structure of the 'WhatTodo' Flutter application. It introduces standard project configuration files, including a \.gitignore\ tailored for Flutter/Dart development and a \.metadata\ file tracking the Flutter beta channel (revision 3ea4d06). The entry also adds essential community documentation: a \CODE\_OF\_CONDUCT.md\ based on the Contributor Covenant, a \CONTRIBUTING.md\ guide for fork-and-pull-request workflows, and a comprehensive \README.md\ detailing the app's BLoC architecture, features (projects, labels, tasks, offline support via Sqflite), and usage instructions. Additionally, a \shorebird.yaml\ file is added to configure the Shorebird over-the-air update service with a specific app ID.
(repo-wide) · high confidence
Introduction of Home screen with adaptive navigation and side drawer
The home screen now features a new layout that adapts to screen width: on wider screens, the navigation drawer is hidden, while on smaller screens, it is accessible via a leading menu icon. The side drawer allows users to filter tasks by project, label, or time-based views (Inbox, Today, Next 7 Days) and provides navigation to the About screen. The main body displays tasks using a dedicated TasksPage widget, and a floating action button enables adding new tasks. A popup menu in the app bar provides access to completed tasks. The home bloc manages title updates and filter streams, coordinating with the task bloc to update the displayed task list based on user selections.
lib/pages/home · high confidence
Introduction of custom BlocProvider for state management
The application now includes a custom BlocProvider widget in the lib/bloc directory, enabling the injection of BlocBase instances into the widget tree. This provider allows child widgets to access the associated bloc instance via a static of method, facilitating a state management pattern where business logic is separated from UI components.
lib/bloc · high confidence
Introduction of utility libraries and custom UI components
The application now includes a set of new utility files in the lib/utils directory to support core functionality and UI consistency. This includes a custom CollapsibleExpansionTile widget for handling expandable lists, helper utilities for launching URLs and displaying snackbars, and constants for padding, font sizes, and social links. Additionally, new files define data models for task priorities, color palettes for visual theming, date formatting helpers, and a collection of static keys for internationalization and widget identification.
lib/utils · high confidence
New About screen with version info and social links
The app now includes an About screen that displays the current application version (retrieved via package\_info\_plus), provides direct links to report issues and view the project on GitHub, lists the author's contact details, and includes social media buttons for Twitter and Facebook.
lib/pages/about · high confidence
Task management UI and data layer
The app now includes a dedicated interface for creating new tasks, allowing users to set a title, assign a project, choose a due date, select a priority level, and attach labels. Completed tasks are displayed on a separate screen where they can be restored to pending status via a swipe gesture. The main task list supports swipe actions to either mark a task as complete or delete it, with visual feedback provided by colored backgrounds and snackbar notifications. These changes are backed by a new data layer that handles task storage, status updates, and relationships with projects and labels.
lib/pages/tasks · high confidence
Behavioural changes
Added iOS Flutter framework configuration files
The iOS build configuration now includes the AppFrameworkInfo.plist, Debug.xcconfig, and Release.xcconfig files. These additions establish the Flutter app framework metadata, set the minimum iOS deployment target to 12.0, and configure the build system to include necessary CocoaPods and generated configuration files for both debug and release modes.
ios/Flutter · high confidence
Introduction of BLoC pattern for task management and creation
The task management UI logic has been refactored to use the BLoC (Business Logic Component) pattern, introducing two new state management classes: \TaskBloc\ and \AddTaskBloc\. \TaskBloc\ now handles the retrieval, filtering (by today, next week, project, label, or status), updating, and deletion of tasks, exposing them via streams to the UI. \AddTaskBloc\ manages the state for creating new tasks, including selecting projects, labels, priority, and due dates, and orchestrating the task creation process. This change separates business logic from the presentation layer, improving testability and maintainability of the task features.
lib/pages/tasks/bloc · high confidence
Test coverage
Added integration test driver entry point; Added integration tests for core app screens; Added unit and widget tests for core app components.
Dependencies
Updated Gradle wrapper to version 7.5
The Android build system now uses Gradle 7.5 via the wrapper configuration. This ensures consistent build environments across development and CI by pinning the specific Gradle distribution version.
android/gradle · high confidence
Housekeeping
Added iOS build configuration and ignore rules
The iOS directory now includes a .gitignore file to exclude build artifacts, IDE settings, and generated Flutter files from version control, and an exportOptions.plist file configured for App Store Connect distribution using specific provisioning profiles.
ios · 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
Baseline
- First survey — no prior run to compare against. CAI 59.
Lenses
- Code Health 96
- Architecture 100
- Maturity 48
- Readiness 50
- Security 72
- Domain Modelling 100
Changes since last survey
- 219 commits — 204 feature/other, 15 fixes
By area
- lib/pages — 68 commits
- (root) — 40 commits
- .github/workflows — 20 commits
- android/app — 15 commits
- (repo) — 12 commits
- ios/Runner — 7 commits
- ios/fastlane — 6 commits
- android/fastlane — 5 commits
- lib/db — 5 commits
- lib/models — 4 commits
- ios/Gemfile.lock — 3 commits
- lib/chat_screen.dart — 3 commits
- macos/Runner — 3 commits
- integration_test/completed_tasks_page_test.dart — 2 commits
- ios/Flutter — 2 commits
- ios/Runner.xcodeproj — 2 commits
- lib/home.dart — 2 commits
- lib/main.dart — 2 commits
- lib/taskpages — 2 commits
- android/build.gradle — 1 commit
Notable commits
- fix: App name fix to WhatTodo
- fix: Clip dismissible and fix swipe icon alignment
- fix: Dart fix
- fix: Fastlane ios path fix
- fix: Fix Drawer and popup icon
- fix: Fix clean db issue in tests
- fix: Fix workflow version
- fix: Fixed Type #5
- fix: Iphone and ipad icon fix
- fix: Package name fix in MainActivity
- fix: Podfile fix iOS
- fix: Remove web and fixed ios arch issue
- fix: Url launch error fixed.
- fix: [#17] CR Fixes and run_all script
- fix: fix migration
- change: #16 Migrated to AndroidX
- change: #17 Adding Integration Test for home screen
- change: About Page
- change: Adaptive Add Label page
- change: Adaptive Add project page
- …and 199 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
burhanrashid52/WhatTodo 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 19 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 db6ba701a4b71cf15ee6c53646c05cbff247863f — 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-13a154b7f5d1.