Moodle has chosen Elixir for its new project

moodlenet
#1

Hello people,

If you don’t know Moodle, it is the most popular learning platform around the world and it is used by many Universities around the world. All Moodle is done in PHP, however, for a new project, MoodleNet an open and federated social network to share learning resources, they have chosen Elixir. In fact, I have been hired to do it and I’m the only developer that actually knows the technology.

We wrote a small blog post about it: https://blog.moodle.net/2018/elixir-choice/

But also there is a more detailed explanation about this here: https://docs.moodle.org/dev/MoodleNet/tech/stack

I think it could be very useful for the community how external developers and (big) companies see our technologies and what they expect about it. I’ll be happy to answer any questions you have.

28 Likes
#2

Oooo, this is awesome!

Yeah we ‘used to’ use Moodle here at the college I work at but PHP and so forth along with some design oddities of it made it a pain to manage so it was eventually removed. Definitely looking forward to this!

4 Likes
#3

Nice one :023:

Have you decided what your front-end stack might be?

2 Likes
#4

Yes! We are using React & Apollo. We want to implement a GraphQL API as well.

In addition to being an open source project, we try to document all our decisions and be as open as possible to the community. Everyone is welcome in any way of collaboration.

This is really cool because I’ll be able to open source many libraries in our development process!

6 Likes
#5

Keep in mind that the web socket protocol of GraphQL is not standardized. Where this becomes a problem is if you want to use Elixir and Absinthe for GraphQL on the server side, but want to use the Apollo client. Absinthe Phoenix uses Phoenix Sockets “on the wire” while Apollo uses it’s own protocol.

Here’s where I’ve been looking at the Apollo protocol:

Here is where I started an Elixir implementation of that protocol that interacts with Absinthe:

On the whole this might not be a problem you have. I ran into it through a desire to support GraphQL subscriptions (via. Web Sockets) in an environment where I couldn’t control whether folks would use a Phoenix Channels client or an Apollo GraphQL client. YMMV.

1 Like
#6

congrats, im still waiting for my time to come up. im in a bad waay but cannot seem to get off the streets. how did you get the job? the only thing i want is to be employed!!!

2 Likes