|
1 | 1 | <div align="center"> |
2 | | -<img src="https://avatars.githubusercontent.com/u/202675624?s=400&u=2daf23e8872a3b666bcd4f792a21fe2633097e79&v=4" alt="Flutter News App Dashboard Logo" width="220"> |
3 | | - |
4 | | -# Flutter News App Web Dashboard Full Source Code |
| 2 | + <img src="https://avatars.githubusercontent.com/u/202675624?s=400&u=2daf23e8872a3b666bcd4f792a21fe2633097e79&v=4" alt="Flutter News App Dashboard Logo" width="220"> |
| 3 | + <h1>Flutter News App Web Dashboard</h1> |
| 4 | + <p><strong>Complete, production-ready source code for a comprehensive content management web dashboard.</strong></p> |
| 5 | +</div> |
5 | 6 |
|
6 | | -<p> |
7 | | -<img src="https://img.shields.io/badge/coverage-0%25-green?style=for-the-badge" alt="coverage: 0%"> |
8 | | -<a href="https://flutter-news-app-full-source-code.github.io/flutter-news-app-web-dashboard-full-source-code/"><img src="https://img.shields.io/badge/LIVE_DEMO-VIEW-orange?style=for-the-badge" alt="Live Demo: View"></a> |
9 | | -<a href="https://flutter-news-app-full-source-code.github.io/docs/web-dashboard/local-setup/"><img src="https://img.shields.io/badge/DOCUMENTATION-READ-slategray?style=for-the-badge" alt="Documentation: Read"></a> |
10 | | -<a href="LICENSE"><img src="https://img.shields.io/badge/TRIAL_LICENSE-VIEW_TERMS-blue?style=for-the-badge" alt="Trial License: View Terms"></a> |
11 | | -<a href="https://github.com/sponsors/flutter-news-app-full-source-code"><img src="https://img.shields.io/badge/LIFETIME_LICENSE-PURCHASE-purple?style=for-the-badge" alt="Lifetime License: Purchase"></a> |
| 7 | +<p align="center"> |
| 8 | + <a href="https://flutter-news-app-full-source-code.github.io/flutter-news-app-web-dashboard-full-source-code/"><img src="https://img.shields.io/badge/LIVE_DEMO-VIEW-orange?style=for-the-badge" alt="Live Demo: View"></a> |
| 9 | + <a href="https://flutter-news-app-full-source-code.github.io/docs/web-dashboard/local-setup/"><img src="https://img.shields.io/badge/DOCUMENTATION-READ-slategray?style=for-the-badge" alt="Documentation: Read"></a> |
| 10 | + <img src="https://img.shields.io/badge/coverage-0%25-green?style=for-the-badge" alt="coverage: 0%"> |
| 11 | +</p> |
| 12 | +<p align="center"> |
| 13 | + <a href="LICENSE"><img src="https://img.shields.io/badge/TRIAL_LICENSE-VIEW_TERMS-blue?style=for-the-badge" alt="Trial License: View Terms"></a> |
| 14 | + <a href="https://github.com/sponsors/flutter-news-app-full-source-code"><img src="https://img.shields.io/badge/LIFETIME_LICENSE-PURCHASE-purple?style=for-the-badge" alt="Lifetime License: Purchase"></a> |
12 | 15 | </p> |
13 | | -</div> |
14 | 16 |
|
15 | | -This repository contains the complete, production-ready source code for a Flutter web dashboard designed for comprehensive content management. It is a key component of the [**Flutter News App - Full Source Code Toolkit**](https://github.com/flutter-news-app-full-source-code), an ecosystem that also includes a Dart Frog [backend API](https://github.com/flutter-news-app-full-source-code/flutter-news-app-api-server-full-source-code) and a [mobile client](https://github.com/flutter-news-app-full-source-code/flutter-news-app-mobile-client-full-source-code). |
| 17 | +This repository contains the complete, production-ready source code for a Flutter web dashboard designed for comprehensive content management. It is a key component of the [**Flutter News App Full Source Code Toolkit**](https://github.com/flutter-news-app-full-source-code), an ecosystem that also includes a Dart Frog [backend API](https://github.com/flutter-news-app-full-source-code/flutter-news-app-api-server-full-source-code) and a [mobile client](https://github.com/flutter-news-app-full-source-code/flutter-news-app-mobile-client-full-source-code). |
16 | 18 |
|
17 | | -## ⭐ Everything You Get, Ready to Go |
| 19 | +## ⭐ Feature Showcase: Everything You Get, Ready to Go |
18 | 20 |
|
19 | 21 | This dashboard comes packed with all the features you need to manage a professional news application. |
20 | 22 |
|
21 | | -#### 📰 **Comprehensive Content Management** |
22 | | -Effortlessly manage the entire lifecycle of your news content with full CRUD (Create, Read, Update, Delete) capabilities, complemented by advanced archiving and restoration features: |
23 | | -* **Headlines:** Create, edit, publish, archive, restore, and permanently delete news articles. |
24 | | -* **Topics:** Organize, define, archive, and restore news topics. |
25 | | -* **Sources:** Maintain, update, archive, and restore news sources. |
26 | | -> **Your Advantage:** Gain unparalleled control over your content. This centralized system ensures accuracy, consistency, and data integrity, allowing you to manage active content flows and easily retrieve or permanently remove archived items with robust undo functionality. ✍️ |
27 | | -
|
28 | | -#### 📺 **Flexible Local Ads Management** |
29 | | -Take full control of your in-app advertising strategy with a dedicated management suite for local ads. Create, edit, and manage various ad formats, including: |
30 | | -* **Native Ads:** Design ads that blend seamlessly with your content. |
31 | | -* **Banner Ads:** Implement traditional banner advertisements. |
32 | | -* **Interstitial Ads:** Configure full-screen ads for strategic placements. |
33 | | -* **Video Ads:** Integrate engaging video advertisements. |
34 | | -Each ad type supports full CRUD operations, along with archiving, restoration, and permanent deletion, providing complete lifecycle management. |
35 | | -> **Your Advantage:** Monetize your application effectively with flexible, locally managed ad campaigns. This feature empowers you to rapidly deploy and iterate on ad content without relying on external ad networks or app store updates, ensuring maximum control and revenue potential. 💰 |
36 | | -
|
37 | | -#### 📊 **Dashboard Overview** |
38 | | -Get a quick, real-time overview of your content ecosystem with key statistics and quick actions: |
39 | | -* **Content Counts:** View the total number of headlines, topics, and sources at a glance. |
40 | | -* **Recent Activity:** See recently created headlines to stay on top of new content. |
41 | | -* **Quick Actions:** Directly create new headlines, topics, or sources from the overview. |
42 | | -> **Your Advantage:** Instantly understand the pulse of your content operation and jump directly into key management tasks, streamlining your workflow. 📈 |
43 | | -
|
44 | | -#### ⚙️ **Customizable Dashboard Settings** |
45 | | -Provide your administrative team with the ability to personalize their dashboard experience through a robust settings interface. This feature allows individual administrators and publishers to tailor the dashboard's appearance and behavior to their preferences, including: |
46 | | -* **Appearance Settings:** Adjust base themes (light/dark/system), accent colors, font families, text scale factors, and font weights for the dashboard UI. |
47 | | -* **Language Selection:** Choose their preferred language for the dashboard interface. |
48 | | -These settings are user-specific, ensuring a comfortable and efficient working environment for each team member. |
49 | | -> **Your Advantage:** Enhance the productivity and satisfaction of your administrative team with a highly customizable dashboard. By allowing personalized display and language options, you create a more efficient and user-friendly management experience. 🎨 |
50 | | -
|
51 | | -#### 📱 **App Configuration: Dynamic Remote Settings for Mobile Client** |
52 | | -Manage the mobile client's remote configuration directly from the dashboard. This powerful feature allows you to dynamically control various aspects of the mobile application without requiring an app store update, ensuring agility and responsiveness to business needs. Configurable elements include: |
53 | | -* **Maintenance Mode:** Instantly enable or disable maintenance mode for the mobile app, displaying a custom message to users. |
54 | | -* **Force Update:** Mandate app updates to a specific version (`latestAppVersion`), with an option to force users to update (`isLatestVersionOnly`). Configurable update URLs for iOS and Android are also available. |
55 | | -* **Ad Settings:** Comprehensive control over advertising strategy: |
56 | | - * **Global Ad Enablement:** A master switch to enable or disable all ads. |
57 | | - * **Primary Ad Platform:** Choose between `AdMob` or `Local` ad platforms. |
58 | | - * **Ad Unit Identifiers:** Configure specific ad unit IDs for each platform, including `feedNativeAdId`, `feedBannerAdId`, `feedToArticleInterstitialAdId`, `inArticleNativeAdId`, and `inArticleBannerAdId`. |
59 | | - * **Feed Ad Configuration:** Define ad types (`native`, `banner`) and frequency (`adFrequency`, `adPlacementInterval`) based on user roles (`guestUser`, `standardUser`, `premiumUser`). |
60 | | - * **Article Ad Configuration:** Control in-article ad enablement, preferred `bannerAdShape` (`square`, `rectangle`), and specific `inArticleAdSlotConfigurations` (`aboveArticleContinueReadingButton`, `belowArticleContinueReadingButton`). |
61 | | - * **Interstitial Ad Configuration:** Manage global interstitial ad enablement and frequency (`transitionsBeforeShowingInterstitialAds`) for page transitions, also tiered by user role. |
62 | | -* **Feed Decorators:** Manage the enablement and visibility of various in-feed promotional and engagement elements, such as `linkAccount`, `upgrade`, `rateApp`, `enableNotifications`, `suggestedTopics`, and `suggestedSources`. Each decorator can be configured for specific user roles and `daysBetweenViews`. |
63 | | -* **User Preference Limits:** Set maximum limits for followed items (countries, sources, topics) and saved headlines, tiered by user roles (`guestUser`, `standardUser`, `premiumUser`). |
64 | | -> **Your Advantage:** Gain dynamic control over your mobile application's behavior and monetization strategy. Adjust critical settings on the fly, ensuring your users always have the best experience and your business goals are met without the overhead of app store releases. 🚀 |
65 | | -
|
66 | | -#### 🔐 **Robust User Authentication** |
67 | | -Secure and flexible authentication flows are built-in for administrators and publishers using Email + Code (Passwordless) Sign-In. |
68 | | -> **Your Advantage:** All the complex security and user management for your administrative team is already done for you. ✅ |
69 | | -
|
70 | | -#### 🖥️ **Responsive Web UI** |
71 | | -Built with `flutter_adaptive_scaffold`, the dashboard offers a clean, responsive interface that looks great on any screen size. |
72 | | -> **Your Advantage:** Deliver a consistent and optimized administrative experience on desktops, tablets, and even mobile browsers. ↔️ |
73 | | -
|
74 | | -#### 🏗️ **Clean & Modern Architecture** |
75 | | -Developed with best practices for a maintainable and scalable codebase: |
76 | | -* **Flutter & Dart:** Cutting-edge web development. |
77 | | -* **BLoC Pattern:** Predictable and robust state management. |
78 | | -* **GoRouter:** Well-structured and powerful navigation. |
79 | | -> **Your Advantage:** The dashboard is built on a clean, modern architecture that's easy to understand and maintain. It's solid and built to last. 📈 |
| 23 | +Click on any category to explore. |
80 | 24 |
|
81 | | -#### ⚙️ **Flexible Environment Configuration** |
82 | | -Easily switch between development (in-memory data or local API) and production environments with a simple code change. This empowers rapid prototyping, robust testing, and seamless deployment. |
83 | | -> **Your Advantage:** A flexible setup that speeds up your development cycle and makes deployment simple. 🚀 |
| 25 | +<details> |
| 26 | +<summary><strong>✍️ Content Lifecycle Management</strong></summary> |
84 | 27 |
|
85 | | -#### 🌍 **Localization Ready** |
86 | | -Fully internationalized with working English and Arabic localizations (`.arb` files). Adding more languages is straightforward. |
87 | | -> **Your Advantage:** Easily adapt your dashboard for a global team. 🌐 |
| 28 | +### 📰 Comprehensive Content Management |
| 29 | +Manage the entire lifecycle of your news content with full CRUD (Create, Read, Update, Delete) capabilities, complemented by advanced archiving and restoration features: |
| 30 | +- **Headlines:** Create, edit, publish, archive, restore, and permanently delete news articles. |
| 31 | +- **Topics:** Organize, define, archive, and restore news topics. |
| 32 | +- **Sources:** Maintain, update, archive, and restore news sources. |
| 33 | +> **💡 Your Advantage:** Gain detailed control over your content. This centralized system ensures accuracy and consistency, allowing you to manage active content and easily retrieve or remove archived items. |
88 | 34 |
|
89 | 35 | --- |
90 | 36 |
|
91 | | -## 🔑 License: Source-Available with a Free Trial |
| 37 | +### 📊 Dashboard Overview |
| 38 | +Get a real-time overview of your content ecosystem with key statistics and quick actions: |
| 39 | +- **Content Counts:** View the total number of headlines, topics, and sources. |
| 40 | +- **Recent Activity:** See recently created headlines to stay on top of new content. |
| 41 | +- **Quick Actions:** Directly create new headlines, topics, or sources from the overview. |
| 42 | +> **❤️ Your Advantage:** Quickly assess your content operation and jump directly into key management tasks, streamlining your workflow. |
| 43 | +
|
| 44 | +</details> |
| 45 | + |
| 46 | +<details> |
| 47 | +<summary><strong>💰 Monetization & Remote Control</strong></summary> |
| 48 | + |
| 49 | +### 💸 Advanced Monetization Control |
| 50 | +Manage the monetization engine of your mobile app directly from the dashboard. This integrated system provides deep control over your ad inventory and the rules that govern how ads are displayed. |
| 51 | +- **Flexible Ad Provider System:** Switch the primary ad provider for the mobile app between `Google AdMob` for industry-standard monetization or your own `Local` ad server for full control over your inventory. |
| 52 | +- **Local Ad Inventory Management:** When using the local provider, you have full CRUD capabilities for all your ad creatives, including: |
| 53 | + - **Native Ads:** Design ads that blend with your content. |
| 54 | + - **Banner Ads:** Implement traditional banner ads. |
| 55 | + - **Interstitial Ads:** Configure full-screen ads. |
| 56 | + - **Video Ads:** Manage video ad content. |
| 57 | +- **Granular Remote Configuration:** Fine-tune the mobile ad experience without shipping an app update: |
| 58 | + - **Ad Unit Management:** Configure AdMob and local ad unit identifiers from one place. |
| 59 | + - **Role-Based Rules:** Define ad frequency, placement, and format based on user roles (guest, standard, premium). |
| 60 | + - **Format Control:** Set rules for feed ads, in-article ads, and interstitial ads independently. |
| 61 | +> **💡 Your Advantage:** This provides a centralized control panel to manage a flexible monetization strategy. Deploy local ad campaigns or optimize your AdMob settings on the fly to maximize revenue potential. |
92 | 62 |
|
93 | | -Get started for free and purchase when you're ready to launch! |
| 63 | +--- |
94 | 64 |
|
95 | | -* **TRY IT:** Download and explore the full source code under the PolyForm Free Trial [license](LICENSE). Perfect for evaluation. |
96 | | -* **BUY IT:** One-time payment for a lifetime license to publish unlimited commercial apps. |
97 | | -* **GET YOURS:** [**Purchase via GitHub Sponsors**](https://github.com/sponsors/flutter-news-app-full-source-code). |
| 65 | +### 🚀 Centralized Application Control |
| 66 | +Manage the mobile client's remote configuration directly from the dashboard. This feature allows you to control various aspects of the mobile application without requiring an app store update. Configurable elements include: |
| 67 | +- **Maintenance Mode:** Enable or disable maintenance mode for the mobile app. |
| 68 | +- **Force Update:** Mandate app updates to a specific version, with an option to force users to update. |
| 69 | +- **Feed Decorators:** Manage the enablement and visibility of in-feed promotional and engagement elements like `linkAccount`, `upgrade`, `rateApp`, `suggestedTopics`, etc. |
| 70 | +- **User Preference Limits:** Set maximum limits for followed items (countries, sources, topics) and saved headlines, tiered by user roles. |
| 71 | +> **🎯 Your Advantage:** Gain control over your mobile application's behavior. Adjust critical settings on the fly to ensure your users have the best experience and your business goals are met. |
98 | 72 |
|
99 | | -> [!NOTE] |
100 | | -> *A single purchase provides a commercial license for every repository within the [Flutter News App - Full Source Code Toolkit](https://github.com/flutter-news-app-full-source-code). No other purchases are needed..* |
| 73 | +</details> |
| 74 | + |
| 75 | +<details> |
| 76 | +<summary><strong>🔐 Security & Customization</strong></summary> |
| 77 | + |
| 78 | +### 🔐 Robust User Authentication |
| 79 | +Secure authentication flows are built-in for administrators and publishers using Email + Code (Passwordless) Sign-In. |
| 80 | +> **✅ Your Advantage:** The security and user management for your administrative team is already handled for you. |
101 | 81 |
|
102 | 82 | --- |
103 | 83 |
|
104 | | -## 🚀 Getting Started & Running Locally |
| 84 | +### 🎨 Customizable Dashboard Settings |
| 85 | +Provide your administrative team with the ability to personalize their dashboard experience through a robust settings interface. This feature allows individual administrators and publishers to tailor the dashboard's appearance and behavior, including: |
| 86 | +- **Appearance Settings:** Adjust base themes (light/dark/system), accent colors, font families, text scale factors, and font weights. |
| 87 | +- **Language Selection:** Choose their preferred language for the dashboard interface. |
| 88 | +> **💡 Your Advantage:** Improve the productivity of your administrative team with a customizable dashboard. Personalized display and language options create a more efficient and user-friendly management experience. |
105 | 89 |
|
106 | | -For a complete guide on setting up your local environment, running the web dashboard, and understanding the configuration, please see the **[Local Setup Guide](https://flutter-news-app-full-source-code.github.io/docs/web-dashboard/local-setup/)** in our official documentation. |
| 90 | +</details> |
107 | 91 |
|
108 | | -Our documentation provides a detailed, step-by-step walkthrough to get you up and running smoothly. |
| 92 | +<details> |
| 93 | +<summary><strong>🏗️ Architecture & Technical Excellence</strong></summary> |
| 94 | + |
| 95 | +### 🖥️ Responsive Web UI |
| 96 | +Built with `flutter_adaptive_scaffold`, the dashboard offers a clean, responsive interface that works well on any screen size. |
| 97 | +> **↔️ Your Advantage:** Provides a consistent administrative experience on desktops, tablets, and mobile browsers. |
| 98 | +
|
| 99 | +--- |
| 100 | + |
| 101 | +### 🏗️ Clean & Modern Architecture |
| 102 | +Developed with best practices for a maintainable and scalable codebase: |
| 103 | +- **Flutter & Dart:** Modern web development. |
| 104 | +- **BLoC Pattern:** Predictable state management. |
| 105 | +- **GoRouter:** Well-structured navigation. |
| 106 | +> **📈 Your Advantage:** The dashboard is built on a clean, modern architecture that is easy to understand and maintain. |
109 | 107 |
|
110 | 108 | --- |
111 | 109 |
|
112 | | -## ✅ Testing |
| 110 | +### 🛠️ Flexible Environment Configuration |
| 111 | +Switch between development (in-memory data or local API) and production environments with a simple code change. |
| 112 | +> **🚀 Your Advantage:** This setup speeds up the development cycle and simplifies deployment. |
113 | 113 |
|
114 | | -This project aims for high test coverage to ensure quality and reliability. |
| 114 | +--- |
| 115 | + |
| 116 | +### 🌍 Localization Ready |
| 117 | +Fully internationalized with working English and Arabic localizations (`.arb` files). Adding more languages is straightforward. |
| 118 | +> **🌐 Your Advantage:** Adapt your dashboard for a global team. |
115 | 119 |
|
116 | | -* Run tests with: |
117 | | - ```bash |
118 | | - flutter test |
| 120 | +</details> |
| 121 | + |
| 122 | +## 🔑 License: Source-Available with a Free Trial |
| 123 | + |
| 124 | +Get started for free and purchase when you're ready to launch! |
| 125 | + |
| 126 | +- **TRY IT:** Download and explore the full source code under the PolyForm Free Trial [license](LICENSE). Perfect for evaluation. |
| 127 | +- **BUY IT:** One-time payment for a lifetime license to publish unlimited commercial apps. |
| 128 | +- **GET YOURS:** [**Purchase via GitHub Sponsors**](https://github.com/sponsors/flutter-news-app-full-source-code). |
| 129 | + |
| 130 | +> A single purchase provides a commercial license for every repository within the [Flutter News App Full Source Code Toolkit](https://github.com/flutter-news-app-full-source-code). No other purchases are needed. |
| 131 | +
|
| 132 | +## 🚀 Getting Started & Running Locally |
| 133 | + |
| 134 | +For a complete guide on setting up your local environment, running the web dashboard, and understanding the configuration, please see the **[Local Setup Guide](https://flutter-news-app-full-source-code.github.io/docs/web-dashboard/local-setup/)** in our official documentation. |
| 135 | + |
| 136 | +Our documentation provides a detailed, step-by-step walkthrough to get you up and running smoothly. |
0 commit comments