Skip to content

Home System Feature

The home system provides the main dashboard view for the application, integrating GitHub issue management and project milestone tracking.

Overview

This feature displays: - News Browser: Markdown-rendered content with theme-aware styling - Milestone Calendar: Visual calendar showing project milestones and due dates - Issue List: Recent GitHub issues with status indicators and quick actions

Architecture

home_system/
    controller/
        home_controller.py      # Main controller coordinating all components
    view/
        home_view.py            # Main widget with news browser and calendar
    bound_subsystems/
        github_issue_service/   # GitHub API integration and caching
        issue_list/             # Issue list widget and controller
        milestone_calendar/     # Calendar widget for milestone display
    constants.py                # Timing and cache configuration
    paths.py                    # Path definitions for stylesheets and cache

Bound Subsystems

GitHub Issue Service

Handles all GitHub API interactions including: - SmartCacheManager: Lazy-loading cache with offline support - DynamicIssueForm: Template-based issue creation forms - IssueTemplateManager: Bug report and feature request templates

Issue List

Displays and manages the issue list widget: - IssueListController: Data loading and refresh logic with threading - IssueListWidget: Scrollable list with status filtering - IssueItemWidget: Individual issue card with type/priority icons

Milestone Calendar

Calendar widget for milestone visualization: - MilestoneCalendarWidget: QCalendarWidget with milestone highlighting - Displays milestone details in the news browser on date selection

Key Features

  • Offline Mode: Works with cached data when GitHub is unreachable
  • Lazy Loading: Issue details loaded on demand to minimize API calls
  • Smart Refresh: Configurable cache freshness with user confirmation dialogs
  • Template-based Issue Creation: Structured forms for bugs and features
  • Log File Attachment: Attach application logs to issue reports

Usage

The home system is instantiated by the main hub orchestration:

from src.main_hub.features.home_system.view.home_view import HomeView
from src.main_hub.features.home_system.controller.home_controller import HomeController

view = HomeView()
controller = HomeController(view)

Configuration

Cache and timing settings are centralized in constants.py: - Cache.DEFAULT_MAX_AGE_HOURS: Maximum cache age before refresh (default: 4 hours) - Cache.DEFAULT_REFRESH_THRESHOLD_MINUTES: Minimum time between refreshes (default: 30 min) - Timing.INITIAL_DATA_FETCH_DELAY_MS: Startup delay before auto-initialization