Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Initial implementation of ASD Dashboard with customizable boards, views and widgets #1

Open
wants to merge 124 commits into
base: main
Choose a base branch
from

Conversation

kwuite
Copy link
Contributor

@kwuite kwuite commented Oct 15, 2024

This is the first major PR to the main branch, introducing the core implementation of the ASD-dashboard project. This project is designed as a Progressive Web App (PWA) to facilitate ⚡ Accelerated Software Development and 🚀 Automated Service Deployment through a dynamic, widget-based dashboard.

Key Features:

  • Boards and Views: Allows users to create and manage multiple boards, each containing several views. Views help organize widgets into distinct configurations for easy navigation and customization.
  • Widgets: Each widget is an iframe that can load external services or APIs. Widgets are resizable, movable, and their state (size and position) is persistently stored in localStorage.
  • Responsive Design: The dashboard uses CSS Grid to provide a flexible, responsive layout that adapts to various screen sizes, including support for wide and ultra-wide monitors.
  • Configuration: The dashboard can be configured via a config.json file, which includes settings like widget positions, auto-refresh intervals, and service URLs. The configuration can be loaded from local or remote sources.
  • LocalStorage Integration: Stores user preferences and widget states, allowing for persistent sessions across page reloads.
  • Service Worker: Enables offline functionality, caching essential resources, and enhancing the app's performance as a PWA.
  • Custom Logger: Introduced a logger for enhanced debugging capabilities without cluttering the production console.
  • Testing with Playwright: Automated UI tests have been implemented using Playwright, ensuring stability across key features. Continuous integration is set up via GitHub Actions.

Other Changes:

  • UI Improvements: Implemented a polished UI with draggable, resizable widgets. Features like fullscreen toggling, dynamic grid resizing, and menu management for widgets have been added for better user experience.
  • Initial PWA Setup: The core structure of the dashboard as a PWA, including service worker integration for offline capabilities.
  • File Structure: Organized the project into a clear structure, moving files to a dedicated src directory for better maintainability.

This PR sets the foundation for the ASD-dashboard project, introducing the essential features and core architecture for future development. It's the first complete implementation that can be used for the core ASD project purpose.

kwuite added 30 commits October 1, 2024 16:43
Bug: Widget size is only saved after add widget but the resize event is not triggered after resizing.
…eader.

Resizing still only works after creation. I thought it was fixed :S
…eproducible enviroment.

Buggy: Add widget and order; Toggle boardboard ^^;order by name/url?:S
…hich prevents unnecessary event triggers when moving between child elements (e.g., between buttons inside the widget-menu).
…over all scenario's for showing and hiding both resize menu's
kwuite added 30 commits October 13, 2024 21:09
2 bugs, 1 the max size of my resizeHandler test lost 1 col and 1 row. The resize-block logic does not save after resizing; regression.
… go back to the last view/board after page refresh
…. Running 3 browsers makes them flaky on the local host.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant