1. 26 Aug, 2025 1 commit
    • Stefy Lanza (nextime / spora )'s avatar
      feat: Add extraction management page and server time digital clock · 2966ca0e
      Stefy Lanza (nextime / spora ) authored
      - Add comprehensive extraction management page with drag-and-drop interface
      - Implement server time digital clock showing time from mbetterc machine
      - Create database models for extraction associations and game configuration
      - Add database migration for new tables with proper indexing
      - Implement REST API endpoints for extraction management
      - Add server time API endpoint for accurate time synchronization
      - Update navigation to include extraction management page
      - Add digital clock to all dashboard interfaces including cashier dashboard
      - Implement default outcome associations (WIN1, X, WIN2)
      - Add time limit configuration for UNDER/OVER outcomes
      - Update documentation with comprehensive extraction system details
      - Add troubleshooting section for extraction and clock features
      
      Features:
      - Drag-and-drop outcome association management
      - Multi-association support for outcomes
      - Trash bin removal functionality
      - Real-time server time display (24-hour format)
      - Cross-interface clock availability
      - Database persistence for all settings
      - Professional UI with responsive design
      - Error handling and graceful fallbacks
      2966ca0e
  2. 22 Aug, 2025 1 commit
    • Stefy Lanza (nextime / spora )'s avatar
      feat: Add comprehensive screen casting system with Chromecast integration · 40636f79
      Stefy Lanza (nextime / spora ) authored
      - Add ScreenCastComponent: New threaded component for screen capture and streaming
      - Implement FFmpeg-based cross-platform screen capture (Linux, Windows, macOS)
      - Add Chromecast device discovery and streaming using pychromecast
      - Create web-based screen cast interface at /screen_cast with real-time controls
      - Add HTTP streaming server for Chromecast-compatible video delivery
      - Integrate screen cast settings into web dashboard configuration panel
      - Add --no-screen-cast command line flag (enabled by default)
      - Update dependencies: ffmpeg-python>=0.2.0, pychromecast>=13.0.0
      
      New Files:
      - mbetterclient/core/screen_cast.py: Main ScreenCastComponent implementation
      - mbetterclient/web_dashboard/screen_cast_routes.py: Flask API routes
      - mbetterclient/web_dashboard/templates/dashboard/screen_cast.html: Web interface
      - test_screen_cast_integration.py: Integration test suite
      
      Key Features:
      - Real-time device discovery and status updates
      - Platform-specific audio/video input sources
      - Quality settings (resolution, frame rate, bitrate)
      - Network stream URL generation for Chromecast access
      - Proper component lifecycle management and cleanup
      - Message bus integration with WEB_ACTION support
      
      Documentation:
      - Updated README.md with screen casting features and usage
      - Added comprehensive CHANGELOG.md entry for v1.2.4
      - Extended DOCUMENTATION.md with complete screen casting guide
      
      Architecture Enhancement:
      - Extended from 4 to 5 threaded components
      - Added ScreenCastConfig to settings with database persistence
      - Enhanced web dashboard navigation with screen cast section
      40636f79
  3. 21 Aug, 2025 3 commits
    • Stefy Lanza (nextime / spora )'s avatar
      Fix API timestamp format bug and complete fixtures management system (v1.2.3.1) · da6b6529
      Stefy Lanza (nextime / spora ) authored
      - Fixed critical API synchronization bug: send Unix timestamp as long integer instead of ISO datetime string
      - Updated _get_last_fixture_timestamp() to return str(fixture_active_time) for proper server compatibility
      - Added comprehensive fixtures management system with dashboard integration
      - Created fixtures list and detail pages with Bootstrap styling and admin controls
      - Enhanced API client with proper timestamp handling and authentication for ZIP downloads
      - Updated documentation (README.md, CHANGELOG.md, DOCUMENTATION.md) with new features
      - Completed fixtures dashboard with real-time synchronization and administrative controls
      - Fixed server communication to use proper Unix timestamp format: '1755773200' instead of '2025-08-21T14:31:3'
      da6b6529
    • Stefy Lanza (nextime / spora )'s avatar
      Add matches and match_outcomes database tables with cross-platform PyInstaller persistence (v1.2.3) · 800411c8
      Stefy Lanza (nextime / spora ) authored
      - Added MatchModel and MatchOutcomeModel SQLAlchemy models adapted from mbetterd MySQL schema to SQLite
      - Created Migration_008_AddMatchTables with comprehensive indexing and foreign key constraints
      - Enhanced cross-platform directory handling for Windows (%APPDATA%), macOS (~/Library/Application Support), and Linux (~/.local/share)
      - Implemented persistent user data/config directories for PyInstaller executable compatibility
      - Added comprehensive test suite (test_persistent_dirs.py) for cross-platform directory functionality
      - Updated settings.py with robust error handling and fallback mechanisms for directory creation
      - Modified application.py and main.py to use consistent persistent directory approach
      - Updated documentation (README.md, CHANGELOG.md, DOCUMENTATION.md) with new features and cross-platform persistence details
      - Cleaned up test files and upload artifacts
      800411c8
    • Stefy Lanza (nextime / spora )'s avatar
      feat: Complete template management system with live switching and persistent storage · c344a65f
      Stefy Lanza (nextime / spora ) authored
      - Template Management System: Complete HTML overlay template upload, delete, and real-time editing
      - Persistent Template Storage: Cross-platform user template storage (AppData/Library/config)
      - Template Priority System: Uploaded templates override built-in templates with same filename
      - Custom URL Scheme Handler: overlay:// protocol enables uploaded templates to access overlay.js
      - Live Template Switching: Dashboard forms instantly switch to selected template with overlay updates
      - Template Code Viewer: View and copy template source code with syntax highlighting
      - File Watcher Integration: Automatic template reloading when files change on disk
      - Enhanced Template UI: Popup previews, source viewer, dynamic template selection
      
      Fixes:
      - API endpoint mismatch: Fixed /api/overlay/update vs /api/overlay URL inconsistency
      - Template selection: Fixed video test page template selection with auto .html extension
      - JavaScript accessibility: Custom overlay:// scheme allows uploaded templates to access overlay.js
      - MessageBuilder: Added missing overlay_update() method
      - Template reload logic: Load specific template from form instead of reloading current
      
      Technical details:
      - OverlayUrlSchemeHandler for JavaScript file serving via overlay:// protocol
      - Qt Resource Collections (QRC) integration for embedded JavaScript files
      - PyInstaller compatibility with persistent user data outside executable bundle
      - WebChannel communication enhanced between Qt application and JavaScript overlays
      - Cross-platform persistent storage paths with proper fallback mechanisms
      c344a65f
  4. 20 Aug, 2025 6 commits
    • Stefy Lanza (nextime / spora )'s avatar
      CRITICAL FIX: Resolve Qt video player display issues and implement clean interface · 9ea25a11
      Stefy Lanza (nextime / spora ) authored
      - FIXED: Qt video black screen issue - WindowStaysOnTopHint interference eliminated
      - FIXED: Database configuration persistence preventing always_on_top fix from taking effect
      - FIXED: Threading architecture - Qt player now runs properly on main thread
      - FIXED: Window behavior - main window goes behind other apps, overlay stays on top
      - ADDED: Clean minimal interface - removed all toolbars, menus, status bars, context menus
      - ADDED: Complete keyboard control - all functionality via shortcuts (F11, S, Space, M, Escape)
      - UPDATED: Documentation with critical fixes and resolution details
      - UPDATED: CHANGELOG.md with version 1.2.1 improvements
      - UPDATED: README.md with latest critical fixes and interface changes
      
      This resolves the core video display problem and achieves complete functional
      parity between main.py and test_video_debug.py with professional interface.
      9ea25a11
    • Stefy Lanza (nextime / spora )'s avatar
      removed useless videos · 72a87e4b
      Stefy Lanza (nextime / spora ) authored
      72a87e4b
    • Stefy Lanza (nextime / spora )'s avatar
      Fix Qt player overlay window positioning · 0959c74e
      Stefy Lanza (nextime / spora ) authored
      - Add window positioning synchronization for separate overlay windows
      - Overlay window now correctly appears over main video player window
      - Add move and resize event handlers to keep windows synchronized
      - Add proper overlay window cleanup in closeEvent
      - Separate top-level window approach successfully resolves Qt rendering conflicts
      0959c74e
    • Stefy Lanza (nextime / spora )'s avatar
      Fix Qt player overlay transparency: Allow video to show through WebEngine overlay · 54d1a139
      Stefy Lanza (nextime / spora ) authored
      - Enhanced QWebEngineView transparency configuration without desktop bleed-through
      - Modified overlay HTML structure to remove container wrapper that was blocking video
      - Improved overlay positioning as child widget instead of layout widget
      - Added explicit transparent background CSS for HTML and body elements
      - Fixed overlay container to ensure no background interferes with video display
      - Maintained overlay functionality while allowing video content to be visible underneath
      
      This should resolve the issue where videos were playing but hidden behind the overlay widget.
      54d1a139
    • Stefy Lanza (nextime / spora )'s avatar
      Fix video test page: Remove web player modal and fix Qt player file paths · bed48471
      Stefy Lanza (nextime / spora ) authored
      - Removed web video player modal from video test page
      - Updated instructions to clarify videos play in Qt player window
      - Changed button text to 'Play in Qt Player' for clarity
      - Added warning alert explaining Qt player window usage
      - Enhanced success message to guide users to Qt player window
      - Fixed Qt player file path handling for relative paths from uploads directory
      - Added file existence verification before attempting to play video
      - Improved error handling for missing video files with overlay display
      
      Videos uploaded through web interface now properly play in Qt player window instead of web browser.
      bed48471
    • Stefy Lanza (nextime / spora )'s avatar
      v1.2.0: Qt Player Overlay System Enhancement and Complete Shutdown Fix · 11265546
      Stefy Lanza (nextime / spora ) authored
      - Implemented dual overlay system with command-line switchable options (--overlay-type webengine/native)
      - Fixed critical Qt player window close to properly exit entire application
      - Restored and enhanced Ctrl+C signal handling functionality
      - Added admin-only quit button to web dashboard with guaranteed force termination
      - Fixed background thread management with proper daemon threads
      - Resolved WebEngine JavaScript timing errors with enhanced DOM readiness checks
      - Eliminated desktop transparency bleed-through issues
      - Removed video controls for clean overlay-only interface
      - Prevented circular dependency deadlocks in shutdown process
      - Enhanced Qt threading architecture and signal integration
      - Updated comprehensive documentation and changelog
      
      Technical fixes:
      - closeEvent() in Qt player now allows proper Qt shutdown sequence
      - signal_handler() enhanced to detect Qt applications and use qt_app.quit()
      - ThreadManager modified to set daemon=True for all background threads
      - Added /api/system/shutdown endpoint with force-exit mechanism using os._exit(0)
      - Enhanced aboutToQuit signal handling for proper lifecycle management
      - WebEngine overlay safety improved with comprehensive error handling
      11265546
  5. 19 Aug, 2025 6 commits
    • Stefy Lanza (nextime / spora )'s avatar
      Removed qt5 and add qt6 · 83fb8e59
      Stefy Lanza (nextime / spora ) authored
      83fb8e59
    • Stefy Lanza (nextime / spora )'s avatar
      Finalized user creation · 862b21ba
      Stefy Lanza (nextime / spora ) authored
      862b21ba
    • Stefy Lanza (nextime / spora )'s avatar
      Fix user management interface · 1c13c949
      Stefy Lanza (nextime / spora ) authored
      - Remove 'user created successfully' alert after user creation
      - Replace edit user placeholder alert with fully functional edit modal
      - Add update_user() method to AuthManager with validation
      - Add update_user() method to DashboardAPI class
      - Add PUT /api/users/{user_id} route for user updates
      - Edit modal includes form validation and error handling
      - Pre-populates current user data in edit form
      - Supports updating username, email, password (optional), and admin status
      - Validates username/email uniqueness before saving
      - Automatically refreshes user list after successful updates
      
      User management interface is now fully functional with create, edit, and delete operations.
      1c13c949
    • Stefy Lanza (nextime / spora )'s avatar
      Fix user creation frontend - replace placeholder alerts with actual API calls · 7ab1fbf6
      Stefy Lanza (nextime / spora ) authored
      - Replace alert placeholders with proper fetch() calls to /api/users endpoint
      - Add proper error handling for user creation and deletion
      - Enhanced user list loading with error handling
      - Users can now be actually created, deleted, and refreshed properly
      - Form resets after successful user creation
      - Modal closes automatically after successful creation
      
      This completes the user management functionality that was showing alerts
      instead of performing actual database operations.
      7ab1fbf6
    • Stefy Lanza (nextime / spora )'s avatar
      Version 1.1.0: Major stability and usability improvements · de923e4b
      Stefy Lanza (nextime / spora ) authored
      - Fixed critical Ctrl+C signal handler - now exits gracefully with single press
      - Fixed API token display issue - tokens now properly show in modal dialog after creation
      - Fixed user creation and management - users now save properly and display immediately
      - Fixed SQLAlchemy session binding issues causing data access errors
      - Added permanent token deletion functionality (revoke now deletes completely)
      - Added missing ConfigManager.update_section() method for web dashboard settings
      - Enhanced frontend with professional modal dialogs and proper error handling
      - Optimized shutdown process with reduced timeouts for faster exit
      - Updated comprehensive documentation with troubleshooting guide
      - Added detailed CHANGELOG.md documenting all improvements
      
      Technical improvements:
      - All database operations now extract data before session closure
      - Enhanced signal handling flow: signal → shutdown event → cleanup → exit
      - Section-based configuration management with nested support
      - Improved session lifecycle management across all components
      - Professional UI enhancements with Bootstrap modal integration
      de923e4b
    • Stefy Lanza (nextime / spora )'s avatar
      Initial release of MbetterClient v1.0.0 · cd20c430
      Stefy Lanza (nextime / spora ) authored
      - Complete cross-platform multimedia client application
      - PyQt5 video player with dynamic overlay templates
      - Flask web dashboard with JWT authentication
      - REST API client with configurable endpoints
      - Multi-threaded architecture with Queue-based messaging
      - SQLite database with automatic migrations
      - PyInstaller build configuration for executables
      - Comprehensive documentation and build scripts
      - Offline-first design with local asset fallbacks
      cd20c430