Releases: flutter-news-app-full-source-code/flutter-news-app-web-dashboard-full-source-code
21-07-2025
🚀 Architectural Refactor: Adopting the Shared UI Kit
This release marks a substantial architectural refactoring of the dashboard application, focused on centralizing our user interface components and standardizing the look and feel.
We have migrated all common UI widgets, themes, and utilities from the local lib/shared directory into our new, shared ht_ui_kit package. This change significantly reduces code duplication, ensures a consistent visual experience across our suite of apps, and improves the long-term maintainability of the codebase.
✨ Key Changes & Enhancements
- Shared UI Kit Integration: All common UI components, including spacing definitions, themes, and shared widgets like
FailureStateWidgetandLoadingStateWidget, have been moved into theht_ui_kitpackage. - Centralized Localization Access: The method for accessing localized strings has been standardized. The application now uses the
AppLocalizationsX(context).l10nextension provided by the UI kit, ensuring consistency. - Simplified Project Structure: The local
lib/shareddirectory and its contents have been removed, resulting in a cleaner, more streamlined project structure with less redundant code to maintain locally. - Dependency & Code Cleanup: Dependencies have been updated to align with the new shared packages. Obsolete logic, such as local
timeagomessages and thekIsWebparameter for the HTTP client, has been removed as this is now handled by the shared libraries.
14-07-2025
✨ UI Overhaul & Foundational Refinements
This release introduces a complete overhaul of the App Configuration screen, making it significantly more organized and user-friendly. Alongside this visible change, we've executed a major refactoring of our error handling and localization systems, resulting in a more robust, maintainable, and stable application.
🎨 UI Overhaul: Tab-Based App Configuration
The App Configuration page has been completely redesigned, moving from a single long list to a clean, tab-based interface. This makes it much easier and faster for administrators to find and manage specific settings.
- Categorized Settings: Configurations are now logically grouped under new 'Feed', 'Advertisements', and 'General' tabs.
- Improved Modularity: The previous 'Operational Status' section has been split into more focused 'Maintenance Mode' and 'Force App Update' sections for better clarity.
🛡️ Robust Error Handling & Stability
The application's error handling system has been fundamentally refactored to be more structured, informative, and user-friendly.
- Exception-Driven Errors: We've replaced simple string-based error messages with a structured, exception-driven approach (
HtHttpException). This provides richer information for both debugging and user feedback. - Localized, User-Friendly Messages: All user-facing error messages are now context-aware and localized, providing clear, helpful feedback instead of generic error text. A central
FailureStateWidgetensures this experience is consistent across the entire app.
🌍 Enhanced Localization & Code Maintainability
A major effort was undertaken to improve our internationalization infrastructure and overall code quality.
- Centralized UI Text: Numerous hardcoded UI strings (labels, descriptions, prompts) have been migrated into our localization files, making the app easier to translate and maintain.
- Dynamic Localization: The system now supports dynamic localization, allowing UI text to adapt based on user context, such as their role (Guest, Standard, etc.).
- Improved Maintainability: To reduce errors and improve readability, hardcoded repository IDs have been replaced with named constants, and redundant code comments have been removed.
13-07-2025
🚀 Major Architectural Refactor & Content Management Overhaul
This release introduces a significant architectural refactor of the application, aligning the data models and state management with recent backend updates. We have renamed core data models (Category -> Topic), overhauled the AuthenticationBloc for better consistency, and introduced dedicated UIs for managing content types.
These changes establish a more robust, maintainable, and consistent foundation for the application, while also enhancing content management capabilities.
✨ Key Features & Enhancements
Architectural & Core Model Updates
- Core Model Renaming: The
Categorydata model has been renamed toTopicthroughout the entire application, including repositories, BLoCs, and UI components. Similarly,AppConfigis nowRemoteConfigto better reflect its purpose. - Centralized App Configuration: Application status and update settings are now cohesively managed within the
RemoteConfigmodel, providing a more streamlined approach to configuration.
Enhanced Content Management
- Dedicated Topic Management: The app now features dedicated pages and business logic (BLoCs) for creating and editing
Topicentities, providing a structured UI for managing content categories. - Richer Headline Data: The
Headlinemodel has been enhanced with new fields, includingexcerpt(which replaces the previousdescriptionfield) andeventCountry.
🔧 State Management & Technical Refinements
- Refactored Authentication State: The
AuthenticationBlochas been significantly refactored. Its numerous states have been consolidated into a singleAuthenticationStateclass, managed by anAuthenticationStatusenum, which simplifies state transitions and improves code maintainability. - Updated Role Management: The
AppBlochas been updated to align with the newDashboardUserRoleandAppUserRoleenums from the backend, ensuring user permissions are handled correctly. - Structured Logging: The
loggingpackage has been integrated across key BLoCs, replacingprintstatements with structured and more informative logging. - Improved Data Querying: Data fetching operations now consistently use
PaginationOptionsandSortOptionobjects for clearer and more flexible API queries. - Dependency Updates: Several internal
ht-*package dependencies have been updated, and new packages likelogginganduuidhave been added to support new features.
05-07-2025
🛡️ Authentication Overhaul & UX Refinements
This release introduces a major overhaul of the application's authentication system to align with recent backend updates. We've also focused on enhancing the user experience with full localization of the sign-in flow, a more helpful demo mode, and polished UI refinements on the dashboard.
🔐 Authentication System Enhancements
- New Role-Based Authentication: The core authentication logic has been refactored to support a new multi-role system. The app now validates users based on an array of roles (e.g.,
admin,publisher), making our permission handling more flexible and robust. - Fully Localized Sign-In Flow: All hardcoded text has been removed from the authentication and code verification pages. UI text like headlines, subheadlines, and hints are now sourced directly from localization files, improving maintainability and ensuring a consistent experience in all supported languages.
- Improved Demo Experience: To make testing easier, the login and verification pages now display helpful hints with demo credentials, but only when the app is running in the demo environment.
- Enhanced Error Handling: The sign-in process is now more robust, with more granular error handling for specific issues like
Unauthorized,Forbidden, orNotFoundexceptions from the API.
✨ Dashboard & UX Improvements
- Improved Visual Hierarchy: The "Quick Actions" card on the dashboard has been refined. The 'Create Category' and 'Create Source' actions are now styled as
OutlinedButtons, visually de-emphasizing them to establish 'Create Headline' as the clear primary action.
🔧 Technical Refinements
- Dependency Updates: Core authentication and shared utility libraries (
ht-auth-*,ht-shared) have been updated to their latest versions. - Code Refactoring: The management of the application's environment state within the
AppBlochas been streamlined for better clarity.
04-07-2025
🚀 New Dashboard Overview Page
This release introduces a new Dashboard Overview page, which now serves as the central landing hub for the application. This new page provides administrators with an at-a-glance summary of key application metrics, a feed of recent content activity, and quick access to the most common management tasks.
The overview page is designed from the ground up to be fully responsive, ensuring a seamless and adaptive experience across all screen sizes. This provides a more powerful and intuitive starting point for all administrative workflows.
✨ Key Features
- Central Hub: The new overview page acts as a central home for the app, displaying a comprehensive summary of statistics (total headlines, categories, sources) and recent activity.
- Streamlined Quick Actions: A refined "Quick Actions" card offers convenient shortcuts to
Create CategoryandCreate Source, making common tasks faster. - Robust State Management: A dedicated
DashboardBlochas been integrated to efficiently manage data fetching and state for the overview page, ensuring a reliable and responsive experience. - Full Internationalization: All new UI elements on the overview page, including titles, stats, and actions, come with full localization support.
🎨 Responsive Design & UI Enhancements
- Adaptive Layout: The new Dashboard Overview page is fully responsive. Summary cards and the main content area intelligently rearrange themselves to provide an optimal viewing experience on both wide and narrow screens.
- Polished UI: The "Quick Actions" card has been refined using
ElevatedButton.iconfor a consistent and visually appealing design that improves usability.
03-07-2025
🎉 Enhanced Content Management System
This release introduces a major overhaul to our content management system, focusing on providing administrators with more granular control and improving the overall user experience. We've introduced a complete Content Lifecycle Management system, allowing content to be marked as Active, Archived, or Draft.
Alongside this, we've significantly refactored our state management for a faster, more responsive UI. Instead of re-fetching data after every change, the app now intelligently updates its local state, resulting in a snappier experience. Automatic timestamping for content creation and updates has also been integrated to enhance data integrity and visibility.
✨ New Features & Enhancements
- Content Lifecycle Management: Introduced a
ContentStatusfield (Active,Archived,Draft) for Categories, Headlines, and Sources. This allows administrators to manage the entire lifecycle of content directly within the system. - Automatic Timestamps: All content items now automatically receive
createdAtandupdatedAttimestamps. TheupdatedAtfield is now displayed in the UI in add-MM-yyyyformat, providing clear visibility into when content was last modified. - Enhanced UI for Content Management:
- Added dropdowns to the create and edit forms for selecting an item's
ContentStatus. - Updated table views to display
StatusandLast Updatedcolumns, providing a more relevant overview of content. - Table rows are now selectable, allowing for quick navigation to the corresponding edit page.
- Added dropdowns to the create and edit forms for selecting an item's
- Localization Support: Added new localization keys for "Status", "Last Updated", and the different content statuses to support internationalization.
🚀 Performance & UX Improvements
- Optimized State Management: The
ContentManagementBlochas been refactored to update its state locally after an item is created, updated, or deleted. This eliminates the need to re-fetch the entire list from the server, leading to a significantly more responsive and efficient user interface.
🔧 Fixes & Refinements
- Code Quality Improvements: Refactored BLoC states and events to incorporate the new
ContentStatusfield. Improved type safety and immutability usingsealedandfinalclasses, refinedEquatableprops, and removed various unused imports. - Dependency Updates: Updated several dependencies to their latest versions, including
go_router,device_preview, andfreezed_annotation, and bumped the Flutter SDK constraint.
02-07-2025
01-07-2025
What's Changed
Full Changelog: 30-06-2025...01-07-2025
30-06-2025
29-06-2025
What's Changed
- Chore simplify codebase by @fulleni in #1
- Feature remote config by @fulleni in #2
- Fix and UI refactor for app configuration feature by @fulleni in #3
- fix: the form input auto-selection and the UI improvements for the "A… by @fulleni in #4
- refactor(config): rename tabs and descriptions by @fulleni in #5
- Feature l10n app config by @fulleni in #6
New Contributors
Full Changelog: https://github.com/headlines-toolkit/ht-dashboard/commits/29-06-2025