Moodle Dashboard Update
In my last post, I spent some time detailing my dream for an external Moodle ecosystem devoted to admins. As a recap, there were three aspects I was focused on:
- Moodle Dashboard
- Moodle API Wrapper (Python)
- Third-party Moodle API Gateway
The Moodle dashboard would allow quick access to common functions such as enrolling/disenrolling students in courses, viewing a student's overall progress at a glance, listing students out by course, or seeing them all at once, and being able to send system messages as DMs to every student at once or individually. It is a modest set of abilities. This will probably expand over time.
The API wrapper is two-fold, it powers the dashboard at the core and will also be a standalone PyPi package for any developer to use. Again, this is not going to be a 1:1 feature parity with the Moodle API because there are entirely too many endpoints to wrap. Additionally, not all the API endpoints are useful in the context of an admin or teacher.
Finally, the most daunting task, is a standardized API gateway that normalizes API calls to Moodle that is actually RESTful and provides meaningful and expected responses that developers are able to rely on (this might require expanding the endpoints that the API Wrapper makes use of). I would additionally like to extend functionality into the dashboard that allows automations from other third-party services, such as payment gateways.
Introductions
And now with all of that out of the way, I'd like to formally introduce the suite of tools now known under the umbrella MDash name!

After much deliberation and back-and-forth, I have decided on the following names for each project under the MDash umbrella:
- MDash - the main web UI dashboard
- MDash Core - the Moodle API wrapper for Python
- MDash Gateway - the third-party API provider
Open Source, Always
MDash and MDash Gateway will be released to GitHub under GPLv3 licensing. MDash Core will be released to PyPi under MIT licensing for widest adoption.
My philosophy is very straightforward, software that is created open source should remain open source. GPLv3 aims to allow forks, but not allowing anyone to fork MDash and close source it. MIT for the PyPi package allows for the widest possible adoption and inclusion in closed source projects.
Project Statuses
MDash
The dashboard project is coming along at a decent pace and I'm aiming for a 0.1.0 release to GitHub alongside the initial commit in July. I'm mainly working on cleaning up the UI from all the times I decided to change my mind on a design choice 😅. Additionally, I am starting to add in settings and more options for the various Admin pages. I want to add more utility for teachers before the 0.1.0 release.

Documentation is slowly being put together as I continue working on the dashboard.
MDash Core
I am aiming for a July release for this as well to PyPi. There are some additional core functionality I would like to add before publishing to PyPi.
While I am developing the dashboard, all use cases that I encounter are being added as a baseline to Core. Something I decided on at the start was to name the functions a 1:1 of their Moodle API counterpart. So, if you need to access the Moodle endpoint core_user_get_users
then you will use the same MDash Core function MDash.core_user_get_users()
If the community finds additional useful use cases, those will also be added to the baseline functionality of Core. For some very niche things going on with MDash, I created functions that use a standard API request, but only changing very specific options (such as course visibility). Those will be named mdash_function_name_here()
to differentiate them.
A small change: I originally said I will be incorporating Redis functionality as a standard feature. This is going to change to Valkey because of the issues with Redis causing quite a stir going back and forth on where the project stands as open source or closed source. I don't do drama, so Redis is out.
MDash Gateway
Again, this is not a realized project yet. A lot of details still need to be worked out. I will provide a better roadmap soon.
Wrap Up
I'm excited to get the final touches in place for releasing MDash and MDash Core to the public soon enough. This has been a very awesome project to work on and I look forward to what the community might use it for once it is in the wild.