A Chrome extension for efficiently downloading course materials from LearnWeb (University of Münster) with organized folder structure and bulk download capabilities.
Project Structure
InjectDownloader/
├── manifest.json
├── LICENSE
├── src/
├── assets/
├── docs/
src/
├── background/
│ └── background.js
├── content/
│ ├── content.js
│ └── content.css
├── popup/
│ ├── popup.html
│ ├── popup.js
│ └── popup.css
├── options/
│ ├── options.html
│ ├── options.js
│ └── options.css
└── utils/
assets/
└── icons/
├── icon16.png
├── icon48.png
└── icon128.png
docs/
└── README.md
-
Clone this repository or download the ZIP file.
git clone https://github.com/jkrumboe/InjectDownloader.git
-
Open your browser and navigate to chrome://extensions/ or your browser's extensions location.
-
Enable "Developer mode".
-
Click "Load unpacked" and select the directory where you cloned or extracted the repository.
-
Click on the extension icon in the browser's toolbar and pin this extension for better access to it.
-
Navigate to a LearnWeb course page.
- File Detection - Automatically finds all downloadable resources in a LearnWeb course.
- Bulk Download - Download multiple selected files or entire sections with fewer clicks.
- Organized by Sections: Files are grouped by their respective sections for easy navigation.
- Folder Support - Handles nested folder structures within course sections
- Download History - Tracks your recent downloads for quick reference (Last 5 downloads)
- Smart Filename Handling - Automatically removes German "Datei" suffixes and sanitizes special characters
- Configurable Settings - Customize folder structure, notifications, and download behavior
- Input validation and sanitization for all user data
- Secure file path handling to prevent directory traversal
- Proper error handling for all Chrome API calls
- Minimal required permissions
The extension follows a clean modular structure:
- Background Service Worker (
src/background/): Handles downloads, file processing, and Chrome API interactions - Content Scripts (
src/content/): Injected into LearnWeb pages to detect files and provide UI - Popup Interface (
src/popup/): Extension popup for quick access and download history - Options Page (
src/options/): Settings and configuration interface - Assets (
assets/): Icons and static resources
Contributions are welcome! Please open an issue or submit a pull request for any improvements or bug fixes.
This project is licensed under the MIT License. See the LICENSE file for details.