The Student Course Grades Report plugin (report_studentgrades) allows users to view and export their grade reports from ALL courses they are enrolled in as a single, comprehensive HTML document. Unlike traditional grade reports that show one course at a time, this plugin provides a holistic view of a student's academic performance across their entire enrollment history.
Key Features
- Single-file Export: Export all course grades for a student as one combined HTML file.
- Hierarchical Structure: Clear grade structure with categories and totals for each course.
- Deep Customization: 18+ color settings manageable via an admin settings page.
- Brand Integration: Seamless site logo integration.
- Word-Compatible: HTML output is perfectly formatted for easy MS Word document processing.
- RTL Support: Full support for Right-To-Left languages.
- Overall Summary: Displays global metrics like total courses enrolled.
- Privacy & Permissions: Strict grade visibility and permission checking, including integration with
local_parentportalfor linked parent accounts. - Print-Ready: Perfectly optimized print-friendly CSS styling.
- Admin Capabilities: Authorized roles can view any student's cross-course report.
- AI Performance Analysis: Dual-mode AI analysis (Instant on-screen modal & Asynchronous email reports).
- Exportable AI Reports: Instant print or PDF downloads of the on-screen AI feedback.
- Rate Limiting Cooldown: Built-in timers to prevent AI API spam and credit abuse.
Use Cases
This plugin is incredibly useful for various scenarios:
- Students preparing academic portfolios or applying for scholarships (needing a comprehensive grade report).
- Academic Advisors reviewing student progress across all courses.
- Parents viewing their child's complete academic record.
- Administrators needing end-of-semester comprehensive grade summaries.
- Transfer Students needing complete transcripts for external institutions.
AI-Powered Performance Analysis
The plugin features a robust, dual-mode AI analysis system to evaluate student grades and provide actionable, constructive academic feedback:
1. Instant On-Screen Analysis (Moodle Core AI)
- Real-time Feedback: Uses Moodle 4.5+'s native AI subsystem (
\core_ai\manager) to analyze grades. - Interactive Modal: Renders the feedback instantly inside a Moodle modal, complete with custom loaders.
- Export Controls: Includes on-screen buttons to Print the response or Download as PDF dynamically.
- Fallback Mode: Safely displays a simulated analysis on older Moodle sites where Core AI is not available.
2. Email-Based Analysis (n8n Webhook Integration)
- Asynchronous Execution: Sends complete, structured student grade data (including activities, categories, grades, and totals in JSON format) to an external webhook.
- Email Delivery: The external system (e.g., n8n) parses the grade profile, runs the LLM, and emails the PDF/text report to the student's email.
- Secure Auth: Uses bearer token authentication and custom request headers (
AuthorizationandX-N8N-Chat-Token) to verify webhook access.
3. Rate Limiting & Cooldown
- API Protection: Admins can define a custom cooldown period (in minutes) to limit how frequently a user can request AI analysis.
- State Tracking: Tracks the request timestamp per student using Moodle's user preferences.
Installation
- Download the plugin ZIP file.
- Extract the contents to
/path/to/moodle/report/studentgrades/. - Log in as an admin and visit Site Administration > Notifications to complete the database installation.
- Configure color settings at Site Administration > Plugins > Reports > Student Course Grades.
- Set up AI Analysis Settings (enable buttons, enter webhook URL/token, customize the prompt, and set cooldown minutes) on the same page.
Access Navigation
For Students
Students can access their comprehensive report from:
- Their User Profile Menu
- Direct access via the URL:
/report/studentgrades/index.php
For Teachers & Admins
Users with the appropriate capabilities can access any student's report by simply navigating to their profile and selecting the report tab.
Plugin Architecture
Note: This is a USER-LEVEL report plugin, meaning it operates at the user context level rather than the course context. It actively complements existing course-level grade reports by extracting and combining a cross-course perspective.
Comparison with Core Course Grade Reports
- Course Grade Report: One course → All students
- Student Course Grades Report: One student → All courses
Both plugins can coexist peacefully and serve entirely different purposes.
Privacy
Important: This plugin does not store any personal data. It strictly provides a read-only functionality to aggregate and export grade data already stored by Moodle's core grade system. All exported HTML files are generated dynamically on-demand and are never persistently stored or cached.
