Picture of Dennis Heaney
Adapt Authoring Tool - Platform Comparison
by Dennis Heaney - Thursday, 26 September 2013, 9:31 AM
 

I've attached a comparison of various platforms that might be used as a starting point for the Adapt authoring tool (Adapt Builder?). I've added the initial functional requirements for the MVP as suggested during the workshop in Derry last week and also a handful of non-functional requirements.

This is not meant as a comprehensive review, but an opportunity for the community to discuss some of the issues around the choice of platform. Hope you find it useful.

Picture of Daryl Hedley
Re: Adapt Authoring Tool - Platform Comparison
by Daryl Hedley - Thursday, 26 September 2013, 11:02 AM
 

A few extra things to consider:

- Effort to complete / maintain, time it takes to build.

- Effort to modify / need to hack at prewritten code

- Desire to work in this technology

- Stability of core updates - Let's take Drupal as an example, if Drupal does a massive core update we would then need to retro fit our system around this, whereas if we create it from the ground up we control the updates.

- One language? How easy can a developer swap between working on the Editor and Framework?

- Build tools like grunt (node), minify (php)

 

I have realised that most of my points add positives to a node based platform. So it would be good to get some views from a PHP or Python developer? Also Chris and Alan from Sponge have built an LMS in node. Would be great to hear your positives and negatives of using node.

Thanks,

Daryl 

me
Re: Adapt Authoring Tool - Platform Comparison
by Sven Laux - Thursday, 26 September 2013, 11:17 AM
 

Thanks for this, guys. It's good to look at things from a data as well as a personal preference / gut feeling perspective.

My initial sense was very much based around reuse and achievability and I admit that I haven't been as open to node.js as I probably should have been. Overall, I feel this is a decision for the deeply technical of us and these categories help us to consider it well before embarking on any particular path.

The workshop in Derry has been very helpful and I think that the multi tenancy item is one of the key deciding factors and probably forces us to consider a 'new build' as opposed to using something that's already out there.

Node certainly has quite a bit of traction and it also fits well with the skills used on the output framework, which is a plus point. Like Ryan, I have looked at the vision and outlined approach and as long as we are comfortable we can tick the following boxes, we are free to choose whatever fits.

Key 'vision' items:

  • Can be fully GPL
  • Will be a server based tool
  • Low barrier to adoption
  • Able to achieve mass adoption

Some other practical items:

  • Suits us as the founding developers with regards to skill sets
  • There are 'enough' potential developers out there to join the community 
  • The technology is scalable, future-proof and relevant to our industry
  • We are happy the task is achievable in the chosen technology within the resource and time constraints
  • We commit to documenting our technical approach, standards etc in sufficient detail 

Sven

 

 

Picture of Daryl Hedley
Re: Adapt Authoring Tool - Platform Comparison
by Daryl Hedley - Thursday, 26 September 2013, 11:42 AM
 

Just had another thought that we should consider - what server do we need, how easy to setup and cost of this type of server. Scalability and server costs are quite a big concern with a web based tool.

How easy will it be for a non-technical user to set up a python or node based server? PHP have the advantage of there being so many hosting services that allow easy installs and setups.

Thanks,

Daryl

Picture of Ryan Adams
Re: Adapt Authoring Tool - Platform Comparison
by Ryan Adams - Thursday, 26 September 2013, 12:33 PM
 

I agree. We need to identify who we expect to install this, and what their existing technology stack looks like.  Given that Moodle is probably the largest target application we should seriously consider using PHP as the language (but Node is great and we shouldn't necessarily constrain ourselves by third-party integration targets)

The decision then needs to be made about using an off-the-shelf product or build our own.

I think this spreadsheet certainly goes some way towards making that decision.

Mark
Re: Adapt Authoring Tool - Platform Comparison
by Mark Lynch - Thursday, 26 September 2013, 8:44 PM
 
anyone should be able to install it. We could make a windows installer for non-technical folks using something like Innosetup. Actually I just found this link someone has done this already

http://blog.coolaj86.com/articles/how-to-create-an-innosetup-installer.html

Using a windows installer practically lowers the technical knowledge barrier to 0.

Here's a link to the Moodle install instructions

http://docs.moodle.org/22/en/Installing_Moodle

I'd like to think that we could have a more straightforward install than the above.

Server side installs are for people who generally know what they are doing - although we'll provide plenty documentation a good FAQ and some help in the forums.
me
Re: Adapt Authoring Tool - Platform Comparison
by Sven Laux - Thursday, 26 September 2013, 1:01 PM
 

In line with Ryan's comment, what does it actually take to run a node.js webserver? Something I should know, I guess. Maybe I'm just testing you all :-)

Picture of Chris Jones
Re: Adapt Authoring Tool - Platform Comparison
by Chris Jones - Thursday, 26 September 2013, 4:01 PM
 

Taken from nodejs.org

AN EXAMPLE: WEBSERVER

This simple web server written in Node responds with "Hello World" for every request.

    var http = require('http');
    http.createServer(function (req, res) {
           res.writeHead(200, {'Content-Type': 'text/plain'});
           res.end('Hello World\n');
    }).listen(1337, '127.0.0.1');
    console.log('Server running at http://127.0.0.1:1337/');

To run the server, put the code into a file example.js and execute it with the node program from the command line:

    % node example.js

Server running at http://127.0.0.1:1337/

So in answer to your question you do not need a dedicated Webserver like IIS or Apache.

However I think the real question is "How quickly can we get new developers working on the project?"

The answer, I think is 2 part

  1. by making the install and setup process super easy.
  2. by choosing a language that is familiar to Adapt developers.
Mark
Re: Adapt Authoring Tool - Platform Comparison
by Mark Lynch - Thursday, 26 September 2013, 8:29 PM
 
Using node taking the following into consideration

