Looking for Python / Django LMS

Looking for Python / Django LMS

by Jan Gondol -
Number of replies: 6

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

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! smile

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! smile 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
In reply to Sheena O'Connell

Re: I'm building one

by Martin Breuss -

Hi @Sheena! This sounds very interesting, I'd also be interested in trying it out. smile

I'm working for an online coding school and we've been using Moodle so far, but I'm not good at PHP and Django + React would be my tech stack of choice. I also agree with @Jan's description of what he's looking for in a learning system, which is essentially the base functionality and then an option to extend it by writing my own Django + React code.

What's your timeline until we might be able to give your software a try? I like how it looks and the concepts you're applying, it seems very relevant for the way that I'd want to teach my students. I looked at the website you linked (https://www.africancoding.network/), but our school isn't based in Africa so I didn't want to overstep by signing up for Beta testing interest. Is there another way I could get on some kind of list for this?

Thanks for your work and this discussion, makes me more hopeful to find a tool I'd actually like to work with.

In reply to Martin Breuss

Re: I'm building one

by Sheena O'Connell -

Hey there,

You are very welcome to give it a try smile 

Where are you based? We really want to help as much as we can in Africa because there's a lot of work to be done here, and it's home. But I dont actually want to close the door on anyone. I think you should sign up for the Beta. There is a bit of a waiting list to get onto our main instance because we have a few little things to build out to make onboarding people not eat all our time. 

We're running a few hactober hack days, if you want to take part then you are more than welcome. We're doing a sortof test drive tomorrow, then a larger external one this Saturday (10 October). We'll be working on the platform itself as well as a few curriculum things. 

Here's the repo: https://github.com/Umuzi-org/Tilde (I'm busy polishing up the docs nowish so if it doesn't 100% make sense come back in a little while) 

Here's our Discord for those of you who want to get involved in our community  https://discord.gg/3jRwWPm (it's pretty empty at the moment. We just started that)

Disclaimer: This is my first time ever trying to launch an open source community so there might be some patience required smile