Bit-Camp-IO/E-Fashion_Flutter
55.0
Adequate · 21 September 2026
20k
lines of production code
Dart
primary language
4
measurements over time
What this system is
This is a cross-platform Flutter application for an e-fashion store, structured using clean architecture. It provides features for user authentication, product browsing and search, shopping cart management, and real-time chat support. The system integrates with external services for payments, location, and notifications, while managing local state and theme preferences.
Features
Add Linux support for Smart Auth plugin
The Linux platform implementation now includes the Smart Auth plugin alongside the existing File Selector plugin. This enables authentication features on Linux devices, ensuring feature parity with other supported platforms.
linux · high confidence
Add product search use case
A new SearchForProductsUseCase has been added to the domain layer, providing a structured way to search for products by query, page number, categories, brands, and price range. This use case acts as an intermediary between the UI and the product repository, encapsulating the search logic and returning a list of products or a failure.
lib/components/productComponent/domain/usecases/search · high confidence
Added chat support component with real-time messaging
Introduced a new chat support feature allowing users to create or join chat sessions, send and receive messages in real time via WebSocket, and retrieve message history. The implementation includes a domain layer with entities and use cases (CreateOrJoinChat, SendMessage, GetChatMessages, GetChatStream, CloseSocketConnection), a repository layer, and a remote data source that handles HTTP and Socket.IO connections.
lib/components/chatSupportComponent · high confidence
Added data layer for the Collection feature
The application now includes the complete data and domain layers for the Collection feature. This introduces domain entities for collections and collection items, along with a repository interface and implementation that fetches data from a remote API. The implementation uses a remote data source to retrieve collection lists and individual item details, supporting the new collection browsing capability.
lib/components/collectionComponent · high confidence
Added domain layer for authentication and password management
The auth component's domain layer now includes a new Tokens entity and an AuthRepository interface defining methods for login, signup, and password management (forget, verify OTP, reset, and change password). Corresponding use cases (UserLoginUseCase, UserSignUpUseCase, ForgetPasswordUseCase, VerifyOtpUseCase, ResetPasswordUseCase, ChangePasswordUseCase, GetUserAccessTokenUseCase, CheckIfTokensExistUseCase, and DeleteTokensUseCase) have been added to handle these operations, enabling the application to manage user authentication state and password-related workflows.
lib/components/authComponent/domain · high confidence
Added domain layer for map component with place and location use cases
Introduced the domain layer for the map component, including \Place\ and \PlaceData\ entities, a \MapRepository\ interface, and four new use cases: \GetPlacesSuggestionsUseCase\, \GetPlaceLatitudeAndLongitudeUseCase\, \GetUserLocationUseCase\, and \UpdateUserLocationUseCase\. These changes establish the internal logic and repository contracts for retrieving place suggestions, fetching latitude/longitude for specific places, and managing user location updates.
lib/components/mapComponent/domain · high confidence
Added domain use cases for managing favorite products
New use cases have been introduced to handle favorite product operations, including adding, removing, and retrieving products from a user's favorites list. These changes enable the application to interact with the product repository to manage favorite states, supporting features like viewing and modifying a user's saved items.
lib/components/productComponent/domain/usecases/favorite · high confidence
Added map data layer for location services
Introduced the data layer for the map component, including a MapDataSource that interfaces with Google Maps and the app's API to fetch place suggestions, retrieve latitude/longitude for places, and manage the user's current location. The implementation includes data models (PlaceModel, PlaceDataModel) and a MapRepositoryImpl that handles API calls and error mapping, enabling the application to interact with map-related backend services.
lib/components/mapComponent/data · high confidence
Added splash screen styling and script to web app
The web application now includes an embedded CSS style block and a JavaScript function to manage a splash screen. The CSS defines layout and positioning for the splash screen elements, while the JavaScript function removes the splash screen and its branding once the app is ready to display. This improves the initial loading experience by providing a branded placeholder before the main content loads.
web · high confidence
Adds account management features including password change, profile editing, and chat support
The account section now includes a Change Password flow with dedicated Cubit and state management, allowing users to update their credentials securely. Users can also edit their profile information and update their profile picture. Additionally, a new Chat Support feature has been implemented, enabling real-time messaging with support agents, complete with message history and typing indicators. The account menu has been updated to include navigation to these new screens.
lib/presentation · high confidence
Centralized API and application constants
Added lib/shared/constants/api\_constants.dart and lib/shared/constants/app\_constants.dart to centralize API endpoints, header configurations, and application-level settings such as cache duration, token expiration, and user gender IDs.
lib/shared/constants · high confidence
Centralized app configuration and validation utilities
The application now uses dedicated manager classes to centralize shared resources and logic. Assets, colors, and string resources are consolidated into \AssetsManager\, \ColorsManager\, and \StringsManager\ respectively. Additionally, \ValidationManager\ provides reusable validators for email, phone, and password fields, while \SizeManager\ handles screen dimension calculations. These utilities support the app's UI and form handling across the shared layer.
lib/shared/util · high confidence
Implemented local and remote data sources for authentication
Added new data layer components for the auth component, including local and remote data sources, a tokens model, and a repository implementation. This enables the app to handle user login, sign-up, password reset, and token management via the API and local storage.
lib/components/authComponent/data · high confidence
Initial release of E-Fashion Flutter app with clean architecture and full feature set
The repository is initialized with a complete Flutter application for an e-fashion store, structured using clean architecture by component. The app includes features for authentication, dynamic home, product search, favorites, shopping cart, and user profile management. It integrates Stripe for payments, Google Maps for location services, WebSockets for real-time chat, and Firebase for push notifications. The project also includes a LICENSE file (Apache 2.0) and updated documentation.
(repo-wide) · high confidence
Introduce backend integration for app notifications
The notifications component now includes the full data and domain layers required to fetch and manage push notifications. This adds a data source and repository that communicate with the backend to retrieve the notification list, as well as to subscribe and unsubscribe from notifications using a device token. Users will be able to receive and manage in-app notifications through this new infrastructure.
lib/components/notificationsComponent · high confidence
Introduce user profile and theme management capabilities
Added a complete implementation for managing user profile data and application theme settings. This includes domain entities for User and AppTheme, use cases for retrieving and updating user information (full name, phone, email, profile picture) and theme preferences, repository implementations that bridge local (Hive) and remote (API) data sources, and corresponding data models and data sources for both local and remote storage.
lib/components/userComponent · high confidence
New cart and order management capabilities
The cart component now includes a complete implementation for managing the user's shopping cart and order history. Users can add, remove, and update product quantities in their cart, retrieve their current cart state, and view a list of past orders. Additionally, the system supports creating payment intents for checkout, enabling the purchase flow to proceed.
lib/components/cartComponent · high confidence
New product component with remote data source and repository
Added a new product component that introduces a remote data source and repository for fetching and managing product data. This includes domain entities for products, categories, brands, and reviews, along with their corresponding data models and a remote data source implementation that communicates with the API. The repository layer wraps these calls, providing a clean interface for the rest of the application to retrieve product details, manage favorites, and handle reviews.
lib/components/productComponent · high confidence
New product domain use cases for home and product details
The home and product detail flows now have dedicated domain use cases to handle data retrieval and submission. New use cases have been added to fetch brands, categories, and product listings (including offers and brand-specific products), as well as to retrieve product details, reviews, and ratings. Additionally, a new use case allows users to add or edit product reviews and ratings.
lib/components/productComponent/domain/usecases/home · high confidence
Windows platform adds Firebase, permission, and authentication plugins
The Windows build now registers the Firebase Core, Permission Handler, and Smart Auth plugins, enabling push notification, permission management, and authentication capabilities on Windows.
windows · high confidence
Removals
Removal of Home feature scaffolding
The Home feature's presentation layer has been removed, including the HomeScreen widget and the associated BLoC implementation (HomeBloc, HomeEvent, and HomeState). Additionally, empty directory placeholders (.gitkeep) in the data and domain layers have been deleted, indicating a cleanup of the Home feature's initial setup.
lib/features/home · high confidence
Removal of legacy cart feature implementation
The legacy cart feature has been removed from the codebase. This includes the deletion of placeholder files (\.gitkeep\) across the data, domain, and presentation layers, as well as the removal of the \CartCubit\, \CartState\, and the \CartScreen\ UI component. This cleanup eliminates the previous state management and screen structure for the cart, likely as part of a broader refactoring or migration to a new architecture.
lib/features/cart · high confidence
Removed placeholder scaffolding for Account and Favorite features
The placeholder files for the Account and Favorite features have been removed. This includes the empty directory keepers, the initial Cubit and State classes, and the basic Screen widgets. These were likely temporary scaffolding files that are no longer needed or have been replaced by more complete implementations.
lib/features/account · high confidence
Behavioural changes
Added macOS configuration and plugin registrations for Firebase and local notifications
The macOS build now includes GoogleService-Info.plist and firebase\_app\_id.json, which configure Firebase services (Analytics, Core, Messaging) and local notifications. The GeneratedPluginRegistrant.swift file has been updated to register plugins for Firebase Analytics, Firebase Core, Firebase Messaging, Flutter Local Notifications, Path Provider, Smart Auth, and Sqflite, enabling these capabilities on macOS.
macos · high confidence
Android app configuration and UI theme updates
The Android app manifest was updated to include location permissions (COARSE and FINE) and Firebase messaging metadata, while the main activity was migrated from FlutterActivity to FlutterFragmentActivity. Additionally, the app's launch and normal themes were updated to use AppCompat and Material Components parent styles, and the launch background was changed to use the app's icon background color.
android · medium confidence
App navigation and theming restructured
The app's navigation is now managed by a new \app\_router.dart\ file that defines the complete route tree for authentication, home, product, cart, and account screens. Additionally, theming has been refactored to use explicit light and dark \ColorScheme\ definitions in \color\_scheme.dart\, which are applied to the \ThemeManager\ to standardize colors across the app and Stripe payment sheets.
lib/core/router · high confidence
Refactored API layer and app initialization to support authenticated requests and background tasks
The API layer has been restructured to support authenticated HTTP requests. A new \AuthenticatedInterceptor\ automatically injects user access tokens into headers, while the \DioApiConsumer\ now accepts optional headers and supports the PATCH method. The app's \main\ entry point now initializes background services, including Firebase messaging for push notifications and Hive local storage, before the app runs. Additionally, the core API and error handling classes have been moved to the \shared\ directory, and the app widget now wraps the root in \MultiBlocProvider\ to manage theme, token, and notification states.
lib · high confidence
Removal of centralized utility managers
The centralized managers for assets, colors, and strings have been removed from the codebase. Specifically, the \AssetsManager\, \ColorsManager\, and \StringsManager\ classes and their associated static constants have been deleted. This change eliminates the single source of truth for font families, primary colors, and tab labels, requiring these values to be managed or referenced differently in the application.
lib/core/util · high confidence
Removed empty placeholder files from the auth feature
The auth feature's directory structure was cleaned up by deleting empty placeholder files (\.gitkeep\) in the data, domain, and presentation layers. Additionally, the initial \AuthCubit\, its associated \AuthState\ definitions, and a basic \SplashScreen\ widget were removed, indicating a cleanup of initial scaffolding or unused boilerplate code.
lib/features/auth · medium confidence
Removed legacy AutoRouter configuration
The \app\_router.dart\ file and its generated counterpart \app\_router.gr.dart\ have been deleted. This removes the previous AutoRouter-based navigation setup, which previously defined routes for the splash, authentication, home, cart, favorite, and account screens. Users will no longer navigate via this specific routing configuration, indicating a shift to a different navigation implementation.
lib/config · high confidence
iOS app launch screen and configuration updates
The iOS build configuration has been updated to support a new launch screen background image, with the \LaunchScreen.storyboard\ modified to include a background view and new constraints. Additionally, the \Info.plist\ has been updated to include a \UIStatusBarHidden\ key, and a \firebase\_app\_id\_file.json\ for Firebase configuration has been added to the iOS directory.
ios · medium confidence
Dependencies
Android build configuration and Flutter dependencies updated
The Android build configuration was updated to compileSdkVersion 34 and targetSdkVersion 34, with minSdkVersion set to 21 and multiDex enabled. Google Services and Firebase BOM 32.3.1 were added to the Android Gradle files. In the Flutter project, multiple packages were upgraded or added, including auto\_route to 7.8.4, dio to 5.4.0, and flutter\_lints to 3.0.1, while new dependencies such as cached\_network\_image, carousel\_slider, and firebase\_core were introduced.
(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
Score
- CAI 46 → 55 (+8.6)
- Rubric changed (rubric-2026.08.19 → rubric-2026.09.15) — scores are not directly comparable.
Lenses
- Code Health 100 → 93 (-6.7)
- Architecture 98 → 95 (-3.5)
- Maturity 35 → 47 (+12.4)
- Readiness 24 → 36 (+11.7)
- Security 87 → 91 (+4.5)
- Domain Modelling 100 → 100 (+0.0)
Resolved (9)
- Change coupling clique: offers_card.dart, section_widget.dart, product_color.dart, product_size.dart (lib/presentation/product/components/home/offers/offers_card.dart)
- Change coupling: app_router.dart ↔ account_skew_clipper.dart (lib/core/router/app_router.dart)
- 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
- Test reliability not included
- The Features list begins at the top of the README and clips before reaching the promised Order Tracking, Location Google Maps, Real-Time Chat with WebSockets, Notifications, Contributing, License, Acknowledgments, Contact sections. (README.md)
- complexity unreadable for .dart, .swift — churn × complexity hotspots could not be measured
- dormant codebase — no living knowledge left to concentrate
New (93)
- 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 × 2) (lib/presentation/product/components/search/search_grid_view_component.dart)
- Duplicated block (10–12 lines × 2) (lib/presentation/auth/screens/forget_password_screen.dart)
- Duplicated block (12–15 lines × 5) (lib/presentation/product/components/discover/skew_grid_view_component.dart)
- Duplicated block (13 lines × 2) (lib/presentation/account/screens/account_screen.dart)
- Duplicated block (13 lines × 2) (lib/presentation/auth/screens/forget_password_screen.dart)
- Duplicated block (13 lines × 2) (lib/presentation/product/components/shared/large_product_card_shimmer_loading.dart)
- Duplicated block (13 lines × 2) (lib/presentation/shared/widgets/product_color.dart)
- Duplicated block (13 lines × 2) (lib/shared/util/validation_manager.dart)
- Duplicated block (13–14 lines × 2) (lib/presentation/account/bloc/maps_bloc/map_state.dart)
- Duplicated block (14 lines × 5) (lib/presentation/product/components/discover/grid_card.dart)
- Duplicated block (15 lines × 2) (lib/presentation/cart/components/payment_component.dart)
- Duplicated block (15 lines × 2) (lib/presentation/product/components/discover/skew_grid_view_component.dart)
- Duplicated block (15 lines × 4) (lib/presentation/product/components/discover/list_view_card.dart)
- Duplicated block (15 lines × 6) (lib/presentation/product/components/details/details_body_shimmer_loading.dart)
- Duplicated block (16 lines × 2) (lib/presentation/product/components/discover/skew_grid_view_component.dart)
- Duplicated block (16 lines × 2) (lib/presentation/shared/bloc/cart_cubit/cart_cubit.dart)
- …and 73 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
Bit-Camp-IO/E-Fashion_Flutter 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 e447adda6a55786943cd0f1d9d2cf9af16add15c — 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.