Can be fully GPL
>> Yes
Will be a server based tool
>>Yes, actually it'll run on a desktop - if you want to configure it like that. This was one of the considerations in the Matrix compiled by Dennis.
Low barrier to adoption
>> Using npm we could publish the Adapt editor as a package and users could run a bunch of npm commands to get the Adapt node app installed
Able to achieve mass adoption
>> We will only achieve mass adoption if the tool/framework is useful.

Originally I'd have liked to have used a framework/CMS (like Drupal) where we'd get some functions for free (user maintenance) plus the ability to get plugins already developed by others (Single Sign On).

As we progressed through the requirements, with multi-tenant, being a big must have it was pretty clear that whatever existing framework/CMS we picked there was always going to be a fair bit of core-hacking involved, which from experience is painfully difficult to maintain, upgrades become difficult and so on.

Which basically left us at a language choice, the core LP skills are php and Javascript. Node bumped to the top as a technology that uses Javascript and supports json really well plus the Adapt framework already uses it.

There are plenty other good technical reasons why we should use node , detailed in the other posts in this thread, but I think we should draw a line under this agree that node and Javascript are the tools of choice and get busy with the doing.

me
Re: Adapt Authoring Tool - Platform Comparison
by Sven Laux - Thursday, 26 September 2013, 10:37 PM
 
Thanks, Mark. That works for me. Let's get on with doing it in node then.
Picture of Ryan Adams
Re: Adapt Authoring Tool - Platform Comparison
by Ryan Adams - Friday, 27 September 2013, 8:29 AM
 
Hold on. I think we're thinking like start-ups here and not about who we anticipate using this thing.

It looks like the outcome of this conversation is that we need to create our own tool as a web CMS isn't quite right. I"m ok with that decision actually. There may be a bit of developers wanting to do something exciting and start something from scratch, but yes it'll do.

I'm not convinced about the node argument yet. We talked about colleges installing this thing. In my experience, large organisations and academic institutions in particular are very slow to adopt new technologies and are very cautious. So while we might be happy to set up node on a server somewhere it's not likely to be that easy for everyone.

I really think we need to make a decision based on some research on our expected users rather than picking something that we like the look of.

Sorry about this, I'm not deliberately trying to slow progress.
Picture of Chris Jones
Re: Adapt Authoring Tool - Platform Comparison
by Chris Jones - Friday, 27 September 2013, 9:38 AM
 
Hi Ryan,

I think it is safe to make a choice on language and development stack, as developers we can be opinionated on this because it will impact us on a day-to-day basis.

What I'm understanding from your post though is about concerns regarding hosting and infrastructure for academic institutions and I totally think this is worth investigating with these users.

I think we need to know what are the barriers for adoption and how can we can work with the system admins to get them to install Adapt onto their servers.
Paul Welch
Re: Adapt Authoring Tool - Platform Comparison
by Paul Welch - Friday, 27 September 2013, 10:35 AM
 

I can only talk from first hand experience of course but getting anything white listed/installed at C&G had a lead time of about 8 months!

With banks there is a reticence to install anything due to security concerns and with some large businesses the reluctance is born from the charges incurred from working with third party IT suppliers who charge £x per kit for even the most basic update.

To be fair, this is more to do with local installs than servers though so may not be relevant. that said there are definitely barriers for even the most basic of undertakings. 

Picture of Daryl Hedley
Re: Adapt Authoring Tool - Platform Comparison
by Daryl Hedley - Friday, 27 September 2013, 10:31 AM
 

I'd quite like to think of scenarios like:

"I have a hosting solution with *company name*, and I can install Drupal/Wordpress with a one click installation - it's easy. Can I install the Adapt editor on this?"

"I don't want to run this online and would prefer to have this offline. Can I do this?"

"I have a VPS server and would like to run this. Can I?"

"I'm completely new to server technology. How and where do I install this?"

"How much will this cost?"

"Maintenance and support?"

From my point of few as a developer who could use Adapt anywhere - schools, colleges, universities and businesses, I would like to worry less about setting up the server and more about creating content. I like how my VPS has easy install one-click setups - But I also know developers who aren't even using VPS servers and have shared hosting.

I wonder whether all of this could be resolved by giving documentation and a walk through on our recommended hosting companies.

Thanks,

Daryl

Picture of Chris Jones
Re: Adapt Authoring Tool - Platform Comparison
by Chris Jones - Thursday, 26 September 2013, 3:38 PM
 
Thanks Daryl,

Yes we are bias as we do nearly all our server-side development in Node, so I feel we know the pros and cons fairly well.

The essentials for us were the ease of unit testing and excellent support for cloud hosting services, but the real win is the advantage of having a single language client-side and server-side. This enables us to recruit developers and let them build cross-cutting features without the need to know two languages, two sets of build tools and two testing frameworks.
We feel that this lowers the barrier to entry.

The open-source community is strong and the support for libraries and components is excellent.

A Node.js process can be run on Window, Mac or Linux so it enables contributors to run on any platform.

As you know we use grunt to automate all of our configuration and setup for our projects, and npm and bower to manage our dependencies. We aim to get a new developer up and running in 10 mins from checking out the source to running a local server.
Picture of Daryl Hedley
Re: Adapt Authoring Tool - Platform Comparison
by Daryl Hedley - Friday, 27 September 2013, 8:26 AM
 
Great pros and cons here. As a developer I'm glad there's been a decision on Node. This means I can help out on Adapt and the Editor without having to switch languages.

Build processes are amazing and over the past 3 weeks it's changed my life. I've setup watching files so when my sass files change the precompile, my html and javascript files refresh my browser.

In terms of speed, my development has increased a lot. I think also combining these grunt files, developers need node for handlebars and scss so why not have it on the server.

Thanks,

Daryl