|
| 1 | +# 📊✨ ht_dashboard |
| 2 | + |
| 3 | + |
| 4 | +[](https://headlines-toolkit.github.io/ht-dashboard/) |
| 5 | +[](https://pub.dev/packages/very_good_analysis) |
| 6 | +[](https://polyformproject.org/licenses/free-trial/1.0.0) |
| 7 | + |
| 8 | +`ht_dashboard` is a Flutter web application designed as a comprehensive content management and administration interface for the [Headlines Toolkit](https://github.com/headlines-toolkit) ecosystem. It provides a powerful, intuitive platform for managing news content, application configurations, and user-related settings, complementing the [ht_main mobile app](https://github.com/headlines-toolkit/ht-main) and the [ht_api backend service](https://github.com/headlines-toolkit/ht-api). |
| 9 | + |
| 10 | +## ⭐ Features & Capabilities |
| 11 | + |
| 12 | +`ht_dashboard` offers a robust set of tools for efficient administration: |
| 13 | + |
| 14 | +#### 📰 **Comprehensive Content Management** |
| 15 | +Effortlessly manage all aspects of your news content, including: |
| 16 | +* **Headlines:** Create, edit, and delete news articles. |
| 17 | +* **Categories:** Organize and define news categories. |
| 18 | +* **Sources:** Maintain and update news sources. |
| 19 | +* **Benefit for you:** Centralized control over your content, ensuring accuracy and consistency across your news platform. ✍️ |
| 20 | + |
| 21 | +#### ⚙️ **Dynamic Application Configuration** |
| 22 | +Control the behavior and appearance of the `ht_main` mobile application remotely: |
| 23 | +* **User Preference Limits:** Set limits for followed items and saved headlines |
| 24 | + based on user roles (Guest, Authenticated, Premium). |
| 25 | +* **Ad Settings:** Configure ad frequency and placement intervals for |
| 26 | + different user tiers. |
| 27 | +* **In-App Prompts:** Manage the display frequency of account-related |
| 28 | + calls-to-action. |
| 29 | +* **Operational Status (Kill Switch):** Remotely enable maintenance mode or |
| 30 | + disable the app. |
| 31 | +* **Force Update:** Mandate or suggest app updates to users. |
| 32 | +* **Benefit for you:** Granular control over app features and monetization |
| 33 | + strategies without requiring app store updates. 🚀 |
| 34 | + |
| 35 | +#### 📊 **Intuitive User Interface** |
| 36 | +Built with Flutter, the dashboard provides a responsive and user-friendly |
| 37 | +experience across various web browsers and screen sizes. |
| 38 | +* **Benefit for you:** A modern, maintainable, and visually appealing |
| 39 | + interface for your administrative tasks. ✨ |
| 40 | + |
| 41 | +#### 🏗️ **Clean & Modern Architecture** |
| 42 | +Developed with best practices for a maintainable and scalable codebase: |
| 43 | +* **Flutter & Dart:** Cutting-edge web development. |
| 44 | +* **BLoC Pattern:** Predictable and robust state management. |
| 45 | +* **GoRouter:** Well-structured and powerful navigation. |
| 46 | +* **Adaptive UI:** Responsive layouts using `flutter_adaptive_scaffold` for |
| 47 | + optimal experience on different screen sizes. |
| 48 | +* **Benefit for you:** An easy-to-understand, extendable, and testable |
| 49 | + foundation for your project. 📈 |
| 50 | + |
| 51 | +#### 🌍 **Localization Ready** |
| 52 | +Fully internationalized with working English and Arabic localizations (`.arb` files). |
| 53 | +* **Benefit for you:** Easily adapt your dashboard for a global team. 🌐 |
| 54 | + |
| 55 | +--- |
| 56 | + |
| 57 | +## 🔑 Access and Licensing |
| 58 | + |
| 59 | +`ht_dashboard` is source-available as part of the Headlines Toolkit ecosystem. |
| 60 | + |
| 61 | +To acquire a commercial license for building unlimited news applications, please visit |
| 62 | +the [Headlines Toolkit GitHub organization page](https://github.com/headlines-toolkit) |
| 63 | +for more details. |
| 64 | + |
| 65 | +--- |
| 66 | + |
| 67 | +## 🚀 Getting Started |
| 68 | + |
| 69 | +1. **Ensure Flutter is installed.** (See [Flutter documentation](https://flutter.dev/docs/get-started/install)) |
| 70 | +2. **Clone the repository:** |
| 71 | + ```bash |
| 72 | + git clone https://github.com/headlines-toolkit/ht-dashboard.git |
| 73 | + cd ht-dashboard |
| 74 | + ``` |
| 75 | +3. **Get dependencies:** |
| 76 | + ```bash |
| 77 | + flutter pub get |
| 78 | + ``` |
| 79 | +4. **Run the app for web:** |
| 80 | + ```bash |
| 81 | + flutter run -d chrome |
| 82 | + # Or to run on a web server (e.g., for CORS testing with ht_api) |
| 83 | + # flutter run -d web-server --web-hostname 0.0.0.0 --web-port 3000 |
| 84 | + ``` |
| 85 | + *(Note: For full functionality, ensure the `ht_api` backend service is running and accessible. If running `ht_api` locally, ensure its `CORS_ALLOWED_ORIGIN` environment variable is configured to allow requests from the dashboard's origin, e.g., `http://localhost:3000` if using the web-server option.)* |
| 86 | +
|
| 87 | +--- |
| 88 | +
|
| 89 | +## ✅ Testing |
| 90 | +
|
| 91 | +This project aims for high test coverage to ensure quality and reliability. |
| 92 | +
|
| 93 | +* Run tests with: |
| 94 | + ```bash |
| 95 | + flutter test |
| 96 | + ``` |
| 97 | + *(Note: Ensure `very_good_cli` is activated: `dart pub global activate very_good_cli`)* |
0 commit comments