No description
Find a file
Kumi dc79a67a2b
All checks were successful
Build Debian Package / build-deb (push) Successful in 2m11s
feat: Add default path for config file
2025-07-16 14:40:00 +02:00
.forgejo/workflows revert: Update version in setup.py 2025-07-16 14:30:26 +02:00
examples/reports refactor: Make this a package 2025-07-15 19:56:52 +02:00
reportmonster feat: Add default path for config file 2025-07-16 14:40:00 +02:00
.gitignore chore: Kick out setup.py 2025-07-16 14:20:21 +02:00
LICENSE refactor: Make this a package 2025-07-15 19:56:52 +02:00
pyproject.toml chore: Kick out setup.py 2025-07-16 14:20:21 +02:00
README.md refactor: Make this a package 2025-07-15 19:56:52 +02:00
renovate.json Add renovate.json 2025-07-15 20:22:11 +00:00
setup.py revert: Restore setup.py... 2025-07-16 14:26:56 +02:00
stdeb.cfg feat: CI builds 2025-07-16 13:27:49 +02:00

ReportMonster

A tool for reporting and management of Moodle instances through direct database access.

Installation

pip install reportmonster

Quick Start

  1. Create a configuration file (settings.ini):
[Vessel moodle1]
Host = 10.0.0.1
Username = moodle_user
Password = password
Database = moodle
SSH = 0

[Vessel moodle2]
Host = 10.0.0.2
Username = moodle_user
Password = password
Database = moodle
SSH = 1
SSHUsername = ssh_user
SSHPassword = ssh_password
  1. Run a built-in report:
reportmonster run course_enrollment_counts --config settings.ini
  1. Create custom reports in a directory and run them:
reportmonster run my_custom_report --config settings.ini --report-path /path/to/custom/reports

Features

  • Connect to multiple Moodle instances
  • Generate reports on users, courses, and enrollments
  • Support for SSH tunneling for secure connections
  • Extensible report system

Creating Custom Reports

Custom reports can be created by extending the BaseReport class:

from reportmonster.reports.base import BaseReport

class MyCustomReport(BaseReport):
    def run(self):
        self.logger.info("Running my custom report")
        # Your report logic here

def run(config, args):
    report = MyCustomReport(config, args)
    report.run()

License

This project is licensed under the MIT License - see the LICENSE file for details.