Correctional Facility Moodle Development

Correctional Facility Moodle Development

by Jade Korosec -
Number of replies: 20

I am brand new here. A skilled Wordpress developer that has no experience in Moodle at all. Please be patient and read the intro as to why I am delving into the land of LMS.

'We operate a Not-For-Profit creative training studio inside a male high-security prison where we work with prisoner’s intent on turning their lives around. As part of our socially conscious model of business, we dedicate our time to the education and rehabilitation of prisoners in an effort to break the cycle of reoffending. The results of our program work, with a drastic reduction in re-offending observed for those who participate.'

We have one skilled inmate who is creating the course content with the guidance of our studio managers and my job is to enhance the UI and UX of Moodle for the inmates.

Moodle is operating on Xampp local server inside the prison and I am developing on a Linux server. We are both running the latest version of Moodle 3.10.2. I have managed to instruct the inmates to export the required files and have since imported the sql database and updated the config.php file so that I can now view the basic course structure they have created.

As this project proceeds there will be numerous occasions of going back and forth between the local and live server as we develop the interface and course content and I am trying to determine the best workflow for this.

I have not transferred 'moodle' or 'moodle_data' files to my server at this stage and this brings me to my question (sorry I took so long to get here).

I am happy to work without seeing course content (images, videos etc) and would like to know if I can proceed with development without having the moodle data file contents transferred to my server (i.e what are the implications of this?)

Also, as my job is primarily related to the appearance and layout, am I best to use a default theme and customise css, storing all required files within the theme folder so that all I am sending back to the prison is an updated .sql file and theme folder for them to import?

As you can appreciate the file structure of Moodle is remarkably different to Wordpress so first and foremost I need to get my head around that to develop the workflow for our predicament.

Please note that the correctional facility has absolutely no internet connection so we are sharing files over external drives.

Average of ratings: -
In reply to Jade Korosec

Re: Correctional Facility Moodle Development

by Visvanath Ratnaweera -
Picture of Particularly helpful Moodlers Picture of Translators
Hi

The process of copying a Moodle instance is documented under https://docs.moodle.org/310/en/Moodle_migration. Basically you take a Moodle https://docs.moodle.org/310/en/Site_backup and https://docs.moodle.org/310/en/Site_restore at the target. Notice that this wipes the target instance. There is no way of incremental updating.

In detail, you'll see that three things are copied over: Moodle code, the moodledata directory tree - moodledata/filedir and /lang to be specific - and the database. They should be taken from the source in a consistent state. Your users won't be able to do any useful work, say if moodledata/filedir is from an earlier transfer.

Talking of prisons, see https://moodlebox.net/en/news/caen-detention-centre/. The MoodleBox https://moodlebox.net/ is a neat packaging of Moodle in a Raspbery Pi, which makes it a a very efficient Moodle server with a built-in wireless access point. Pl. note that MoodleBox is a separate project from moodle.org with its own community.
In reply to Visvanath Ratnaweera

Re: Correctional Facility Moodle Development

by Jade Korosec -
Thank you Visvanath. Yes I understand that the users inside will not be able to use the system whilst I am working on it.

I also understand the migration process and the three required elements to complete this.

Visvanath, can you confirm that the moodle code (apart from the theme directory) is static. So if we are running the same versions of Moodle, the moodle code will be identical on both our servers. I am trying to eliminate the amount of files that need to be transferred each time.
In reply to Jade Korosec

Re: Correctional Facility Moodle Development

by Visvanath Ratnaweera -
Picture of Particularly helpful Moodlers Picture of Translators
> can you confirm that the moodle code (apart from the theme directory) is static

Oh, yes (unlike WP ;) ).

The exceptions are:
- add-ons. Anything not in the Moodle core, need to be copied over
- the config.php file in the two instances will be different

As a safety measure, you can make the Moodle code tree read-only for the web server.

Edit: You need to repeat the process a couple of times to optimize it. What I don't understand is, why you want to minimize file copying. Didn't you say you transfer data in some storage media? A protocol like rsync, even in the same computer, will copy data incrementally. Or, does the (Windows) XAMPP force you to copy files manually? I wonder whether the "packaging" of MoodleBox will help the walk between the restricted facility and your office. In that case there will be nill difference between the two Moodle instances. You know, you can even clone the full SD card? Lot of data but easy to handle.
In reply to Visvanath Ratnaweera

Re: Correctional Facility Moodle Development

by Jade Korosec -

Thank you for confirming that. It was what I suspected after digging around today.

Unfortunately I work remotely, quite some distance from the studio and prison facility so external drives would need to be posted. This will become an expensive and time consuming process for us and allow too much 'down-time' between hand overs.

I was hoping that the 'filedir' folder in moddledata was a little more straightforward and we would be able to simply transfer the new files/ subfolders back and forth, meaning that each time we were transferring sql database, theme folder and updated folders in filedir. But it appears the file storing system is quite complex and the entire filedir folder would need to be copied each time to ensure new directories and subdirectories are not missed. At present this folder is almost 70GB.

I really appreciate your responses today in helping me discover the best way I can manage this project. I will look into MoodleBox but I fear it will have similar limitations with me working remotely.





In reply to Jade Korosec

Re: Correctional Facility Moodle Development

by Visvanath Ratnaweera -
Picture of Particularly helpful Moodlers Picture of Translators
> I was hoping that the 'filedir' folder in moddledata was a little more straightforward

It looks jumbled, but the concept is easy. Each of filedir/ab/cd/efgh.... is a unique file uploaded and still used by Moodle. So if you compare two states of the same Moodle instance, the files Moodle does not need any more are gone, the newly uploaded files have been added.

The "difficult" thing to understand is, if a newly uploaded file has the same content of an existing file, no new filedir/ab/cd/efgh.. is created - because the path corresponds to a content hash.

> and we would be able to simply transfer the new files/ subfolders back and forth, meaning that each time we were transferring sql database, theme folder and updated folders in filedir.

Sure, you can do that: 'rsync -av --delete SOURCE TARGET'.

P.S. I don't understand the "theme folder" you mentioned. Themes come under moodle/theme and become a part of the code.

P.P.S. Still I don't understand, without the Internet, without physical media transfer, how you plan to copy Moodle back and forth?
In reply to Visvanath Ratnaweera

Re: Correctional Facility Moodle Development

by Jade Korosec -
Hi Visvanath,

Thank you for helping me to understand the filedir folder.

I was referring to the subfolders within the theme folder that contain all the theme source code. I now know that I can transfer this to the prison, with an export of theme settings so that they can replicate the style I have created.

As for the P.P.S this is exactly the issue I have been trying to get my head around and it looks like I may not be able to have a mirror copy of the system on my live server, but instead a development model where I make theme changes and develop new courses to export and send to them with instructions. The original prison Moodle system was sent to me via Dropbox after being exported on a hard drive. I now realise that we cannot continue to do this back and forth without course overrides and significant downtime.

Thank you again for all your time yesterday.

Regards,
Jade
In reply to Jade Korosec

Re: Correctional Facility Moodle Development

by Visvanath Ratnaweera -
Picture of Particularly helpful Moodlers Picture of Translators
> I was referring to the subfolders within the theme folder that contain all the theme source code.

If they are called boost and classic, then they are part of the core Moodle code. Moodle follows an intensive plug-in architecture. A large part of the core Moodle itself is broken down to plug-ins. But they are still "core". You can extend Moodle beyond that by installing _additional_ plug-ins https://moodle.org/plugins. They may go anywhere moodle/theme, ./mod, ./block,question/type, question/behaviour, and many more.

But it is enough to install them once. Say in your original. Once it overwrites the copy, the whole bunch has moved en-block.

I know, it is a vertical learning curve, you joined yesterday, right? Initially, I would keep the number of additional plug-ins to an absolute minimum. Once your original starts to grow, they will automatically migrate to the copy.

Yes, the second topic, how this Moodle walk back and forth is your problem. So far I know only that neither Internet nor physical transport of media is possible. The only method that comes to my mind is very ancient, from the times of Ali Baba and the Forty Thieves.
wink

Average of ratings: Useful (1)
In reply to Jade Korosec

Re: Correctional Facility Moodle Development

by Brendon Hatcher -
An interesting project!

I'd like to approach this from a workflow point of view, and then from a technical one.

In the early phases of the project, you'll have a default Moodle installation with a default theme.
You can select from a variety of themes. Some just change the presentation, and some have some impact on functionality (e.g. providing the ability to add new menus).
If you choose one that just does presentation, you can do the tweaks using CSS overrides.
Then, your in-prison person could simply install the theme, and follow a short and simple set of instructions to do the setting changes and copy over the CSS overrides.

At the next stage of the project, you'll start to explore functional changes, such as adding blocks, using quizzes and other modules etc.
You may find that some of these are not to your liking from a presentation point of view.
You can sync with the in-prison person by doing course imports and exports (only during development, once someone starts doing the course, this process would not work).
So, they could make a course, export it and give it to you.
You then import it and make further CSS override tweaks.
You give them back the updated CSS file (and, possibly, a few setting changes for the blocks and modules).

At the next stage, they start loading content.
Again, you can take a look by using course imports and exports.
You may then provide guidance on content creation in terms of styling.
I use iSpring converter to create a set of powerpoint slides and then convert them to an HTML 5 animation for content presentation.
This approach would also work for you, because you could bounce the powerpoint back and forth until happy, and then export it.

Once the courses are open to users, then the back and forth gets harder.
They could export courses for you to review, but you couldn't easily give them back changed files (with the exception of the CSS overrides).

The phased approach above presents things in what I consider to be the correct order to avoid endless design loops - default build, then theme, then overrides, then blocks, modules and features, then course content. It also reduces the need to decide on which files to send, and how to re-integrate everything.

Let me know if there are gaps in my proposed workflow and I'll help to plug them.

You haven't mentioned the content, but there is a HUGE resource for providing an offline internet suitable for internet-poor environments. It can run in parallel to Moodle on a local server. See https://worldpossible.org/. This website focuses on the device, but the content is also available without using their device. Demo content is here: https://rachelfriends.org/previews/rachelplus-en/ and other hardware options here: http://community.rachelfriends.org/c/support/other-hardware/10

Regards
Brendon
Average of ratings: Useful (1)
In reply to Brendon Hatcher

Re: Correctional Facility Moodle Development

by Jade Korosec -
Hi Brendon, Thank you for taking the time to present your suggested workflow, I really appreciate it.

You have confirmed for me the place I ended up yesterday evening after spending the day in Moodle land. I had installed Adaptable theme to see extended capabilities when adding a theme and have noted that I can export and import theme settings, as well as transfer my css overrides, which certainly eliminates one pain point in the process. I would be grateful for any theme suggestions you may have, or site recommendations for purchasing Premium themes.

Thank you for introducing the blocks and modules. I had noted these, but wanted to conquer the theme first. Great to know that I can add additional functionality and send back to them once I have optimised it. And again, thank you for confirming that once I send back a course optimised that it becomes difficult to do any further changes due to overriding students work etc.

Initially I was envisioning that I would have a mirror copy of the system on my live server, however it appears that this is certainly not the best approach due to file transfer sizes, the complexity of the filedir folder and also downtime in the prison while I am developing. I really like your suggestion of sending them pieces at a time, along with instructions as ultimately this means a number of the inmates will become quite skilled in Moodle, thus adding to our educational model.

As for course content, this is currently being produced by 2 inmates as well as one member of the design firm on the outside. It is rather rudimentary and consists mainly of screencasts. I will certainly present to team your suggestion of iSpring converter as this will give us more flexibility when creating content. I may have more questions on this in the future.

Hardware inside is not an issue. Everything is stored on a local network... or are you referring to the portability of hardware should we wish to move it to another prison?

Regards,
Jade
In reply to Jade Korosec

Re: Correctional Facility Moodle Development

by Jade Korosec -
Brendon, can you confirm for me when the sql database needs to be sent. I would prefer to avoid transferring this each time as I am assuming that students results are stored in there. Is it possible to export Moodle framework settings to the prison without the need for transferring the database?
In reply to Jade Korosec

Re: Correctional Facility Moodle Development

by Brendon Hatcher -
Hi again

The courses are transferrable as zip files that contain all the content, settings and sql data.
The override css file is transferrable as a text file for overwite or copy and paste.
Block, module, moodle core and other settings are not easily transferrable, but my approach would either be
- screenshots of the settings for the in-prison team to manually replicate
- a specification spreadsheet with the field labels and values, again for them to manually replicate.
I wouldn't try to move sql back and forth, because the relational database structure is very complex.

I was thinking about whole-system review. It would be really good if you had the ability to receive a full working copy of the Moodle for review and backup.
I Use Akeeba Solo for backing up and moving PHP applications. https://www.akeeba.com/products/akeeba-solo.html.
It backups up the files and the database and comes with an installer routine.
The prison team would make a backup, put the zip on the disk and send it to you.
You would use the installer to unpack the zip, putting the files in the correct location and importing the sql tables to your mysql server.
This would definitely be a one-way transfer from prison to you, with no possibility of merging you changes back to prison.

The World Possible application that I mentioned would give you 500,000 files on the local PC, including the whole of Wikipedia and Khan Academy, as well as lots of other resources https://rachelfriends.org/previews/rachelplus-en/.

With regard to course development, it is important to understand the whole learning and testing experience offered by Moodle before you proceed too far with content development. That way, you can match content development to the features (and limitations) of the moodle system. So, you need to be really clear on lesson, book, file, quiz, etc, and then plan and build accordingly. If your team has not built Learning Management Systems and online learning before, there are some really key foundational concepts that would be useful to understand.

I have some experience at the whole stack, from server, moodle installation, configuration, instructional design, materials development etc, and I'm happy to discuss those with you to help you develop the big picture. If you want to do that, send me a private message and we'll arrange a zoom session.

Regards
Brendon
Average of ratings: Useful (1)
In reply to Brendon Hatcher

Re: Correctional Facility Moodle Development

by Brendon Hatcher -
Also, just in case you haven't encountered these yet, there are others ways to set up a course besides developing it from scratch yourself.

1. Moodle import files - some course developers make their courses available for download (free or paid), and you just import them and then tweak them.

2. Packaging formats that allow course import no matter what platform they were developed on, or for. Common formats are SCORM, xAPI, tincan. Again, you just obtain the course, and then import it.
In reply to Brendon Hatcher

Re: Correctional Facility Moodle Development

by Melanie Scott -
I was lurking with no intention of commenting...used to work in corrections...so nosy. BUT this post made me decide to say something...I know Brendon is talking about purchased/shared content...this is more on the build it yourself side...

There is a new(ish) core module (I say new because it has only been in core for a couple versions, if you count 3.10...vs SCORM and Quiz, etc, which have been around...forever?) called H5P. Tracking can be a bit scatty but it is easier to build than SCORM, xAPI or TinCan, which all require either external software (like iSpring) or crazy programmer skills (which I do not have and do not want). You can include video, questions within the video and terrific branching scenarios (where you can also use video...I'm remembering NIC created a very complex PREA module years ago with some impressive branching that was built with external software that you could duplicate the basics of in h5p, of course, that was a staff module, not for inmates, but the idea is similar).

They are relatively easy to build, modify and use. And do not require an extra upload. As I said, tracking is not spectacular but can probably be worked around with your captive audience (mine is likely larger and very mobile, which is why the tracking is problematic to me...)
In reply to Melanie Scott

Re: Correctional Facility Moodle Development

by Brendon Hatcher -
I think H5P is really powerful. Just clarifying that it is a format (like, errr....ummm....Flash) so you can use lots of tools to generate content, including the H5P site. However, unless there is an offline app that I am unaware of, the in-prision developers won't be able to generate H5P content.

There is a workaround, sort of: https://h5p.org/node/144888
In reply to Brendon Hatcher

Re: offline app for generating H5P content

by Helen Foster -
Picture of Core developers Picture of Documentation writers Picture of Moodle HQ Picture of Particularly helpful Moodlers Picture of Plugin developers Picture of Testers Picture of Translators

Re. an offline app for generating H5P content, there is Lumi Education, as mentioned in https://h5p.org/node/737700

Average of ratings: Useful (1)
In reply to Helen Foster

Re: offline app for generating H5P content

by Brendon Hatcher -
The editor is desktop-based, but its content types are still pulled from the web.
I installed it, then turned off my internet.
I was able to start a new H5P, but I couldn't add any content types.
So, they would need to find a way to get the installer and all the content type modules for offline install.
Average of ratings: Useful (2)
In reply to Brendon Hatcher

Re: offline app for generating H5P content

by Melanie Scott -
That is really good to know. Would not have thought of that.

So...if Jade did the full install on her version and then ported it over to the in-prison set up, it might work? That is the trick, just having it doesn't mean being able to use the content types, many of them have to be 'installed' before you can use them.
Average of ratings: Useful (1)
In reply to Brendon Hatcher

Re: Correctional Facility Moodle Development

by Jade Korosec -
Hi Brendon, I do have a full copy of the in-prison set up that I installed on my server (sans filedir folder) but quickly realised my limitations with making edits and sending back to them, as you have confirmed for me in this thread.

I appreciate your suggestions of how I can customise theme and settings and send instructions back to the prison. I was also thinking that screenshots of the Moodle core settings would be useful.

I also found this plugin that may be useful to me > https://moodle.org/plugins/block_admin_presets

There is potential that the LMS will move into other correctional facilities as the studio grows so it would be great to have a solid live version on the outside that we can use to showcase to investors and then an equally solid workflow to transfer settings and course content to new prisons.

As for your comments regarding course development, yes I definitely need to dedicate time to researching all the capabilities and limitations before I commence. Thank you for giving me the heads up that you can acquire free and paid course templates. This will certainly be useful in the initial stages.

I am going to start with theme and then move onto courses over the coming weeks. Brendon I will be in touch via Private Message once I have had a few more days to develop.

Again many thanks for your guidance here.

Regards,
Jade