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