Documentation for xddcwebloader

Overview

xddcwebloader is a web-based download manager designed to facilitate XDCC file transfers. It features a ReactJS frontend coupled with a Spring Data REST backend.


Technologies Used

  • ReactJS: Powers the dynamic, client-side interface and interactive frontend components.
  • Spring Data REST: Provides a RESTful backend, likely exposing data models via REST endpoints with minimal boilerplate.
  • Docker / Docker-Compose: Offers containerized deployment for ease of setup and environment consistency.
  • Java + Spring Boot: The backend is a Java application utilizing Spring Boot—evidenced by references to Spring Boot 3 in recent releases.
  • Node.js (17+): Required for building the frontend (ReactJS ecosystem).
  • JDK (17+): Necessary for compiling and running the Java backend.
  • Build Tools: Uses Gradle (via build.gradle, settings.gradle, gradle/wrapper) for backend building and npm/package-lock along with webpack.config.js for frontend tooling.
  • Lombok: Indicated by lombok.config, streamlining Java code with annotations.

What It Does

  • Manage XDCC File Transfers: It streamlines XDCC downloads (peer-to-peer transfers often used in IRC bots) via a browser interface.
  • Bot & Server Configuration: Provides UI to define bots, servers, and download channels.
  • Download Monitoring: Offers a "Main Download View" (as seen in the first screenshot), likely listing active or queued transfer jobs.
  • Settings Panel: Accessible via the UI to adjust application-wide configurations.

Deployment & Usage

1. Docker Deployment

  • Supports both latest (CI builds) and version-tagged images for stable releases.
  • Use of Dockerfile and docker-compose.yml simplifies launch and scaling.

2. Local (Standalone JAR)

  • Users can download the .jar from GitHub releases and run it directly (Java runtime required).

3. IDE (Development)

  • Open in a Java IDE like IntelliJ.
  • Launch via XdccloaderApplication class for hot-reloads and local debugging.

After startup, access the UI via localhost:8080 or remote hostname/IP.


Potential Use Cases

  • IRC Enthusiasts: Simplifies downloading files from IRC XDCC bots without manual commands.
  • Network Administrators: Deploy centralized download GUI for users restricted from CLI.
  • Developers/Contributors: Acts as a practical stack combining ReactJS + Spring Data REST via Gradle/npm—as a reference for full-stack projects.
  • Portable Setup: Docker images make it suitable for ephemeral environments like CI runners, home servers, or VPS.

Repository Structure (Highlights)

  • .github/workflows/: CI pipelines (likely for building/testing/deployment).
  • Docker/, docker-compose.yml: Containerization configuration.
  • src/main: Java backend sources (Spring Boot).
  • package.json, webpack.config.js: React frontend setup.
  • CONTRIBUTING.md, LICENSE, README.md: Project metadata and guidelines.

Quick Reference Table

Feature Description
Frontend ReactJS application for user interaction
Backend Spring Boot API with Spring Data REST for data handling
Build Tools Gradle for backend, npm/webpack for frontend
Environment Java 17+, Node.js 17+
Deployment Via Docker or standalone JAR; IDE friendly
Use Case XDCC download management with UI; suited for IRC file transfers