Skip to content

Releases: flutter-news-app-full-source-code/flutter-news-app-web-dashboard-full-source-code

v1.5.0

29 Nov 16:02
6da0a5a

Choose a tag to compare

Streamlined Configuration & UX Refinements

This release delivers a comprehensive overhaul of the administrative user experience, specifically targeting the App Configuration workflows. We have restructured the settings architecture into intuitive, logical tabs—separating General, System, and User controls—while simultaneously streamlining complex forms like Ad Management and User Limits. These changes are supported by backend refactoring to generalize application settings, resulting in a cleaner, more efficient dashboard.

image

🎛️ Intuitive Configuration Architecture

The App Configuration page has been completely reimagined to reduce cognitive load. Settings are now organized into clear, thematic tabs, making it easier for administrators to locate and adjust specific parameters without scrolling through endless forms.

  • 📑 Tabbed Interface Overhaul: Restructured the configuration page into distinct 'General', 'Features', 'User', and 'System' tabs, replacing the previous flat structure for better organization. #132, #133
  • 🧱 Modularized Settings Forms: Extracted specific configurations, such as App URLs (Terms & Privacy) and Ad Platforms, into dedicated, modular widgets with tabbed navigation for easier management of identifiers and limits. #133
  • 🖱️ Feed Interaction Control: Introduced a new setting to control "Feed Item Click Behavior," allowing admins to define whether links open in an in-app browser or the system's default browser. #133

📉 Logic Simplification & Cleanup

We have refined the data models and removed unnecessary complexity from the content management forms. This cleanup aligns the dashboard with the latest API refactors and simplifies the daily workflow for editors.

  • ⚙️ Global Settings Refactor: Renamed and generalized UserAppSettings to AppSettings across the BLoC and repository layers to reflect their application-wide scope. #132
  • 📢 Streamlined Ad Configuration: Consolidated complex ad settings into a simplified "Navigation Ad Settings" form, removing specific article/interstitial toggles in favor of frequency-based navigation logic. #132
  • 📝 Content Form Optimization: Removed the 'excerpt' field from headline creation and editing flows, reducing friction during content entry. #132

v1.4.0

22 Nov 19:43
b2d3d03

Choose a tag to compare

Integrated Notification Management & Breaking News Workflows

This release significantly expands the dashboard's administrative capabilities, introducing a dedicated suite for managing Push Notification configurations and integrating Breaking News workflows directly into content creation. Alongside these engagement tools, we have refined the interface for managing user preference limits and streamlined the codebase by permanently removing deprecated ad structures.


📢 Push Notifications & Breaking News

Administrators now have direct control over the application's engagement strategy. This update adds UI for configuring notification providers and seamlessly integrates urgency flags into the standard editorial workflow.

  • 🔔 Global Notification Settings: Added a new "Notifications" tab to the App Configuration page, allowing admins to enable/disable the system, switch providers (Firebase/OneSignal), and manage delivery types like Daily Digests. #127
  • Breaking News Workflow: Headlines can now be explicitly marked as "Breaking News" during creation. This includes validation logic (preventing draft status for breaking news), confirmation prompts, and visual indicators in the content table. #127
  • 🔍 Enhanced Content Filtering: Introduced new filter options in the content management view, enabling editors to quickly isolate "Breaking" news items from standard articles. #127

⚙️ Granular Configuration & Maintenance

We have refactored how user limits are configured to support recent data model changes and performed necessary housekeeping to keep the dashboard lean and up-to-date.

  • 🎛️ Unified Limit Configuration: Replaced specific limit forms with a generic SavedFilterLimitsForm, providing a unified interface to configure granular limits for both Saved Headline Filters and Saved Source Filters based on user roles. #127
  • 🧹 Local Ads Removal: Systematically removed the deprecated 'Local Ads' platform and its associated localization logic to streamline ad management configuration. #124
  • 🧪 Demo Environment Enhancements: Improved the demo mode initialization with better fixture data and expanded login hints (adding publisher@example.com) for a smoother testing experience. #124

v1.3.0 - The Foundation Edition

01 Nov 16:07
731f80e

Choose a tag to compare

Robust Access Control & Strategic Simplification

This release marks a significant evolution for the dashboard, introducing a comprehensive suite of security and administrative tools while simultaneously refining the application's core focus. Administrators gain powerful new capabilities for user and role management, ensuring a secure and tailored experience. In parallel, the platform has been streamlined through the strategic removal of the local ad management feature, simplifying the overall monetization strategy and codebase.

image

🔒 Comprehensive User & Role Management

This update provides administrators with a full suite of tools to manage user permissions with precision. The new Role-Based Access Control (RBAC) system ensures a secure and tailored experience, granting access only to relevant dashboard sections based on user roles.

  • 👤 A complete user management system has been integrated, allowing administrators to view, filter by role or email, and modify user permissions, such as promoting a user to a 'Publisher'. [#119]
  • 🛡️ A robust RBAC system now restricts access based on assigned roles. The navigation sidebar dynamically adapts to a user's permissions, and direct URL access to restricted areas is blocked. [#120]
  • 🗺️ A centralized permissions map simplifies the management of which roles can access specific application routes. [#120]

🧹 Core Simplification: Local Ad Feature Removal

To refine the platform's focus and reduce complexity, the entire 'Local Ad Management' feature has been deprecated and removed. This change aligns the dashboard with a more streamlined ad monetization strategy by removing the need to manage a self-hosted ad server.

  • 🗑️ The feature has been completely excised from the application, including all associated UI components, business logic, data repositories, and routing definitions. [#121]
  • 📚 Documentation and localization assets have been updated to reflect this change, removing all references to custom ad inventory management. [#121]

v1.2.0

24 Oct 19:57
9704188

Choose a tag to compare

Enhanced Source Management & Robust Environment Configuration

This release introduces a key enhancement to our content management capabilities by allowing administrators to associate a logo with each news source. In parallel, we have significantly refactored the application's underlying configuration management to be environment-aware, leading to safer and more reliable deployments across development and production stages.

image

🖼️ Richer Source Identification

To improve content branding and visual recognition, we have expanded the data model for news sources.

  • 🔗 Administrators can now add a 'Logo URL' when creating or editing a source, allowing for richer visual representation in consumer applications. #107

⚙️ Foundational Stability & Deployment

The application's deployment and configuration process has been overhauled to ensure greater stability and flexibility.

  • 🛠️ The application now uses environment-aware configurations, loading settings like the API URL at compile-time to prevent misconfigurations in production builds. #106
  • 📦 Core project dependencies have been updated to their latest versions to ensure continued stability and access to the latest features. #107

v1.1.0

17 Oct 14:55
59b4e65

Choose a tag to compare

Enhanced User Role Configuration & Improved UI Consistency

This release introduces greater administrative control by allowing the configuration of feature limits based on user roles. Additionally, a comprehensive terminology update improves clarity throughout the dashboard, creating a more intuitive experience for users and streamlining future development.

⚙️ Granular User Role Configuration

To provide more flexible management of user capabilities, this update introduces the ability to set specific limits on the number of saved feed filters for different user roles.

  • 🔧 Administrators can now define custom limits for saved feed filters for guest, standard, and premium users via a new form in the feed configuration tab. #100

26-09-2025

26 Sep 20:36
9d582f7

Choose a tag to compare

Unified Content Management, Drafting System & UI Overhaul

This is a major architectural release for the dashboard, introducing a comprehensive content drafting system and a ground-up refactoring of the content and local ad management sections. The changes centralize state management, introduce powerful filtering capabilities, and significantly improve the overall user experience and UI consistency.

image

📝 Content Drafting & Unified Management

A full drafting system has been implemented for headlines, topics, and sources. The entire content management architecture has been consolidated to support this new workflow and streamline state.

  • Drafting System: Users can now save content as a draft before publishing. Dedicated pages have been added to manage, edit, publish, or delete drafts. [#80]
  • Consolidated Content BLoC: The separate BLoCs for draft, archived, and active content have been removed and their logic consolidated into a single, robust ContentManagementBloc. [#91]
  • Dedicated Filter BLoCs: New, dedicated BLoCs (HeadlinesFilterBloc, TopicsFilterBloc, etc.) now manage the state of filtering criteria, decoupling filter logic from the main content BLoC. [#91]
  • Advanced Filter Dialog: A new FilterDialog has been implemented, providing a comprehensive interface for users to filter content by search query, status, sources, topics, and more. [#91]
  • Centralized Undo/Deletion: The PendingDeletionsService has been integrated directly into the central BLoCs for content and local ads, providing a consistent and robust optimistic "undo" experience for all deletions. [#79, #87]

📢 Local Ads Management Overhaul

The local ads management section has been completely redesigned for a more organized, scalable, and feature-rich user experience.

  • Modular Ad Type Pages: The previous single table has been replaced with dedicated pages for Native, Banner, Interstitial, and Video ad types, providing a more organized interface. [#93]
  • Save as Draft for Ads: The ad creation workflow now supports saving ads as a draft or publishing them directly. [#93]
  • Ad Filtering: A new FilterLocalAdsBloc and a dedicated filter dialog have been introduced, allowing users to search and filter local ads by title/URL and status. [#93]
  • Simplified Ad Status: The ability for users to manually set a contentStatus during ad creation/update has been removed. New ads are now always active by default, simplifying the UI and BLoC logic. [#88]

🎨 UI/UX & Ad Configuration Refinements

Significant changes have been made to improve the application's UI consistency, navigation, and the flexibility of ad configuration.

  • AppShell Refactor: The main app shell was refactored to remove the AppBar and integrate navigation actions (Settings, Sign Out) directly into the AdaptiveScaffold's navigation rail for a more modern UI. [#92]
  • New AboutIcon Widget: A new reusable widget has been introduced to display contextual information about a page or section in a dialog, improving user guidance. [#92]
  • Role-Based Ad Configuration: Ad settings are now explicitly configurable per user role (Guest, Standard, Premium). The previously hardcoded ad-free experience for premium users has been removed, making their ad settings fully configurable. [#85]
  • Streamlined Tables: The redundant "status" column has been removed from all main content management tables, and action buttons in archive views have been consolidated into a PopupMenuButton to prevent UI overflow. [#89, #90]

🛠️ Project Health & Maintenance

  • Dependency Pinning: All git-based dependencies in pubspec.yaml have been pinned to specific commit hashes to ensure consistent and reproducible builds. [#86]
  • README Overhaul: The main README.md file was completely restructured with collapsible sections to better organize and showcase the dashboard's features. [#78]

08-09-2025

08 Sep 16:27

Choose a tag to compare

📢 Local Ad Management, Config UI Overhaul & Performance Optimizations

This is a major release for the web dashboard, introducing a comprehensive system for managing local ads, a ground-up refactoring of the application configuration UI for better modularity, and significant architectural changes to improve user experience and performance.

📢 Local Ad Management System

A complete system for managing self-hosted advertisements has been integrated into the dashboard. This allows administrators to directly control and deploy various types of ads without relying on external ad networks.

  • Added a full suite of UI pages and forms for creating, editing, archiving, and restoring local ads, supporting native, banner, interstitial, and video ad types. [#74]
  • Integrated new data clients and repositories for LocalAd entities to ensure seamless data handling. [#74]
  • Expanded localization with numerous new strings for local ad management and generalized existing ad-related terminology. [#74, #76]

⚙️ App Configuration & Content Management Refactor

The core sections for managing application settings and content have been significantly re-architected to improve usability, maintainability, and user experience.

  • Modular Configuration UI: The monolithic App Configuration page has been broken down into dedicated, tab-based components (Feed, Advertisements, General), making the settings easier to navigate and manage. [#72, #73]
  • Centralized Selection Component: Replaced disparate dropdowns across content management forms with a new, generic SearchableSelectionInput widget, providing a consistent UI with search and pagination for selecting items like topics, sources, and countries. [#69]
  • Decoupled BLoC Logic: Refactored the Create/Edit BLoCs to be leaner by decoupling them from the responsibility of fetching and managing lists of related entities, which is now handled by the new generic selection components. [#69]
  • Reactive Data Updates: The ContentManagementBloc now listens to entityUpdated streams from data repositories for more automatic and efficient UI updates, removing the need for explicit event dispatches. [#69]
  • Optimized Data Fetching: Added conditional checks to prevent redundant API calls for headlines, topics, and sources when switching tabs if the data is already loaded. [#71]
  • Granular Ad Settings: The ad configuration UI was further refactored to introduce a global ad enable/disable switch and provide more granular control, such as selecting a specific BannerAdShape for article ads. [#75, #77]

🎨 UI/UX & Theming Improvements

Several changes were made to improve visual consistency and clarity throughout the dashboard.

  • "Dashboard" to "Overview" Renaming: Systematically renamed the "dashboard" feature to "overview" across UI elements, localization files, BLoCs, and file structures for better clarity. [#66]
  • Consistent Web Theming: Wrapped the main router content in a Scaffold to apply a consistent, theme-adaptive background color outside of the central content area, improving the visual presentation on wider screens. [#67]
  • Localization Refinements: Updated UI text to be more concise and accurate, such as clarifying that content management pertains to the "mobile application". [#68, #70]

12-08-2025

12 Aug 19:58

Choose a tag to compare

🚀 Configuration UI Overhaul & Core Model Updates

This release focuses on significantly improving the usability of the dashboard's configuration and settings pages. We've introduced a major UI overhaul to reduce clutter and fix common workflow annoyances. Additionally, we've updated core data models and logic to make the system more robust and flexible for future enhancements.


✨ A Modernized Configuration Experience

The App Configuration and Settings pages have been redesigned to be more intuitive and less overwhelming, especially for complex setups.

Our Goal: To improve navigation and reduce visual clutter, allowing administrators to focus on one section at a time without getting lost on a long page.

  • Collapsible Sections: All major configuration areas are now wrapped in collapsible ExpansionTile widgets. You can now expand only the section you need to edit, keeping the rest of the page tidy.
  • Intuitive Text Editing: We've fixed a common Flutter UI issue where the cursor would jump to the beginning of a text field during an update. The cursor now correctly stays at the end of the text, providing a much smoother editing experience.
  • Dynamic Decorator Management: The "Feed Decorators" section is now more intelligent. It dynamically displays all available decorator types, even if they aren't configured yet, making it easier to manage all options from a single place.

🛠️ Foundational Upgrades & Refactoring

We've made several important changes under the hood to align with recent API updates and improve maintainability.

  • Introducing "Feed Decorators": The old "Account Actions" system has been refactored into a more flexible "Feed Decorators" system. This provides a clearer and more powerful way to configure how content is presented in the user's feed.
  • New Language Model: The dashboard no longer treats language as a simple text string. It now utilizes a proper Language object, ensuring more robust and consistent handling of language-specific settings.
  • Centralized App Constants: Common values, like the maximum app width, have been moved into a central AppConstants class. This improves code organization and ensures consistency across the application.

🐛 Other Fixes & Improvements

  • Remote Config Fix: Corrected a bug where timestamps (createdAt and updatedAt) were not being handled properly when updating a remote configuration.
  • Expanded Localization: Added new translation keys to support the new "Feed Decorators" system and to provide localized names for user roles and enums.
  • Dependency Updates: Several packages have been updated to their latest versions, including go_router, to ensure the project remains secure and up-to-date.

03-08-2025

03 Aug 08:14
bb79b70

Choose a tag to compare

🚀 Release: Archiving, Data Loading, and UI Enhancements

This release introduces significant backend and data handling improvements to the dashboard. The changes focus on ensuring data integrity through a new archiving system, intelligently working around UI component limitations for data loading, and refining the overall user experience.


🗑️ Content Archiving for Data Integrity

We've implemented a content archiving workflow to act as a soft-delete mechanism. This was a necessary architectural change driven by how our document-based backend operates.

Technical Rationale: Directly deleting a document (like a 'source') could break data integrity, as other documents (like 'headlines') might still reference it. Archiving preserves these essential links while effectively removing the content from active use.

  • New Workflow: Instead of being deleted, content items are now moved to an 'archived' state. New pages have been added to view and manage this archived content.
  • Controlled Deletion: To maintain data integrity, only the primary container item—a headline—can be permanently deleted, and only from within the archive page itself.
  • Undo Safety Net: A 5-second "Undo" option now appears after a headline is permanently deleted from the archive, providing a buffer to prevent accidental data loss.

⚡ Refactoring Data Loading for UI Consistency

This release changes how we load data into dropdown menus (e.g., country and language lists). This was a deliberate engineering tradeoff to maintain a consistent UI across the app.

  • The Challenge: The standard DropdownButtonFormField widget we use for UI consistency does not support scroll detection, making it impossible to load more data as a user scrolls (on-demand pagination).
  • Our Solution: We now pre-fetch the required data. When a form is opened, a ThrottledFetchingService intelligently loads the complete list of items in the background. This process is designed to be efficient and not block the UI.
  • The User Experience: While the data is being loaded, the dropdown is temporarily disabled and shows a "Loading full list..." message. Once the fetch is complete, the dropdown becomes active with the full list of options.

🛠️ Other Notable Improvements

  • Authentication Polish:
    • A 60-second cooldown has been added to the "Send Code" button to prevent abuse.
    • The verification code entry now uses a cleaner Pinput widget for a better visual experience.
  • Reactive Dashboard: The main dashboard summary now listens for content changes and updates its statistics automatically, eliminating the need for manual refreshes.
  • Consistent Data Sorting: Fixed a bug to ensure all content lists are now correctly sorted by their updatedAt timestamp, always showing the most recently modified items first.
  • Active Content Filtering: Data fetches for content management now correctly filter out archived items, ensuring only active content is shown in lists and forms.

23-07-2025

23 Jul 11:28
b9f5f1b

Choose a tag to compare

🚀 Foundational Refactoring & Rebranding

This release introduces a breaking, project-wide refactoring to standardize our internal package structure and update the project's public-facing brand. The ht_ prefix has been removed from all internal packages to improve clarity and maintainability.

This is a comprehensive change that touches nearly every file, re-establishing the project's identity and creating a cleaner, more conventional codebase for future development.

✨ Key Changes & Enhancements

Package Renaming & Standardization

  • Internal Packages Renamed: All internal packages, previously prefixed with ht_ (e.g., ht_auth_repository), have been renamed to remove the prefix (e.g., auth_repository). This required a complete update of all import statements and class references.
  • Standardized Error Handling: As part of this effort, the custom HtHttpException has been replaced with the more standard HttpException type across the application.

Branding & Documentation Updates

  • Project Rebranded: The project's public-facing brand has been officially updated from "Headlines Toolkit" to "Flutter News App Dashboard".
  • Documentation & Metadata Updated: This new branding is reflected across the README.md, the web page title, and the manifest.json application name.

🔧 Tooling & Maintenance

  • Dependabot Configuration: The Dependabot configuration has been updated to explicitly list the newly renamed internal packages, ensuring our dependency management tools continue to work correctly.