Skip to content

amackpro/xydra-manager

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Xydra

Xydra is a modern WPF-based download manager built using C# and the MVVM (Model–View–ViewModel) architectural pattern. It provides a clean user interface, real-time updates via WebSocket, theme customization, and structured download management.


🚀 Overview

Xydra is designed to be:

  • Cleanly structured
  • Scalable
  • Maintainable
  • Responsive
  • Architecturally sound (MVVM-compliant)

The project separates UI, business logic, and services to ensure clarity and extensibility.


✨ Features

  • Add and manage downloads
  • Real-time download status updates (WebSocket integration)
  • Detailed download view
  • Download scheduling
  • Light and Dark theme support
  • Centralized settings management
  • Delete confirmation dialog
  • Update download link dialog
  • Modular and extensible architecture

🏗 Project Structure

Xydra/ │ ├── Assets/ # Application icons and branding resources ├── Converters/ # WPF value converters ├── Models/ # Data models ├── Resources/ # Themes, styles, and color definitions ├── Services/ # Core services (WebSocket, Settings, Theme) ├── ViewModels/ # MVVM ViewModels and commands ├── Views/ # WPF Windows and dialogs │ ├── App.xaml # Application entry point ├── App.xaml.cs ├── Xydra.csproj # Project configuration └── app.manifest


🧠 Architecture

Xydra follows the MVVM pattern:

Models

Represent application data and domain entities.

ViewModels

Contain application logic and expose bindable properties to the UI.

  • MainViewModel
  • AddDownloadViewModel
  • DownloadDetailsViewModel
  • ViewModelBase
  • RelayCommand

Views

WPF Windows and dialogs responsible only for presentation.

  • MainWindow
  • AddDownloadWindow
  • DownloadDetailsWindow
  • SchedulerWindow
  • SettingsWindow
  • DeleteConfirmDialog
  • UpdateLinkDialog

Services

Encapsulate non-UI logic.

  • WebSocketService – Handles real-time communication.
  • SettingsService – Manages persistent application settings.
  • ThemeService – Controls dynamic theme switching.

🔌 WebSocket Integration

The application connects to a backend service via WebSocket.

Responsibilities handled by WebSocketService:

  • Connection management
  • Message handling
  • Event propagation to ViewModels

Ensure the backend WebSocket server is running before starting the application.


🎨 Theming

Themes are located inside: Resources/ ├── LightTheme.xaml ├── DarkTheme.xaml ├── Colors.xaml └── Styles.xaml

Themes can be switched dynamically through ThemeService.


🛠 Requirements

  • Windows 10 / Windows 11
  • .NET SDK (version specified in Xydra.csproj)
  • Visual Studio 2022 or later
  • WPF workload installed

🔧 Build & Run

  1. Clone or extract the repository.
  2. Open Xydra.csproj in Visual Studio.
  3. Restore NuGet packages if prompted.
  4. Build the solution.
  5. Run the project.

📌 Design Principles

  • Strict MVVM implementation
  • Separation of concerns
  • Service-oriented architecture
  • Clean command pattern usage
  • Extensible and modular structure

🔮 Future Improvements

  • Download queue prioritization
  • Bandwidth throttling
  • System tray integration
  • Auto-update support
  • Download analytics dashboard
  • Persistent download resume support

📄 License

MIT License - See LICENSE file for details.


👨‍💻 Author

Developed as part of the Xydra project.


If needed, this README can be extended with:

  • Screenshots
  • Backend API documentation
  • Contribution guidelines
  • Deployment instructions

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages