Join GitHub today
GitHub is home to over 28 million developers working together to host and review code, manage projects, and build software together.Sign up
- What's the difference between the Adapt framework and the Adapt authoring tool?
- What is the difference between the Adapt authoring tool and Adapt Builder?
- What's the difference between a component, an extension, a theme, a menu, and a plug-in?
- What distinguishes a "core" plug-in from any other plug-in?
- How can I find other plug-ins besides the core plug-ins?
- How do I delete an installed plug-in?
The Adapt framework contains in its code all the functionality needed to construct a responsive e-learning course. It is not dependent on the authoring tool at all.
The Adapt authoring tool cannot function without the framework. When the tool is installed, the framework is installed with it. So why was the authoring tool developed? Since the framework has no graphic user interface, some find it a little intimidating to use. The authoring tool tries to bridge the gap between users who are comfortable working with command lines and the precision required by JSON and all that and users who are more confident when they are supported by an interface with text fields, menu selections, and buttons. These kinds of interfaces can really cut down on the number of errors.
So one might say that the Adapt framework is meant to be used by developers, whereas the authoring tool is intended to be used by the non-technical end user. Courses can be built in either, but doing so in the stand-alone framework requires a little more technical prowess.
We haven’t officially named the authoring tool yet and simply refer to it as the 'Adapt authoring tool’ in the core team and our documentation. This official version of the tool is freely available on GitHub under the GPL v3.0 license.
Early in its development, the Adapt authoring tool had been known by different names, including “Origin” and “Builder,” and there may still be references to this in the codebase. These references have no bearing on the functionality of license and it is our intention to remove these references over time.
Since the Adapt authoring tool has become sufficiently functional, organisations are beginning to build products based on the authoring tool and have given these versions their own branded product names—for example Learning Pool’s Adapt Builder. While these versions are built on the Adapt authoring tool, and therefore carry the GPL v3.0 license, they may have been extended and have a different and more expansive feature set.
The Adapt project does not track or support these separate versions. However, we encourage those building their own products on the Adapt open source code and extending its feature set to share these developments with the Adapt project and community.
We actively encourage the community to extend the code and develop their own versions of the authoring tool and framework. In an ideal world, everyone would create plug-ins rather than change the core functionality, so that the work can be easily shared and incorporated into the core code. We also encourage everyone embarking on feature development to make contact with the core team, especially as this would allow us to share the design and development for items which are on the official roadmap.
The Adapt framework was designed to use a system of code modules. By encapsulating certain functionality in these modules, the developers provided a way to customize courses. If your course doesn't need SCORM reporting, you can take it out. If you need a question type that isn't bundled with Adapt, you can load it up.
Plug-ins are code modules that follow standards that allow them to be "plugged into" the Adapt framework. Components, extensions, themes, and menus work on this principle. They are specific types of the generic plug-in super-type. For more technical information, investigate developing plug-ins in the framework's wiki.
Components are the visual blocks of content most often associated with the course content. They are easily recognized as the interactions that the end user has with the page. They fall into two main categories: presentation and question. Some examples include text, graphic, accordion, multi-choice question, and matching.
Extensions are characterized typically by functionality that extends across the course and may be applied to multiple items. Examples include trigger, assessment, and trickle.
Themes contain the "look and feel" that is applied to a course. They typically provide the fonts, icons, styles, and perhaps some images, that establish the graphic design of the course. A theme can be "tweaked" while loaded, so one theme can serve as the foundation for many different looks. Adapt's bundled theme is called Vanilla.
Menus are types of gateways into pages of content. They present options to the learner. Sometimes they reflect sections of a topic. Boxmenu comes bundled with the Adapt framework. As one might infer, it displays content options in a grid of boxes.
The leadership of the Adapt open source project has made a commitment to maintain the code of certain plug-ins. This group of plug-ins is known as the core plug-ins. You can expect that core plug-ins will work with the Adapt framework and the Adapt authoring tool. As new versions of the framework and authoring tool are released, the code of the core plug-ins will be revised as necessary to maintain their compatibility. Core plug-ins are bundled with the Adapt framework and are loaded in the authoring tool when it is installed.
Other "non-core" plug-ins are available. Their compatibility with the framework and authoring tool varies. Some of these plug-ins were developed by the same persons and companies that created the core plug-ins. They are deployed regularly in courses, and their creators have a stake in keeping them current. On the other hand, a plug-in may have been developed as a solution to an odd problem or as a proof-of-concept or as a homework assignment. It might work on desktops but not on mobile devices. It might work only with certain browsers. The developer may no longer have an interest in keeping the code current or may have chosen to maintain it in its current state. It is your responsibility to determine if the plug-in will work for your situation. If it doesn't, you always have the options of further developing the code yourself or of contacting the plug-in's developer.
The source code of most plug-ins is hosted in GitHub repositories. Search GitHub.com with the a term such as "adapt-". Developers of Adapt plug-ins (components, extensions, themes, menus) have been asked to name them with a prefix of "adapt-" (e.g., adapt-contrib-hotgraphic).
Developers have been encouraged to register their completed plug-ins in the Adapt registry so that they're visible in the global Adapt plugin browser on the community site. There's also a built-in search feature of the Adapt CLI (command line interface) which checks the registry, and gives you results right in your terminal window. If you have the framework or the authoring tool installed, the Adapt CLI is installed. In a terminal run the following command.
It will generate a list of all plug-ins that have been properly registered. Registration is not an indication of bug-free code, maintained code, or the ability to work in every situation. It is simply a way to make locating plug-ins easier. Be sure to understand the potential limitations of using a non-core plug-in.
To install a plug-in while using the Adapt framework, run the "adapt install" command followed by the plug-in's name, as in the example that follows.
adapt install adapt-contrib-hotgraphic
To install a plug-in in the Authoring tool, download the plug-in's source code ("Download ZIP") from GitHub. Then use the authoring tool's Plugin Management to upload the zipped source code file.
Unfortunately, this isn't possible using the UI at the moment (although it is something that we're looking to fix soon). To manually remove a plugin, you can follow these steps:
- Remove the folder containing your component from
- Remove the offending record for the plugin from the database (We recommend you use something like RoboMongo to do this). Depending on the type of plugin, you'll need to go to the relevant collection (