Open Source LMS with React and Node.js
A new light in the world of open-source learning management systems with my point of view
UPDATE 08/2016: Please refer to this page for the latest news regarding the project. Thanks!
If everything goes as expected, next semester I will start my final project for my university degree. I decided to take advantage of that "obligation" to make something useful for the community and at the same time improve my React and Node.js skills. That's how I arrived at the idea of building an Open Source Learning Management System.
Another reason why I chose to build an LMS is that I keep seeing how things could be done better on my university's virtual campus. I particularly have a lot of things to say regarding the way students interact with each other and with the teacher. The current system does not provide agile communication. It feels slow, with popup windows, cluttered with signatures and other non-relevant data. I want to build a platform that takes the best out of other successful products (that I use in my work), like Slack or Trello and adapts them for educational environments.
In the last few days, I've been searching the web and the GitHub repositories for JS LMS projects, trying to see if there's anything like that already going on, but I haven't found any with a strong presence (which is good news). I'm not sure if I would start the project if somebody else already did. Maybe I would anyway!
Of course, there are other LMS with APIs and modern stacks, like Canvas LMS or Blackboard (41% of market share), D2L, Kaanu, but they are not using the same stack I want to use and they are not targeting developers. At the same time, I feel that having more open source options out there would be better for everyone.
I know it sounds like a very strong commitment for just one person and a humongous side-project (as I'm still working full-time), but this is going to be like a playground for me, where I can learn about the tech I like and at the same time produce something useful.
Here are some of the requirements I already thought about:
The final goal is to offer something to the community that feels like the WordPress of the LMS**. Something flexible enough to suit the majority of needs by being very open and easy to extend / scale
So far, I want to use a similar tech stack to the one used in the project WordPress Calypso](https://developer.wordpress.com/calypso/). The increasingly popular React and React Native, Flux, Babel.js for ES6, Webpack as the bundler, Node.js as the backend platform and perhaps Loopback for building the API
The UX and responsive plain design have to be spot-on. This is a very important requirement, as I don't want to create something that feels like Moodle (23% of market share), which has a very old-school UI
The homepage will display a list of available courses, the same way Udemy does it
It needs to be real-time, with agile communication like Slack. No more forums, emails or other slow and cluttered systems to talk to each other
I want to include quizzes, something similar to what I did with Quizwars and probably get some inspiration from QuizUp
It needs to integrate easily with Google Docs, Trello, Dropbox and other external tools. I want to use the Internet as a CMS!
It needs to have an open REST API, so users could create their front-ends
It has to be social and implement learning analytics
It needs to have a catchy name with a free .com and .org domain (this is going to be hard)