Skip to content

emredav/resource-checker

Repository files navigation

ResourceChecker - Project Structure

  1. Create and Activate a Virtual Environment: It's recommended to use a virtual environment to manage project dependencies.

    • On Windows:
      python -m venv .venv
      .\.venv\Scripts\activate
    • On macOS/Linux:
      python3 -m venv .venv
      source .venv/bin/activate
  2. Install Dependencies: Install all the required packages listed in the requirements.txt file.

    pip install -r requirements.txt

Directory Structure

ResourceChecker/
├── main.py                           # entry point
├── test_structure.py                 # Validation test script
├── test_ui_elements.py               # UI Unit Tests
├── test_language.py                  # Language Unit Tests
├── requirements.txt                  # Project dependencies
├── language_config.json             # Language preference storage
├── logs/                            # Generated log files
├── core/                            # Core business logic modules
│   ├── __init__.py                  # Core package initialization
│   ├── language.py                  # Internationalization & language management
│   ├── system_info.py              # System monitoring & process tracking
│   ├── hardware.py                 # CPU/GPU temperature & hardware monitoring
│   ├── network.py                  # Network health checking & webhook notifications
│   ├── wifi_analyzer.py            # Wi-Fi analysis logic
│   ├── command_library.py          # Windows command library definition
│   └── windows_utils.py            # Windows specific utilities
├── gui/                            # User interface modules
│   ├── __init__.py                 # GUI package initialization
│   ├── main_window.py             # Main application window
│   ├── resource_monitor_window.py # Resource & temperature monitoring window
│   ├── network_settings_window.py # Network settings window
│   ├── stress_test_window.py      # CPU stress testing window
│   ├── system_info_window.py      # System specs window
│   ├── wifi_window.py             # Wi-Fi Analyzer window
│   ├── webhook_settings_window.py # Webhook settings window
│   └── windows_tools_window.py    # Windows Tools window
└── utils/                          # Utility modules
    ├── __init__.py                # Utils package initialization
    └── logging.py                 # Logging, file management & auto-logging

Running the Application

python main.py

Running Tests

python test_structure.py
python test_language.py
python test_ui_elements.py

Module Responsibilities

Core Modules (core/)

language.py

  • LanguageManager: Handles English/Turkish internationalization
  • LANGUAGE_DICT: Complete translation dictionary
  • Global instance: language_manager for application-wide use

system_info.py

  • SystemInfo: CPU, memory, and network usage collection
  • ProcessMonitor: Top CPU/network consuming process tracking

hardware.py

  • HardwareMonitor: Advanced CPU temperature reading with multiple fallback strategies
  • GPU monitoring: NVIDIA GPU usage and temperature via nvidia-smi (hidden console)
  • Cross-platform support: Windows-focused with Linux/Mac compatibility

network.py

  • NetworkHealthChecker: Multi-host network connectivity testing
  • WebhookConfig: Webhook configuration management (JSON-based)
  • WebhookNotifier: Microsoft Teams webhook notifications for alerts

GUI Modules (gui/)

main_window.py

  • SystemMonitorGUI: Main application interface
  • Features:
    • System monitoring (CPU, RAM, Network) with Toggleable Priority.
    • Top Apps Monitoring: Tracks up to 10 apps for CPU, RAM, and Network.
    • Dynamic Settings: Change monitoring intervals and app counts on the fly.
    • Network health connection testing & Webhook integrations.
  • Integration: Launches resource monitor and stress test windows

resource_monitor_window.py

  • ResourceTempMonitorWindow: Real-time hardware monitoring
  • Capabilities: CPU/GPU/RAM monitoring with temperature tracking
  • Logging: Configurable interval logging with file rotation

stress_test_window.py

  • CPUStressTestWindow: CPU stress testing with performance scoring
  • Features: Multi-core stress testing, performance metrics, duration tracking

system_info_window.py

  • SystemSpecsWindow: Detailed system specifications
  • Features: OS, CPU, RAM, GPU, Motherboard, Disk Usage
  • Privacy: Masked IP and MAC address visibility
  • Export: Copy-to-clipboard functionality

wifi_window.py

  • WifiWindow: Wi-Fi Analysis tool
  • Features: Real-time signal monitoring, Nearby network frequency scanner, Channel analysis, BSSID detection
  • Saved Networks: View saved profiles, Reveal Passwords, Export list, Delete profiles.

windows_tools_window.py

  • WindowsToolsWindow: System utilities and command runner
  • Features: Shortcuts to Task Manager, Device Manager, Services, etc.
  • Advanced Tools: Temp Cleaner, Path Environment Editor.
  • Console: Expanded with 100+ Commands in 6 Categories (Network, System, Hardware, Security, Disk, Dev).
  • Shortcuts: Hosts File, Firewall, Add/Remove Programs, etc. (Cleaned up redundant internal shortcuts).

Utility Modules (utils/)

logging.py

  • Logger: System log management with GUI integration
  • NetworkLogger: Network-specific logging
  • FileManager: File operations and export dialogs
  • AutoLogger: Automatic periodic log saving

Extra Info

  • For executable file:
  • pyinstaller --onefile -w -n ResourceChecker main.py
  • OUTPUT_PATH_FOR_EXE: dist\ResourceChecker.exe

About

A System monitoring application that tracks CPU, GPU, and RAM usage, performs network health checks, and provides detailed logging capabilities.

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages