Making an LMS with Jekyll

Hey everyone,

I have been working with Jekyll as my go to platform for about a few months now and wanted to see if anyone ever tried to make a LMS platform out of it using the ‘_data’ folders or something of that nature. Didn’t find a category to place this in currently on the forum, sorry if it is in the wrong section. Would it be easy to do something like that?

I saw something on Google that someone did back in 2016 but wanted to know if it was a new method to make it work or if it was an idea to scrap all together with Jekyll?

Hi. Yes Jekyll and data go together well. You’ll see in the docs that you can use JSON, CSV and YAML as data files and if you add a CMS on top of that like Jekyll Admin, Netlify CMS or, then you can edit your data using a neat input structure and not worry about quotes and indentation

A tutorial I wrote on the resources section for rendering CSV as HTML

If you want to just display content written in markdown as pages, then Jekyll or Docsify will handle that

Your brief of just LMS and data files is too little - can you explain what you’re actually looking to do in terms of storing and presenting content and the experience for users?


Their content is markdown in a curriculum repo pinned here

I suspect they use React on their frontend.

I enjoyed using it some years ago as a web and mobile app that tracks progress on learning JS and Computer Science etc lessons

Well I was wanting to make it to almost be like an alternative to Moodle and platforms like that. Nothing too robust but simple and get the point across. I can make some sections work with the use of liquid function but, I wanted to know if I can make a platform on Jekyll like that.

The hard part is authorization and keeping track of the progress of your students.

Jekyll is a static site generator and recording progress of users and logging in them is not what’s its intended before. Not saying you can’t use Jekyll and there might be plugins or frontend code you can add on top of your jekyll site. Maybe even do calls to an API you build to handle auth and loading content.

But yes as with previous poster’s comment you might struggle with jekyll.

Have a look at React or Vue as frontend apps which can handle interactivity. Or use the server side to handle auth and limit what content can be seen. Such as with Python Flask or PHP (Moodle is in PHP I believe).

Maybe you need SQL DB or MongoDB or Firebase DB so you can handle persistent state like user profiles and progress.

And your content could be in the DB as well.

Then you can build a web or mobile app frontend that uses that data underneath. Or maybe you use a server side app to site between the DB and frontend.

See if you can research some existing LMS solutions and how they work and if you can use any without building it but just customize it.

yeah I was thinking of looking into a DB to make it work, thanks for the advice. I will look into some other options to use for this client then.