6 ms·
Show HN: Modern Moodle learning platform open-source alternative
Code is still in pre-alpha but is perfectly usable, what do you think we can do better ?
- geenat 3y agoWhat's the business model?
- Daviey 3y agoTook a quick look at the code, and it looks great! - Nice to see that you've split the frontend and API/Backend. - Backend is written in Python using fastapi. - Frontend is Typescript. - State is stored in MongoDB - Good documentation to bring up local env, with docker instructions (would be nice if the frontend code was easy to put in a docker image as well).
- sweave 3y agoThanks a lot Daviey! We're working on improving the dev experience to make it even better
- jasfi 3y agoIf the frontend is in Typescript, why not write the backend in Typescript too? Less context switching when developing. I also don't get why anyone would use MongoDB instead of PostgreSQL, but I can understand that its personal preference. That said, Moodle could do with some competition.
- sweave 3y agoWe love Python for multiple reasons but one of the reasons we chose to stick with the language is fastapi & its ecosystem, it's really a joy to work with. When I started the project I chose MongoDB for simplicity but a PostgreSQL rewrite is on the roadmap ;)
- jasfi 3y agoOK, I was just wondering. It sounds like you're not using an ORM if a rewrite is required?
- kdmccormick 3y agoI work on a certain other open source LMS that stores some of its data in Mongo but has been gradually moving it all into a relational db. It is true that the (home-baked) ORM we use on top of Mongo provides an abstraction layer which makes parts of the migration easier, but truly finishing the migration has and will feel like a long, gradual rewrite. That's because Mongo and its "no-SQL" patterns permeated our original architecture. JSON everywhere, layers of caches to handle the inefficiency of complex Mongo queries, stringly-typed fail-quietly semantics, all that sort of fast-and-loose stuff. Truly moving to relational data (Django models, in our case) means replacing all those old patterns with, you know, thoughtfully designed data models and efficient SQL queries. Otherwise, the LMS would just be a Mongo app awkwardly grafted onto a SQL database.
- sweave 3y agoYes we'll use an ORM in the future so users can use their preferred database (sqlite for example), SQL Model by tiangolo & SQL Alchemy are great candidates!
- xenophonf 3y agoI adopted SQLAlchemy ORM, Marshmallow-SQLAlchemy, and Alembic for a personal project and couldn't be happier with the results: https://github.com/irtnog/lethbridge https://github.com/irtnog/lethbridge
- account-5 3y agoI hate the Moodle way of learning!
- sweave 3y agoWe do too and we know a lot of people do, that's why we wanted to change that ^^
- jimmar 3y agoIt's not clear what is really different about your approach. You have courses, courses have chapters, chapters have content. Content can be text, videos, quizzes, etc. Moodle has courses. Courses have topics. Topics have content. Content can be text, videos, quizzes, etc. As an educator, I'm not seeing the differentiation that would motivate me to investigate further. Am I missing it?
- Tomte 3y agoMoodle is pretty flexible. I'm currently enrolled in a university, in two departments, and both between departments and between courses within a department there are huge differences in presentation, structure and kinds of learning items. People simply dislike their course web site and conclude "it's Moodle". Most of the time it's not, but just how their lecturers are using Moodle. Every alternative will be the same, just with much fewer possibilities (at least in the beginning).
- sweave 3y agoThe project is still in early stages (pre-alpha) but there is areas where we think we can contribute : user experience, dev experience, new features & AI. For example Collaboration can be great for teachers who want to collaborate live on documents (just like Google Docs), a Blocks-based editor (like Notion) would mean unlimited content possibilities not just multimedia content, AI search can help students grasp notions easily.. We would love to know if you have any ideas that you would want to see added to the roadmap ^^
- 3y ago
- jtrueb 3y ago[flagged]
- ofrzeta 3y agoIs SCORM still a thing? Is it on the roadmap?
- sweave 3y agoLots of schools and LMSs still uses it, not on the roadmap yet but we'll see if it would make sense to implement it or not
- drcongo 3y agoGonna keep a keen eye on this, the LMS space seems horribly served to me at the moment with almost nothing sitting between the risible Moodle and the vasty over-complicated edX. We occasionally have clients with LMS needs who always end up going with Moodle, SCORM support here would mean we have a much nicer alternative to offer.
- sweave 3y agoI'm taking notes, yes it feels like SCORM is a must-have in the industry. Also we always felt like no one really knows how to use Moodle & co, our teachers always struggled with the software and we did too!
- drcongo 3y agoYeah, Moodle is just horrible on every level. Good luck with this project, hope I get a change to contribute at some point.
- bcjordan 3y agoThis is really exciting, one of those projects I've been tempted to build myself over the last decade+. There's a massive unmet market need for an LMS that plays well with other open source web software (integration with the existing OSS LMSes is a startup MVP's worth of effort itself). Are there samples of dynamic web activities one could look at / a template format? It would be amazing if there were a way to provide interactive web activities hosted as open source (e.g. a repo that provides a ThreeJS activity with block-based coding, or e.g. a writing activity that measures language grade level while the student is writing). Also curious if there are plans for localization support? (This can be tough to add on later with heavily dynamic/interactive blocks and activities)
- sweave 3y agoThanks for your comment Jordan! We're experimenting with headless usage, as you said it would be possible to embed or add a "Dynamic Page Player" or "Canva" to your custom website, the format would be a JSON file that can be passed to that element Localization support is definitely on the roadmap !
- yashasolutions 3y agoNice work! Love to see you've used python for the backend. Generally good to see some activity in the LMS world. It would be really interesting if you could share what sort of segment from the online learning market/needs you've been thinking about while building the product
- josephcsible 3y agoWhen something is called an open-source alternative to something else, doesn't that imply that the latter isn't open-source? But Moodle is.
- fuzzy2 3y agoI think this is more about most alternatives not being FOSS.
- sweave 3y agoExactly, most alternatives on the market right now are not FOSS so I wanted to make sure it's clear that it's an open source alternative to Moodle (which is the most known FOSS lms)
- bklyn11201 3y agoMoodle : GPL : PHP Canvas : AGPL : Rails D2L : Closed : C# Blackboard : Closed : .Net? Google Classroom : Closed : Python? Sakai : Apache : Java
- ghostpepper 3y agoIs the linked project FOSS? Their FAQ says they'll be announcing pricing soon. To me it seems like another business attempting to leverage the open source community to bootstrap a product before they monetize it.
- bearjaws 3y agoDamn shame, I just migrated a 10,000+ student LMS to Moodle for a contract job. Unfortunately due to the contract terms theres not really any room to play around with something new. Moodle is a total beast to scale, it uses a ton of memory and EVERYTHING assumes its running on one server, not a high-availability setup.
- nisa 3y ago> Moodle is a total beast to scale, it uses a ton of memory and EVERYTHING assumes its running on one server, not a high-availability setup. It's PHP and MySQL/PostgreSQL. Not really sure where there should be a problem. With CephFS or NFS scaling shouldn't be an issue for the most part and the database can run on another host?
- sofixa 3y agoIf there are no provisions at all for multi-server, sessions can be stored in local files, which would lead to probably pretty poor performance if they're thrown on an NFS share.
- fcatalan 3y agoI've been running multi-server Moodle for many years. My sessions are in Redis, but you have the option to have them on the database. High traffic Moodle (mine is about 40k users) is a bit involved. You need to set up caching and also connection pooling in the database and there are a few hidden pitfalls, but it can be made to perform very decently
- outlawery 3y ago[dead]
- bearjaws 3y agoHave to install plugins to your repo to use with containers. Sessions write to disk by default. Uploading to S3 is a plugin you have to install - that defaults to still saving to disk then uploading after a minimum duration.
- deleted 3y ago[deleted]
- f6v 3y agoWhat does “modern” mean? The landing talks about latest technologies, but I don’t see how that’s a selling point. Moodle doesn’t really bother me, what’s wrong with it?
- sweave 3y agoThe project is still in early stages but we think we can contribute in areas like user experience, dev experience, accessibility, features & AI. For example Collaboration can be great for teachers who want to collaborate live on documents (just like Google Docs), a Blocks-based editor (like Notion) would mean unlimited content possibilities, AI search can help students grasp notions easily.. Providing a better developer experience for people that want to develop on top of learnhouse or self-host it in something like Kubernetes & Cloud is a top priority too. We're just laying the foundations of the LMS and we'll work on new features and guides soon, we would love to hear about some of your recommendations ^^
- f6v 3y agoIs this targeted at large orgs? It seems like many universities use MS products that include user management. So, I’m not creating a separate account, but signing in with MS. Is that implemented?
- bklyn11201 3y agoHere is a killer LMS feature: instructor uploads PDF of this week's reading, and the LLM generates a 20 question assessment with randomized multiple-choice questions. Or how about thinking deeply about assessment questions that are semi-resistant to LLMs? Justin Wolfers just did a webinar where he talked about visual questions (line moving) as being the most resistant economics questions to LLMs. What about designing from the ground-up to use elements that are LLM-resistant? Do a really good job of implementing LTI (semi-complex standard) so you can instantly integrate third-party apps. Takes pressure off you to build every tool/feature.
- schiem 3y agoI used to work for a Moodle host that also did custom plugin development. The Moodle code base dates back to somewhere around 2000 ish, and comes with the baggage of the early days of PHP. The Moodle code is full of "no guard rails" style functions, where you do things like write strings directly out as HTML and write direct SQL queries. Couple this with the 'plugin hub' not really have any acceptance criteria, and you get hundreds (thousands?) of security vulnerabilities. I think there's been a push to modernize things in the few years since I left, but it's hard to update a codebase that old.
- devinprater 3y agoYes please! Something where I can just plug in a Github repo of lesson 01.md, lesson 02.md, with links to skip to the next lesson, or a way to embed a quiz into a lesson! Now that would be so useful. I mean all I need from an LMS is for it to work with our stuff, let me update stuff through text files and Markdown (or Org-mode), track student activity, and manage quizzes. Email notifications when a student does a quiz would also be nice, but I've been doing okay without them so far. Accessibility in how students read material and how I manage it is needed for me, since I'm one of the few blind people out there that use this stuff.
- smodo 3y agoHoly cow imagine if the interface to handle documents would be the interface people already know. I’m not even joking, this is a brilliant idea. Our company has people working in Moodle constantly. I’m sure 50% of their time is spent clicking though menus. There has to be a better way.
- TeMPOraL 3y ago> Holy cow imagine if the interface to handle documents would be the interface people already know. I’m not even joking, this is a brilliant idea. Yes. It also should be a pretty obvious one, but the industry and wider software development culture developed a blind spot for it. I mean, how many startups would offer better value to customer if they ditched their custom, bloated, dog-slow SaaS, and instead offered an Excel spreadsheet? Happens way too often. I know of a failed startup which sunk a ton of money into pretty basic React fronted, whose main competitor actually licensed an Excel plugin for the same job. And much more functional at that. The whole software dev world avoids interoperability like a plague. For-profit software at least has the Sinclair excuse (salary depends on one's not understanding it), but somehow open source is even worse. Back in the 1990s companies at least tried to make their software pluggable with/into other software via COM/DCOM. As brittle as it was, at least they tried.
- SnooSux 3y agoLearnhouse sounds like Anglish for school.
- bklyn11201 3y agoCongratulations, I'm very excited to take a look. A few questions: 1) Instructure Canvas is another open-core (AGPL) LMS with a billion dollar market cap company backing it. It has tons of features and users. Why build another AGPL LMS? Is it solely because their Rails tech stack is terrible? 2) Do you want other institutions and orgs to develop alongside you? The use of AGPL says no, you want to focus on cloud hosting. Why not build an MIT-licensed LMS to differentiate yourself? 3) Every LMS seems to suffer from feature bloat. Instructors come up with insane feature requests and pretty soon your gradebook supports 3 different types of grading, with points or percentages, dropping the lowest 3 of 7 grades in a weighted category. Do you go down this road of developing features for your power users like every other LMS? If not, how do you avoid it? I see you're already interested in SCORM (an abandoned standard from 30 years ago). How do you avoid chasing every standard, every package, every power user feature request?
- Cyphase 3y ago> If not, how do you avoid it? I see you're already interested in SCORM (an abandoned standard from 30 years ago). What makes you say that SCORM is "an abandoned standard from 30 years ago"? Can you provide a reference for that?
- bklyn11201 3y agoSCORM is definitely still used, but there have been many attempts to replace it with improved content packaging standards. https://en.wikipedia.org/wiki/Sharable_Content_Object_Reference_Model https://en.wikipedia.org/wiki/Sharable_Content_Object_Refere... SCORM 1.2 then SCORM 2004 then TinCan and IMS Common Cartridge and IMS Content Packaging As an LMS developer, how do you avoid the insanity of building to all of these standards and listening to what your next power user asks for? E.g., there is an instructor out there that has been using the same SCORM 1.2 package from 20 years ago and wants your new LMS to support it.
- laxmin 3y ago1. Canvas is not really open source. It was open source a long time ago, but now it is open-code really. Instructure was taken over by a Hedge Fund and since then, all the new developments are not part of the Open Source. The open source is a bit crippled now. None of the new features such as the New Quizzes (yes, its called that), New RCE Text Area, New Analytics, etc etc are not available on the Open Source Version. So yes, the Billion dollar market is desperate for a new true AGPL LMS. And it is time for one to disrupt the market. 2. Good Question. 3. Flexibility in grading and marks is really, really, really important. Because the systems, curriculum, standards are not flexible. Even with a University or College, different programs have different grading standards. It is not an option not to support the different types of grading unless the education system itself changes. If you can't support the diversity out there, you quickly risk becoming obsolete even before you start. Yep, it is LTI time now. Not SCORM or even xAPI, TinCan, etc.
- abdullahkhalids 3y agoI am part of a volunteer org that runs dozens of week-long online workshops every year, with total thousands of students. Currently, we use Canvas. While Canvas the software is great, though overkill for our needs, self-hosting is very difficult. To convert to a lighter, fresh alternative, we need the following features - Easy onboarding of new users. On Canvas, instructors add students by email to the course, and the students get an invite in the email. - Easy to add a variety of question types of quizzes. Native latex support is mandatory (should be able to write $E=mc^2$ in any text box, and it should render). - Controls on user progress through the course. "If you score at least 50% on Assignment 1, then assignment 2 is unlocked for you." - Easy to export data. - Most importantly, an API for accessing student assignment submissions and setting their grades (We have coding assignments that are graded automatically with our own custom codebase). You will need this anyway, if you want any sort of extension support for your platform. - Fast. I don't care about fancy transitions. Canvas is quite slow, often painfully slow and we want to move away from that.
- swaptr 3y ago- Easy onboarding of new users. On Canvas, instructors add students by email to the course, and the students get an invite in the email. And that is.. bad? Because it does sound tedious for the teacher. Also how do you feel about importing CSVs?
- abdullahkhalids 3y agoThe Canvas process is documented here [1]. You can copy paste the name+email columns from an excel/googledoc/csv file into the textbox and it will work. It is not tedious at all. Obviously, direct upload of excel/csv would work just as well or better, if they were clever enough to pick out the name and email columns from the others. [1] https://community.canvaslms.com/t5/Instructor-Guide/How-do-I-add-users-to-a-course/ta-p/1119 https://community.canvaslms.com/t5/Instructor-Guide/How-do-I...
- laxmin 3y agoAgreed. We run a self-hosted Canvas LMS as well as Moodle LMS in our University. On Canvas Open Source, We don't have access to the new quizzes, new analytics, RCE text area, and a host of other 'new features'. We are always on the lookout for new LMS. Canvas is okay (speed is a concern) but some things are very counter-intuitive. Like matching quiz questions to competencies/outcomes/standards. Also assignments. Moodle has a hundred different settings for anything - so people get confused and standardisation is hard. I agree with @Abdullahkalids
- fudged71 3y agoCould you add a basic description of "Trail" to the documentation? It's a blank page on one of only a handful of major features
- revskill 3y agoWhat's new ? I need to deliver non-videos, only markdown and interactive content for my courses only. Video to me, is a waste of time for my students.
- liampulles 3y agoThe company I work at has extended moodle to introduce gamification and pacing features (i.e. guideline timetable to do XYZ courses on a given day) - there is a lot of experimentation to do with learning, so it should be quite open to extension (in a way that allows me to update the core LMS without breaking my extensions - i.e. forking the repo is not going to cut it).
- leke 3y agoDoes it support SCORM authored content?
- swingingFlyFish 3y agoGreat idea and love the initiative. Seems the "db" is in MongoDB. I'd recommend not going the no-sql route and just Postgres. Not an ORM, just postgres. I'd also move off fastAPI and to to something like Tornado for easy scaling and load handling. Think I read something here about wrapping it in Django's Model paradigm. Personally i think Tornado gives you greater flexibility while not confining you to a particular lock in. That said, again, great initiative. I forked the project and may even contribute to it.
- laxmin 3y agoYou need to partner with Universities, Colleges, small specialised schools and preferable a couple, in every major area. E.g. 1. American system: the US, Canada 2. The Commonwealth system: the UK, Singapore, New Zealand, Australia, and don't forget the largest student population in India and Indonesia. 3. EU: France, Germany Accreditation standards are important.