General discussion

Looking for Python / Django LMS

Looking for Python / Django LMS

by Jan Gondol -
Number of replies: 4

Hello everyone, just joined your community. A friend told me that this is a good place to ask a question... Mamatheka

Is there an open source LMS built with Python (ideally with Django or Flask, with few dependencies) that you know of / can recommend? The ones I found are either massive, with many dependencies (Open edX) or unmaintained. Are there schools or other learning providers using Django to build / integrate their infrastructure?

Thank you for your tips!

Jan

In reply to Jan Gondol

I'm building one

by Sheena O'Connell -

Hi Jan,

I'm busy working on an LMS in Django and React. It's still a work in progress in some ways, but it has about 200 learners using it. We're planning to open source a lot of the code.

I'm very very keen to see how it could be useful to other oranisations. 

Can you give a little more detail on what you are trying to achieve and why you are interested in those technologies?

In reply to Sheena O'Connell

Re: I'm building one

by Jan Gondol -
Hello Sheena,

This is exciting news, thank you for sharing! Mamatheka

Three use cases at the moment: 1) I'd like to find an open (and customizable) alternative to Google Classroom that I could recommend to schools (some prefer to stay out of Big Corp ecosystems), 2) hackable alternative to Teachable for self-hosting e-courses, 3) a friend runs an e-learning system for teens where he needs flexibility to better connect several components and data sources. Django is great for integrating data, has a vibrant community, and it's a solid foundation to build on.

Starting a LMS from scratch is not ideal, Open edX is huge and has too many dependencies, so I was looking for a middle ground: a set of models and views that pretty much everybody needs (students, classes/cohorts, videos,...), but not so opinionated that extending would be a fight, with absolutely minimal (ideally close to zero, and only very well maintained) dependencies. Just the basic functionality that everybody needs, no extras (those could be added through other Django apps/packages as needed).

It would be awesome to have a look at your LMS when you open source it. Or hear the backstory (what your motivations you had to start development, if there was anything else you tried that didn't work out, how you'd like to see your project used down the road,...).

Thanks again, have a great day!
Jan
In reply to Jan Gondol

Re: I'm building one

by Sheena O'Connell -

Ok cool cool, let me give you a little run down of what we have and our near-term roadmap. We're still working towards making the project open-source ready.

Basically the direction we're running in is to do with supporting people learning to code. But there is no reason why our platform wouldn't be useful to other people. 

Firstly we have a content website that is seperate to the platform itself - it's a hugo static site thing so it works as a standalone website. We add a whole lot of metadata to the frontmatter of the individual markdown pages to show how content is related. I think of it as syllabus-as-configuration. What's cool about this is that it's easy for people to make contributions without needing administrative rights to the platform. The idea is that students and schools should be able to help make the content better over time.

This site gets sucked into our database. We end up with a whole lot of different ContentItems (projects, self study materials,etc) in a kind of graph - the items are related to each other as prerequisites and they have tags and things to say how people can interact with them. Then we have courses that are a collection of content items.

When a student is registered for a course then we generate a kanban board for them where all the different things they need to do appear in the right order. The student then gets to have some say in what order they do things in and move at their own pace and do the agile thing. Different card movements are triggered by different events, and the students and staff interact with the cards in different ways. It integrates with github as well since we are about code. And it has review mechanisms in place so the students have to actually support each other to make progress - it's a collaborative and agile learning platform. 

One can also do things like edit the cards and content items etc via the django admin panel so it's not superglued to our syllabus mechanisms. 

In terms of roadmap, we are planning to get a few other code schools using it by the end of next month. We're also planning to load up some content for no-code curriculums as well, we also teach design and some business stratergy stuff which should fit into the platform just fine. We dont curent;y have quizes and formal assessments, but we will pretty soon. 

Regarding content: Basically what we store in the database is : links and metadata. We dont store the content itself. If we need a video then we just link to youtube. It makes things easy and versatile. And it keeps or data small.

So it's fairly opinionated in terms of how the students move through their course work. And certain basics that you are looking for we just dont have a use for. 

The long term goal is to help as many code schools as possible, Basically this: https://www.africancoding.network/

If you are keen I'll send you some links to the projects when we are ready to do our open source launch



In reply to Sheena O'Connell

Re: I'm building one

by Jan Gondol -
Hello Sheena,

That's very intriguing architecture, thank you for sharing! Mamatheka Looking forward to having a closer look at your LMS (is it called Tilde, right?) when it's ready.

I like how you're thinking about content improving over time. That's precisely where open educational resources (OER) shine, and there's already a lot of OER work happening in South Africa: https://www.oerafrica.org/oer-initiatives-africa

Warm greetings from 8000+ kilometers north (but still the same time zone!),
Jan