benoit-bremaud / safebase-simplified

Projet Safebase simplifié
MIT License
0 stars 0 forks source link

feature: Enhance Dashboard with Comprehensive Metrics and Interactive Features #7

Open benoit-bremaud opened 1 month ago

benoit-bremaud commented 1 month ago

Description:

Summary

The current dashboard in the SafeBase project only displays a simple table of database backups. To create a more user-friendly and holistic overview, the dashboard needs to be enhanced with comprehensive metrics, visual components (charts, status indicators), and interactive features. The new dashboard will include sections for system overview, backup health, database metrics, and recent alerts, initially using mock data, and eventually integrating real-time data from the backend API.

Context

A fully functional and interactive dashboard will allow users to monitor the state of databases, understand backup statuses at a glance, view system health metrics, and act on alerts quickly. This will improve user experience and provide a quick, visual understanding of the system's status.

Objectives

Acceptance Criteria

Tasks

  1. Create a new branch for the feature

    • Branch name: feature/issue-[issue-number]-enhance-dashboard
  2. Restructure the Dashboard Layout

    • [ ] Use Angular Material’s mat-grid-list to create a responsive grid.
    • [ ] Divide the dashboard into sections:
      • System Overview: Total databases, last backup time, number of backups.
      • Backup Health: A pie chart displaying successful vs. failed backups.
      • Database Metrics: CPU usage, memory usage, and storage status for each database.
      • Recent Alerts/Notifications: List of recent alerts.
  3. Integrate Mock Data

    • [ ] Populate the dashboard with mock data for all widgets (charts, lists, and metrics).
    • [ ] Prepare logic in dashboard.component.ts to be ready for API data integration in future tasks.
  4. Add Charts for Visual Representation

    • [ ] Use ng2-charts or a similar library to add a pie chart for backup health.
    • [ ] Display a bar or line chart for other metrics as needed (e.g., CPU usage over time).
  5. Create Interactive Components

    • [ ] Add action buttons for initiating backups, navigating to detailed views, and other quick actions.
    • [ ] Make the dashboard responsive to user interactions (e.g., display messages when no data is available).
  6. Style the Dashboard

    • [ ] Use Angular Material components (mat-card, mat-grid-list) for a modern and consistent design.
    • [ ] Ensure the layout is responsive and adapts well to different screen sizes.
  7. Testing

    • [ ] Write unit tests for each new component added to the dashboard.
    • [ ] Perform UI tests to ensure that the dashboard displays data correctly and responds to user interactions.
  8. Documentation

    • [ ] Document all new components and services added to the dashboard.
    • [ ] Update any existing documentation to reflect the new structure and functionalities.
  9. Create a Commit Following the Naming Convention

    • [ ] Format: feat(dashboard): enhance dashboard with metrics and charts
    • [ ] Follow the template and best practices outlined in Commit_Naming_Template.md.
  10. Submit a Pull Request

    • [ ] PR Title: feat: enhance dashboard with comprehensive metrics and interactive features
    • [ ] PR Description:
      • Include a summary of changes, list of modified components, and related issue references.
      • Ensure the checklist in the PR template is followed before submission.

Resources


Branch Name feature/issue-enhance-dashboard