SlideShare a Scribd company logo
1 of 91
Adapt
Getting Started with an Open-Source eLearning Tool
Chad Udell
Managing Partner
Steve Richey
Software Developer
● Managing Partner at Float
● Faculty for over 10 years at Bradley University in
Interactive Media
● Awarded eLearning Guild Guild Master,
recognition for contributions to the industry
● Author of Learning Everywhere: How Mobile
Content Strategies are Transforming Training
● Editor and Author of Mastering Mobile Learning:
Tips and Techniques for Success - Chad Udell
and Gary Woodil, Dr. Ed.D. (contributing authors
from the Float team)
● Software Developer at Float
● Faculty at Bradley University in Interactive Media
● Award winning Game Developer
● Open source software contributor and project
teams:
○ TensorFlow
○ Tango
○ Haxe/OpenFL
Introductions
Chad Steve
Where do your
instructional designers
spend their time?
And where should they?
Photo by Jo Szczepanska on Unsplash
https://unsplash.com/photos/9OKGEVJiTKk
And where should they?
Where do your
instructional
technologists spend
their time?
Photo by Ilya Pavlov on Unsplash
https://unsplash.com/photos/OqtafYT5kTw
Let’s stop the copy and paste.
Let’s quit the hack and slash.
Photo by Rodion Kutsaev on Unsplash - https://unsplash.com/photos/xkEtD4Stn0I
Let’s start using components.
Let’s begin creating reusable solutions.
Opensource is a great way to do this.
Photo by Jakub Gorajek on Unsplash - https://unsplash.com/photos/hISbNBGlYXk
Opensource
Web based, collaborative
Responsive, modern output
Free!
Introducing Adapt - An
open source framework and
authoring tool for learning content
development.
Creating fantastic e-learning that your users will
love has never been easier. Developed using
leading edge open source technology, Adapt
Builder gives you complete control to build and
edit great courses in minutes.
A Quick Video
Some examples of Adapt created content
Float’s Experience with Adapt
Numerous Client Projects Built with
Adapt
Multiple Adapt installs available for
clients and maintained
Numerous Adapt extensions in the
public repository available for free reuse
Installing Adapt
Photo by LEMUR on Unsplash - unsplash.com/photos/xkFuWsyG7ZA
Installing Adapt
Downloading Node
nodejs.org
Download 6.11.4 LTS
Windows 10 macOS
Installing Adapt
Node setup
Windows 10 macOS
Installing Adapt
Start Menu + “command” Command (⌘)-Space
Command prompt
Windows 10 macOS
Installing Adapt
Command prompt
Windows 10 macOS
Installing Adapt
Community Server
mongodb.com/download-center
Windows 10 macOS
Installing Adapt
Use installer Unzip downloaded file
Installing MongoDB
Windows 10 macOS
Installing Adapt
“cd ” (without quotes)
Windows 10 macOS
Installing Adapt
Drag bin folder of MongoDB
Windows 10 macOS
Installing Adapt
mkdir datadb mkdir -p data/db
Starting MongoDB
Windows 10 macOS
Installing Adapt
Starting MongoDB
Windows 10 macOS
Installing Adapt
mongod.exe ./mongod -dbpath data/db
Starting MongoDB
Windows 10 macOS
Installing Adapt
Leave this window open!
Starting MongoDB
Make a new window!
Photo by Olu Eletu - unsplash.com/photos/ohh8ROaQSJg
Windows 10 macOS
Installing git
git-scm.com
Windows only
🤷♀️
Windows 10 macOS
Installing Adapt
git clone https://github.com/adaptlearning/adapt_authoring.git
Installing authoring tools
Windows 10 macOS
Installing Adapt
Installing authoring tools
Windows 10 macOS
Installing Adapt
cd adapt_authoring
Configuring authoring tools
Windows 10 macOS
Installing Adapt
Configuring authoring tools
Windows 10 macOS
Installing Adapt
npm install --production
Configuring framework
Windows 10 macOS
Installing Adapt
Configuring framework
Windows 10 macOS
Installing Adapt
node install
Configuring framework
node install
npm install -g grunt-cli
Windows 10 macOS
Installing Adapt
Confirm defaults
Configuring framework
Windows 10 macOS
Installing Adapt
Write it down!
Configuring framework
Windows 10 macOS
Installing Adapt
Configuring framework
Windows 10 macOS
Installing Adapt
Starting authoring tools
node server
Windows 10 macOS
Installing Adapt
Leave this window open too!
Starting authoring tools
Windows 10 macOS
Installing Adapt
Using authoring tools
localhost:5000
Windows 10 macOS
Installing Adapt
Enter username/password
Using authoring tools
🎉
Authoring with Adapt
Photo by Raphael Schaller- unsplash.com/photos/Cz_Xbm3Jyyw
Adapt authoring
Adapt is a web based tool, so open a browser and go to
this address after you’ve installed it:
http://localhost:5000
Then… Login!
Use the Email address and Password you set up when you
installed it.
You did write it down? Right?
Creating a Course
To begin, click the "Add new course"
button on the dashboard, give the
course a title and description, choose
who it should be visible to, and give it
any appropriate tags (these details can
be edited after the course has been
created).
Once the course has been created, it
should show up on the dashboard.
Double click the course, or click the
gear icon and then choose "Edit". This
will take you into the course editor.
Adapt Basics
Menus: The way your course will be navigable for your learners.
The only content items that will appear here are pages and sub-
menus.
Pages: The basic, highest level content container. If you're
editing a new page, you'll find yourself with a single empty
article with an empty block. If you try to preview now, you'll be
given an error, as the tool won't let you publish a course with
empty blocks.
Article: A collection of Blocks (Think of this kind of like a
lesson, or a main topic/section area).
Blocks: A collection of components (eg. content). This is where
your instructional text, media and interactive pieces will live.
Components: The actual content. Can be media, text, etc.
Create Some Content
Most actions in the Adapt tool require a double-click on the
section in order to create/edit the content.
Editing is simple and the body text editor is similar to blog
entry – It’s WYSYWIG.
Other settings include instruction text, Classes (for use in
CSS or custom JS), whether the content is optional and
whether the content should be available or not (hidden)
Once you’ve entered the text or content you want,
Configure Your Course
Project settings: Metadata, Custom Start Commands, Button Labels, Basic
Accessibility
Configuration Settings: Language settings, Debugging, More Accessibility
options, Screensize settings
Theme Picker: Choose an already created and uploaded theme. Themes
change the look and feel of your Adapt course. They contain Less, templates,
Javascript, fonts and assets.
Menu Picker: 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. Boxmenu displays content options in a grid of boxes.
Manage Extensions: Add/enable installed extensions. You can create
extensions for existing components or core framework elements (e.g. the
Triggered extension hides components and reveals them on button press)
Preview Your Course
Loads a fully functioning preview of your course in a new
window.
As the course runs on a simple web server, there is no
cross-session tracking (although you will get single session
progress tracking). To fully test tracking, you need to either
download a published version of your course, or use the
scorm_test_harness.html file (see Advanced use).
This can take a little while if the course is large or you
are on a slow computer!
Publishing Your Course
Generates a Zip archive containing all course
content, pages, interactions, etc.
This ZIP can be uploaded to a webserver for
use, or if you have installed the
SCORM/xAPI extensions and configured
them, you can use the content there.
This content will NOT run on your local
computer as a file. It requires HTTP(S).
Extending Adapt
Photo by Federico Beccari - unsplash.com/photos/ahi73ZN5P0Y
Extending
Adapt
Adding plugins
Extending
Adapt
Plugin Management
Extending
Adapt
Upload Plugin
Extending
Adapt
Extending
Adapt
github.com/gowithfloat/adapt-copyright
Clone or download
Extending
Adapt
Download ZIP
Windows 10 macOS
Extending Adapt
Windows 10 macOS
Extending Adapt
Windows 10 macOS
adapt-copyright-master/js/adapt-copyright.js
Extending Adapt
Windows 10 macOS
Open JavaScript file
Extending Adapt
Windows 10 macOS
Extending Adapt
define(["coreJS/adapt", "./copyright-view", "./copyright-model"], function(Adapt, CopyrightView, CopyrightModel) {
// set up your reusable objects here
// after data has loaded, you can set up your plugin
Adapt.on("app:dataLoaded", function() {
Adapt.on("pageView:postRender", function(view) {
// code in here gets called whenever the view redraws
});
});
});
adapt-copyright.js
define(["coreJS/adapt", "./copyright-view", "./copyright-model"], function(Adapt, CopyrightView, CopyrightModel) {
// set up your reusable objects here
var copyrightModel = new CopyrightModel();
// after data has loaded, you can set up your plugin
Adapt.on("app:dataLoaded", function() {
Adapt.on("pageView:postRender", function(view) {
// code in here gets called whenever the view redraws
});
});
});
adapt-copyright.js
define(["coreJS/adapt", "./copyright-view", "./copyright-model"], function(Adapt, CopyrightView, CopyrightModel) {
// set up your reusable objects here
var copyrightModel = new CopyrightModel();
var copyrightView = new CopyrightView({model: copyrightModel});
// after data has loaded, you can set up your plugin
Adapt.on("app:dataLoaded", function() {
Adapt.on("pageView:postRender", function(view) {
// code in here gets called whenever the view redraws
});
});
});
adapt-copyright.js
define(["coreJS/adapt", "./copyright-view", "./copyright-model"], function(Adapt, CopyrightView, CopyrightModel) {
// set up your reusable objects here
var copyrightModel = new CopyrightModel();
var copyrightView = new CopyrightView({model: copyrightModel});
// after data has loaded, you can set up your plugin
Adapt.on("app:dataLoaded", function() {
Adapt.on("pageView:postRender", function(view) {
// code in here gets called whenever the view redraws
var copyright = Adapt.course.get("_copyright");
});
});
});
adapt-copyright.js
define(["coreJS/adapt", "./copyright-view", "./copyright-model"], function(Adapt, CopyrightView, CopyrightModel) {
// set up your reusable objects here
var copyrightModel = new CopyrightModel();
var copyrightView = new CopyrightView({model: copyrightModel});
// after data has loaded, you can set up your plugin
Adapt.on("app:dataLoaded", function() {
Adapt.on("pageView:postRender", function(view) {
// code in here gets called whenever the view redraws
var copyright = Adapt.course.get("_copyright");
copyrightModel.set("isEnabled", copyright._isEnabled);
});
});
});
adapt-copyright.js
define(["coreJS/adapt", "./copyright-view", "./copyright-model"], function(Adapt, CopyrightView, CopyrightModel) {
// set up your reusable objects here
var copyrightModel = new CopyrightModel();
var copyrightView = new CopyrightView({model: copyrightModel});
// after data has loaded, you can set up your plugin
Adapt.on("app:dataLoaded", function() {
Adapt.on("pageView:postRender", function(view) {
// code in here gets called whenever the view redraws
var copyright = Adapt.course.get("_copyright");
copyrightModel.set("isEnabled", copyright._isEnabled);
var replace = copyright.message.replace("{{year}}", (new Date()).getFullYear());
});
});
});
adapt-copyright.js
define(["coreJS/adapt", "./copyright-view", "./copyright-model"], function(Adapt, CopyrightView, CopyrightModel) {
// set up your reusable objects here
var copyrightModel = new CopyrightModel();
var copyrightView = new CopyrightView({model: copyrightModel});
// after data has loaded, you can set up your plugin
Adapt.on("app:dataLoaded", function() {
Adapt.on("pageView:postRender", function(view) {
// code in here gets called whenever the view redraws
var copyright = Adapt.course.get("_copyright");
copyrightModel.set("isEnabled", copyright._isEnabled);
var replace = copyright.message.replace("{{year}}", (new Date()).getFullYear());
copyrightModel.set("message", replace);
});
});
});
adapt-copyright.js
define(["coreJS/adapt", "./copyright-view", "./copyright-model"], function(Adapt, CopyrightView, CopyrightModel) {
// set up your reusable objects here
var copyrightModel = new CopyrightModel();
var copyrightView = new CopyrightView({model: copyrightModel});
// after data has loaded, you can set up your plugin
Adapt.on("app:dataLoaded", function() {
Adapt.on("pageView:postRender", function(view) {
// code in here gets called whenever the view redraws
var copyright = Adapt.course.get("_copyright");
copyrightModel.set("isEnabled", copyright._isEnabled);
var replace = copyright.message.replace("{{year}}", (new Date()).getFullYear());
copyrightModel.set("message", replace);
view.$el.append(copyrightView.$el);
});
});
});
adapt-copyright.js
define(["coreJS/adapt", "./copyright-view", "./copyright-model"], function(Adapt, CopyrightView, CopyrightModel) {
// set up your reusable objects here
var copyrightModel = new CopyrightModel();
var copyrightView = new CopyrightView({model: copyrightModel});
// after data has loaded, you can set up your plugin
Adapt.on("app:dataLoaded", function() {
Adapt.on("pageView:postRender", function(view) {
// code in here gets called whenever the view redraws
var copyright = Adapt.course.get("_copyright");
copyrightModel.set("isEnabled", copyright._isEnabled);
var replace = copyright.message.replace("{{year}}", (new Date()).getFullYear());
copyrightModel.set("message", replace);
view.$el.append(copyrightView.$el);
});
});
});
adapt-copyright.js
Windows 10 macOS
Extending Adapt
Send to: Compressed (zipped) folder Compress
Bundling our extension
Windows 10 macOS
Extending Adapt
Bundling our extension
Extending
Adapt
Choose file
Extending
Adapt
Upload
Extending
Adapt
Success!
Extending
Adapt
Extending
Adapt
Select course
Extending
Adapt
Manage extensions
Extending
Adapt
Enabling extensions
Extending
Adapt
Find “Copyright”
Extending
Adapt
Back to menu
Extending
Adapt
Project settings
Extending
Adapt
Extensions
Extending
Adapt
Change message
Extending
Adapt
Extending
Adapt
Save
Extending
Adapt
Preview
Extending
Adapt
View first page
Extending
Adapt
Troubleshooting:
● Browser cache
● Temp directory
● Restart server
Extending Adapt
● Custom theming with Less
○ http://www.lesscss.org
● Adapt components
Discussion
What will you do with Adapt? How would you extend it?

More Related Content

What's hot

Bootstrap4XPages
Bootstrap4XPagesBootstrap4XPages
Bootstrap4XPagesTeamstudio
 
Application of ict
Application of ictApplication of ict
Application of ictnisadimoen
 
Rapid site production with Drupal
Rapid site production with DrupalRapid site production with Drupal
Rapid site production with DrupalRob Sawyer
 
Getting started with Website Project and Sublime Text 2
Getting started with Website Project and Sublime Text 2Getting started with Website Project and Sublime Text 2
Getting started with Website Project and Sublime Text 2Amanda Zimmer
 
Theme guru's (Moodle 2 Edition)
Theme guru's (Moodle 2 Edition)Theme guru's (Moodle 2 Edition)
Theme guru's (Moodle 2 Edition)Julian Ridden
 
Beginner's guide to drupal
Beginner's guide to drupalBeginner's guide to drupal
Beginner's guide to drupalmayank.grd
 
Slavin-Dodson Piece, With Code.
Slavin-Dodson Piece, With Code.Slavin-Dodson Piece, With Code.
Slavin-Dodson Piece, With Code.ALATechSource
 
Introduction to Google Drive & Safe Assign
Introduction to Google Drive & Safe AssignIntroduction to Google Drive & Safe Assign
Introduction to Google Drive & Safe AssignGreg Quinlivan
 
Complex Content Structures and Workflow with Drupal
Complex Content Structures and Workflow with DrupalComplex Content Structures and Workflow with Drupal
Complex Content Structures and Workflow with DrupalBalance Interactive
 
Drupal 8 theming deep dive
Drupal 8 theming deep diveDrupal 8 theming deep dive
Drupal 8 theming deep diveRomain Jarraud
 
CONTENT MANAGEMENT SYSTEM
CONTENT MANAGEMENT SYSTEMCONTENT MANAGEMENT SYSTEM
CONTENT MANAGEMENT SYSTEMANAND PRAKASH
 
Lazy Coder Camp Edition 1
Lazy Coder Camp Edition 1Lazy Coder Camp Edition 1
Lazy Coder Camp Edition 1phpfactory
 
Advanced Intro to Wordpress
Advanced Intro to WordpressAdvanced Intro to Wordpress
Advanced Intro to WordpressClique Studios
 
The Flexibility of Drupal 8 | DCNLights 2017
The Flexibility of Drupal 8 | DCNLights 2017The Flexibility of Drupal 8 | DCNLights 2017
The Flexibility of Drupal 8 | DCNLights 2017Michael Miles
 
Preventing Drupal Headaches: Content Type Checklist
Preventing Drupal Headaches: Content Type ChecklistPreventing Drupal Headaches: Content Type Checklist
Preventing Drupal Headaches: Content Type ChecklistAcquia
 
TTI course: add content to Twinspace
TTI course: add content to TwinspaceTTI course: add content to Twinspace
TTI course: add content to TwinspaceBart Verswijvel
 

What's hot (20)

Wordpress as a framework
Wordpress as a frameworkWordpress as a framework
Wordpress as a framework
 
Bootstrap4XPages
Bootstrap4XPagesBootstrap4XPages
Bootstrap4XPages
 
Application of ict
Application of ictApplication of ict
Application of ict
 
Rapid site production with Drupal
Rapid site production with DrupalRapid site production with Drupal
Rapid site production with Drupal
 
Getting started with Website Project and Sublime Text 2
Getting started with Website Project and Sublime Text 2Getting started with Website Project and Sublime Text 2
Getting started with Website Project and Sublime Text 2
 
Theme guru's (Moodle 2 Edition)
Theme guru's (Moodle 2 Edition)Theme guru's (Moodle 2 Edition)
Theme guru's (Moodle 2 Edition)
 
Beginner's guide to drupal
Beginner's guide to drupalBeginner's guide to drupal
Beginner's guide to drupal
 
Present.ict2
Present.ict2Present.ict2
Present.ict2
 
Slavin-Dodson Piece, With Code.
Slavin-Dodson Piece, With Code.Slavin-Dodson Piece, With Code.
Slavin-Dodson Piece, With Code.
 
Introduction to Google Drive & Safe Assign
Introduction to Google Drive & Safe AssignIntroduction to Google Drive & Safe Assign
Introduction to Google Drive & Safe Assign
 
Complex Content Structures and Workflow with Drupal
Complex Content Structures and Workflow with DrupalComplex Content Structures and Workflow with Drupal
Complex Content Structures and Workflow with Drupal
 
Drupal 8 theming deep dive
Drupal 8 theming deep diveDrupal 8 theming deep dive
Drupal 8 theming deep dive
 
CONTENT MANAGEMENT SYSTEM
CONTENT MANAGEMENT SYSTEMCONTENT MANAGEMENT SYSTEM
CONTENT MANAGEMENT SYSTEM
 
Dojo tutorial
Dojo tutorialDojo tutorial
Dojo tutorial
 
flash-flv
flash-flvflash-flv
flash-flv
 
Lazy Coder Camp Edition 1
Lazy Coder Camp Edition 1Lazy Coder Camp Edition 1
Lazy Coder Camp Edition 1
 
Advanced Intro to Wordpress
Advanced Intro to WordpressAdvanced Intro to Wordpress
Advanced Intro to Wordpress
 
The Flexibility of Drupal 8 | DCNLights 2017
The Flexibility of Drupal 8 | DCNLights 2017The Flexibility of Drupal 8 | DCNLights 2017
The Flexibility of Drupal 8 | DCNLights 2017
 
Preventing Drupal Headaches: Content Type Checklist
Preventing Drupal Headaches: Content Type ChecklistPreventing Drupal Headaches: Content Type Checklist
Preventing Drupal Headaches: Content Type Checklist
 
TTI course: add content to Twinspace
TTI course: add content to TwinspaceTTI course: add content to Twinspace
TTI course: add content to Twinspace
 

Similar to DevLearn 2017 - Getting Started with Adapt

1) workbench basics
1) workbench basics1) workbench basics
1) workbench basicstechbed
 
Oracle User Productiviy Kit
Oracle User Productiviy KitOracle User Productiviy Kit
Oracle User Productiviy KitLarry Sherrod
 
Node JS Express : Steps to Create Restful Web App
Node JS Express : Steps to Create Restful Web AppNode JS Express : Steps to Create Restful Web App
Node JS Express : Steps to Create Restful Web AppEdureka!
 
Vipul divyanshu mahout_documentation
Vipul divyanshu mahout_documentationVipul divyanshu mahout_documentation
Vipul divyanshu mahout_documentationVipul Divyanshu
 
Features everywhere
Features everywhere Features everywhere
Features everywhere Mediacurrent
 
Grav CMS for Educators
Grav CMS for EducatorsGrav CMS for Educators
Grav CMS for EducatorsPaul Hibbitts
 
Web development resources brackets
Web development resources bracketsWeb development resources brackets
Web development resources bracketsLaurence Svekis ✔
 
Bootstrap4XPages webinar
Bootstrap4XPages webinarBootstrap4XPages webinar
Bootstrap4XPages webinarMark Leusink
 
JavaScript guide 2020 Learn JavaScript
JavaScript guide 2020 Learn JavaScriptJavaScript guide 2020 Learn JavaScript
JavaScript guide 2020 Learn JavaScriptLaurence Svekis ✔
 
Current Toolbox and Pedagogies - October 09
Current Toolbox and Pedagogies - October 09Current Toolbox and Pedagogies - October 09
Current Toolbox and Pedagogies - October 09point2five
 
An Introduction to Umbraco
An Introduction to UmbracoAn Introduction to Umbraco
An Introduction to UmbracoJeremy Branham
 
Drupal Frontend Performance and Scalability
Drupal Frontend Performance and ScalabilityDrupal Frontend Performance and Scalability
Drupal Frontend Performance and ScalabilityAshok Modi
 
An Overview of RoboHelp 7
An Overview of RoboHelp 7An Overview of RoboHelp 7
An Overview of RoboHelp 7Scott Abel
 
Client Building Functional webapps.
Client   Building Functional webapps.Client   Building Functional webapps.
Client Building Functional webapps.Arun Kumar
 
Writing your own WordPress themes and plugins
Writing your own WordPress themes and pluginsWriting your own WordPress themes and plugins
Writing your own WordPress themes and pluginsStephanie Wells
 
Upgrading SLFE from 2007 to 2010
Upgrading SLFE from 2007 to 2010Upgrading SLFE from 2007 to 2010
Upgrading SLFE from 2007 to 2010KWizCom Team
 
Front end performance optimization
Front end performance optimizationFront end performance optimization
Front end performance optimizationStevie T
 
Building Shiny Application Series - Layout and HTML
Building Shiny Application Series - Layout and HTMLBuilding Shiny Application Series - Layout and HTML
Building Shiny Application Series - Layout and HTMLOlga Scrivner
 

Similar to DevLearn 2017 - Getting Started with Adapt (20)

1) workbench basics
1) workbench basics1) workbench basics
1) workbench basics
 
Oracle User Productiviy Kit
Oracle User Productiviy KitOracle User Productiviy Kit
Oracle User Productiviy Kit
 
Node JS Express : Steps to Create Restful Web App
Node JS Express : Steps to Create Restful Web AppNode JS Express : Steps to Create Restful Web App
Node JS Express : Steps to Create Restful Web App
 
Vipul divyanshu mahout_documentation
Vipul divyanshu mahout_documentationVipul divyanshu mahout_documentation
Vipul divyanshu mahout_documentation
 
Features everywhere
Features everywhere Features everywhere
Features everywhere
 
Grav CMS for Educators
Grav CMS for EducatorsGrav CMS for Educators
Grav CMS for Educators
 
Web development resources brackets
Web development resources bracketsWeb development resources brackets
Web development resources brackets
 
Bootstrap4XPages webinar
Bootstrap4XPages webinarBootstrap4XPages webinar
Bootstrap4XPages webinar
 
JavaScript guide 2020 Learn JavaScript
JavaScript guide 2020 Learn JavaScriptJavaScript guide 2020 Learn JavaScript
JavaScript guide 2020 Learn JavaScript
 
Current Toolbox and Pedagogies - October 09
Current Toolbox and Pedagogies - October 09Current Toolbox and Pedagogies - October 09
Current Toolbox and Pedagogies - October 09
 
An Introduction to Umbraco
An Introduction to UmbracoAn Introduction to Umbraco
An Introduction to Umbraco
 
django
djangodjango
django
 
Drupal Frontend Performance and Scalability
Drupal Frontend Performance and ScalabilityDrupal Frontend Performance and Scalability
Drupal Frontend Performance and Scalability
 
An Overview of RoboHelp 7
An Overview of RoboHelp 7An Overview of RoboHelp 7
An Overview of RoboHelp 7
 
Client Building Functional webapps.
Client   Building Functional webapps.Client   Building Functional webapps.
Client Building Functional webapps.
 
Writing your own WordPress themes and plugins
Writing your own WordPress themes and pluginsWriting your own WordPress themes and plugins
Writing your own WordPress themes and plugins
 
Upgrading SLFE from 2007 to 2010
Upgrading SLFE from 2007 to 2010Upgrading SLFE from 2007 to 2010
Upgrading SLFE from 2007 to 2010
 
Tutorial for moodle 2.5
Tutorial for moodle 2.5Tutorial for moodle 2.5
Tutorial for moodle 2.5
 
Front end performance optimization
Front end performance optimizationFront end performance optimization
Front end performance optimization
 
Building Shiny Application Series - Layout and HTML
Building Shiny Application Series - Layout and HTMLBuilding Shiny Application Series - Layout and HTML
Building Shiny Application Series - Layout and HTML
 

More from Float

What Problem is Your Organization Looking to Solve?
What Problem is Your Organization Looking to Solve?What Problem is Your Organization Looking to Solve?
What Problem is Your Organization Looking to Solve?Float
 
ATDTK18 - design patterns for emergent learning technologies
ATDTK18 - design patterns for emergent learning technologiesATDTK18 - design patterns for emergent learning technologies
ATDTK18 - design patterns for emergent learning technologiesFloat
 
Unlocking Business Outcomes with Augmented Reality
Unlocking Business Outcomes with Augmented RealityUnlocking Business Outcomes with Augmented Reality
Unlocking Business Outcomes with Augmented RealityFloat
 
Getting Started on Your Mixed-Reality Strategy
Getting Started on Your Mixed-Reality StrategyGetting Started on Your Mixed-Reality Strategy
Getting Started on Your Mixed-Reality StrategyFloat
 
Designing and Developing Effective UX for Mobile
Designing and Developing Effective UX for MobileDesigning and Developing Effective UX for Mobile
Designing and Developing Effective UX for MobileFloat
 
#LSCon: The Missing Link - Data Interoperability From Learning Systems to Ope...
#LSCon: The Missing Link - Data Interoperability From Learning Systems to Ope...#LSCon: The Missing Link - Data Interoperability From Learning Systems to Ope...
#LSCon: The Missing Link - Data Interoperability From Learning Systems to Ope...Float
 
Enterprise-Grade Augmented Reality for Operational Environments
Enterprise-Grade Augmented Reality for Operational EnvironmentsEnterprise-Grade Augmented Reality for Operational Environments
Enterprise-Grade Augmented Reality for Operational EnvironmentsFloat
 
ASTD Webcast: Leveraging Mobile Learning for Sales Enablement
ASTD Webcast: Leveraging Mobile Learning for Sales EnablementASTD Webcast: Leveraging Mobile Learning for Sales Enablement
ASTD Webcast: Leveraging Mobile Learning for Sales EnablementFloat
 

More from Float (8)

What Problem is Your Organization Looking to Solve?
What Problem is Your Organization Looking to Solve?What Problem is Your Organization Looking to Solve?
What Problem is Your Organization Looking to Solve?
 
ATDTK18 - design patterns for emergent learning technologies
ATDTK18 - design patterns for emergent learning technologiesATDTK18 - design patterns for emergent learning technologies
ATDTK18 - design patterns for emergent learning technologies
 
Unlocking Business Outcomes with Augmented Reality
Unlocking Business Outcomes with Augmented RealityUnlocking Business Outcomes with Augmented Reality
Unlocking Business Outcomes with Augmented Reality
 
Getting Started on Your Mixed-Reality Strategy
Getting Started on Your Mixed-Reality StrategyGetting Started on Your Mixed-Reality Strategy
Getting Started on Your Mixed-Reality Strategy
 
Designing and Developing Effective UX for Mobile
Designing and Developing Effective UX for MobileDesigning and Developing Effective UX for Mobile
Designing and Developing Effective UX for Mobile
 
#LSCon: The Missing Link - Data Interoperability From Learning Systems to Ope...
#LSCon: The Missing Link - Data Interoperability From Learning Systems to Ope...#LSCon: The Missing Link - Data Interoperability From Learning Systems to Ope...
#LSCon: The Missing Link - Data Interoperability From Learning Systems to Ope...
 
Enterprise-Grade Augmented Reality for Operational Environments
Enterprise-Grade Augmented Reality for Operational EnvironmentsEnterprise-Grade Augmented Reality for Operational Environments
Enterprise-Grade Augmented Reality for Operational Environments
 
ASTD Webcast: Leveraging Mobile Learning for Sales Enablement
ASTD Webcast: Leveraging Mobile Learning for Sales EnablementASTD Webcast: Leveraging Mobile Learning for Sales Enablement
ASTD Webcast: Leveraging Mobile Learning for Sales Enablement
 

Recently uploaded

Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfsudhanshuwaghmare1
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CVKhem
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUK Journal
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEarley Information Science
 

Recently uploaded (20)

Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 

DevLearn 2017 - Getting Started with Adapt

  • 1. Adapt Getting Started with an Open-Source eLearning Tool Chad Udell Managing Partner Steve Richey Software Developer
  • 2. ● Managing Partner at Float ● Faculty for over 10 years at Bradley University in Interactive Media ● Awarded eLearning Guild Guild Master, recognition for contributions to the industry ● Author of Learning Everywhere: How Mobile Content Strategies are Transforming Training ● Editor and Author of Mastering Mobile Learning: Tips and Techniques for Success - Chad Udell and Gary Woodil, Dr. Ed.D. (contributing authors from the Float team) ● Software Developer at Float ● Faculty at Bradley University in Interactive Media ● Award winning Game Developer ● Open source software contributor and project teams: ○ TensorFlow ○ Tango ○ Haxe/OpenFL Introductions Chad Steve
  • 3. Where do your instructional designers spend their time? And where should they? Photo by Jo Szczepanska on Unsplash https://unsplash.com/photos/9OKGEVJiTKk
  • 4. And where should they? Where do your instructional technologists spend their time? Photo by Ilya Pavlov on Unsplash https://unsplash.com/photos/OqtafYT5kTw
  • 5. Let’s stop the copy and paste. Let’s quit the hack and slash. Photo by Rodion Kutsaev on Unsplash - https://unsplash.com/photos/xkEtD4Stn0I
  • 6. Let’s start using components. Let’s begin creating reusable solutions.
  • 7. Opensource is a great way to do this. Photo by Jakub Gorajek on Unsplash - https://unsplash.com/photos/hISbNBGlYXk
  • 8. Opensource Web based, collaborative Responsive, modern output Free! Introducing Adapt - An open source framework and authoring tool for learning content development.
  • 9. Creating fantastic e-learning that your users will love has never been easier. Developed using leading edge open source technology, Adapt Builder gives you complete control to build and edit great courses in minutes. A Quick Video
  • 10. Some examples of Adapt created content
  • 11. Float’s Experience with Adapt Numerous Client Projects Built with Adapt Multiple Adapt installs available for clients and maintained Numerous Adapt extensions in the public repository available for free reuse
  • 12. Installing Adapt Photo by LEMUR on Unsplash - unsplash.com/photos/xkFuWsyG7ZA
  • 14. Windows 10 macOS Installing Adapt Node setup
  • 15. Windows 10 macOS Installing Adapt Start Menu + “command” Command (⌘)-Space Command prompt
  • 16. Windows 10 macOS Installing Adapt Command prompt
  • 17. Windows 10 macOS Installing Adapt Community Server mongodb.com/download-center
  • 18. Windows 10 macOS Installing Adapt Use installer Unzip downloaded file Installing MongoDB
  • 19. Windows 10 macOS Installing Adapt “cd ” (without quotes)
  • 20. Windows 10 macOS Installing Adapt Drag bin folder of MongoDB
  • 21. Windows 10 macOS Installing Adapt mkdir datadb mkdir -p data/db Starting MongoDB
  • 22. Windows 10 macOS Installing Adapt Starting MongoDB
  • 23. Windows 10 macOS Installing Adapt mongod.exe ./mongod -dbpath data/db Starting MongoDB
  • 24. Windows 10 macOS Installing Adapt Leave this window open! Starting MongoDB
  • 25. Make a new window! Photo by Olu Eletu - unsplash.com/photos/ohh8ROaQSJg
  • 26. Windows 10 macOS Installing git git-scm.com Windows only 🤷♀️
  • 27. Windows 10 macOS Installing Adapt git clone https://github.com/adaptlearning/adapt_authoring.git Installing authoring tools
  • 28. Windows 10 macOS Installing Adapt Installing authoring tools
  • 29. Windows 10 macOS Installing Adapt cd adapt_authoring Configuring authoring tools
  • 30. Windows 10 macOS Installing Adapt Configuring authoring tools
  • 31. Windows 10 macOS Installing Adapt npm install --production Configuring framework
  • 32. Windows 10 macOS Installing Adapt Configuring framework
  • 33. Windows 10 macOS Installing Adapt node install Configuring framework node install npm install -g grunt-cli
  • 34. Windows 10 macOS Installing Adapt Confirm defaults Configuring framework
  • 35. Windows 10 macOS Installing Adapt Write it down! Configuring framework
  • 36. Windows 10 macOS Installing Adapt Configuring framework
  • 37. Windows 10 macOS Installing Adapt Starting authoring tools node server
  • 38. Windows 10 macOS Installing Adapt Leave this window open too! Starting authoring tools
  • 39. Windows 10 macOS Installing Adapt Using authoring tools localhost:5000
  • 40. Windows 10 macOS Installing Adapt Enter username/password Using authoring tools
  • 41. 🎉
  • 42. Authoring with Adapt Photo by Raphael Schaller- unsplash.com/photos/Cz_Xbm3Jyyw
  • 43. Adapt authoring Adapt is a web based tool, so open a browser and go to this address after you’ve installed it: http://localhost:5000 Then… Login! Use the Email address and Password you set up when you installed it. You did write it down? Right?
  • 44. Creating a Course To begin, click the "Add new course" button on the dashboard, give the course a title and description, choose who it should be visible to, and give it any appropriate tags (these details can be edited after the course has been created). Once the course has been created, it should show up on the dashboard. Double click the course, or click the gear icon and then choose "Edit". This will take you into the course editor.
  • 45. Adapt Basics Menus: The way your course will be navigable for your learners. The only content items that will appear here are pages and sub- menus. Pages: The basic, highest level content container. If you're editing a new page, you'll find yourself with a single empty article with an empty block. If you try to preview now, you'll be given an error, as the tool won't let you publish a course with empty blocks. Article: A collection of Blocks (Think of this kind of like a lesson, or a main topic/section area). Blocks: A collection of components (eg. content). This is where your instructional text, media and interactive pieces will live. Components: The actual content. Can be media, text, etc.
  • 46. Create Some Content Most actions in the Adapt tool require a double-click on the section in order to create/edit the content. Editing is simple and the body text editor is similar to blog entry – It’s WYSYWIG. Other settings include instruction text, Classes (for use in CSS or custom JS), whether the content is optional and whether the content should be available or not (hidden) Once you’ve entered the text or content you want,
  • 47. Configure Your Course Project settings: Metadata, Custom Start Commands, Button Labels, Basic Accessibility Configuration Settings: Language settings, Debugging, More Accessibility options, Screensize settings Theme Picker: Choose an already created and uploaded theme. Themes change the look and feel of your Adapt course. They contain Less, templates, Javascript, fonts and assets. Menu Picker: 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. Boxmenu displays content options in a grid of boxes. Manage Extensions: Add/enable installed extensions. You can create extensions for existing components or core framework elements (e.g. the Triggered extension hides components and reveals them on button press)
  • 48. Preview Your Course Loads a fully functioning preview of your course in a new window. As the course runs on a simple web server, there is no cross-session tracking (although you will get single session progress tracking). To fully test tracking, you need to either download a published version of your course, or use the scorm_test_harness.html file (see Advanced use). This can take a little while if the course is large or you are on a slow computer!
  • 49. Publishing Your Course Generates a Zip archive containing all course content, pages, interactions, etc. This ZIP can be uploaded to a webserver for use, or if you have installed the SCORM/xAPI extensions and configured them, you can use the content there. This content will NOT run on your local computer as a file. It requires HTTP(S).
  • 50. Extending Adapt Photo by Federico Beccari - unsplash.com/photos/ahi73ZN5P0Y
  • 60. Windows 10 macOS Open JavaScript file Extending Adapt
  • 62. define(["coreJS/adapt", "./copyright-view", "./copyright-model"], function(Adapt, CopyrightView, CopyrightModel) { // set up your reusable objects here // after data has loaded, you can set up your plugin Adapt.on("app:dataLoaded", function() { Adapt.on("pageView:postRender", function(view) { // code in here gets called whenever the view redraws }); }); }); adapt-copyright.js
  • 63. define(["coreJS/adapt", "./copyright-view", "./copyright-model"], function(Adapt, CopyrightView, CopyrightModel) { // set up your reusable objects here var copyrightModel = new CopyrightModel(); // after data has loaded, you can set up your plugin Adapt.on("app:dataLoaded", function() { Adapt.on("pageView:postRender", function(view) { // code in here gets called whenever the view redraws }); }); }); adapt-copyright.js
  • 64. define(["coreJS/adapt", "./copyright-view", "./copyright-model"], function(Adapt, CopyrightView, CopyrightModel) { // set up your reusable objects here var copyrightModel = new CopyrightModel(); var copyrightView = new CopyrightView({model: copyrightModel}); // after data has loaded, you can set up your plugin Adapt.on("app:dataLoaded", function() { Adapt.on("pageView:postRender", function(view) { // code in here gets called whenever the view redraws }); }); }); adapt-copyright.js
  • 65. define(["coreJS/adapt", "./copyright-view", "./copyright-model"], function(Adapt, CopyrightView, CopyrightModel) { // set up your reusable objects here var copyrightModel = new CopyrightModel(); var copyrightView = new CopyrightView({model: copyrightModel}); // after data has loaded, you can set up your plugin Adapt.on("app:dataLoaded", function() { Adapt.on("pageView:postRender", function(view) { // code in here gets called whenever the view redraws var copyright = Adapt.course.get("_copyright"); }); }); }); adapt-copyright.js
  • 66. define(["coreJS/adapt", "./copyright-view", "./copyright-model"], function(Adapt, CopyrightView, CopyrightModel) { // set up your reusable objects here var copyrightModel = new CopyrightModel(); var copyrightView = new CopyrightView({model: copyrightModel}); // after data has loaded, you can set up your plugin Adapt.on("app:dataLoaded", function() { Adapt.on("pageView:postRender", function(view) { // code in here gets called whenever the view redraws var copyright = Adapt.course.get("_copyright"); copyrightModel.set("isEnabled", copyright._isEnabled); }); }); }); adapt-copyright.js
  • 67. define(["coreJS/adapt", "./copyright-view", "./copyright-model"], function(Adapt, CopyrightView, CopyrightModel) { // set up your reusable objects here var copyrightModel = new CopyrightModel(); var copyrightView = new CopyrightView({model: copyrightModel}); // after data has loaded, you can set up your plugin Adapt.on("app:dataLoaded", function() { Adapt.on("pageView:postRender", function(view) { // code in here gets called whenever the view redraws var copyright = Adapt.course.get("_copyright"); copyrightModel.set("isEnabled", copyright._isEnabled); var replace = copyright.message.replace("{{year}}", (new Date()).getFullYear()); }); }); }); adapt-copyright.js
  • 68. define(["coreJS/adapt", "./copyright-view", "./copyright-model"], function(Adapt, CopyrightView, CopyrightModel) { // set up your reusable objects here var copyrightModel = new CopyrightModel(); var copyrightView = new CopyrightView({model: copyrightModel}); // after data has loaded, you can set up your plugin Adapt.on("app:dataLoaded", function() { Adapt.on("pageView:postRender", function(view) { // code in here gets called whenever the view redraws var copyright = Adapt.course.get("_copyright"); copyrightModel.set("isEnabled", copyright._isEnabled); var replace = copyright.message.replace("{{year}}", (new Date()).getFullYear()); copyrightModel.set("message", replace); }); }); }); adapt-copyright.js
  • 69. define(["coreJS/adapt", "./copyright-view", "./copyright-model"], function(Adapt, CopyrightView, CopyrightModel) { // set up your reusable objects here var copyrightModel = new CopyrightModel(); var copyrightView = new CopyrightView({model: copyrightModel}); // after data has loaded, you can set up your plugin Adapt.on("app:dataLoaded", function() { Adapt.on("pageView:postRender", function(view) { // code in here gets called whenever the view redraws var copyright = Adapt.course.get("_copyright"); copyrightModel.set("isEnabled", copyright._isEnabled); var replace = copyright.message.replace("{{year}}", (new Date()).getFullYear()); copyrightModel.set("message", replace); view.$el.append(copyrightView.$el); }); }); }); adapt-copyright.js
  • 70. define(["coreJS/adapt", "./copyright-view", "./copyright-model"], function(Adapt, CopyrightView, CopyrightModel) { // set up your reusable objects here var copyrightModel = new CopyrightModel(); var copyrightView = new CopyrightView({model: copyrightModel}); // after data has loaded, you can set up your plugin Adapt.on("app:dataLoaded", function() { Adapt.on("pageView:postRender", function(view) { // code in here gets called whenever the view redraws var copyright = Adapt.course.get("_copyright"); copyrightModel.set("isEnabled", copyright._isEnabled); var replace = copyright.message.replace("{{year}}", (new Date()).getFullYear()); copyrightModel.set("message", replace); view.$el.append(copyrightView.$el); }); }); }); adapt-copyright.js
  • 71. Windows 10 macOS Extending Adapt Send to: Compressed (zipped) folder Compress Bundling our extension
  • 72. Windows 10 macOS Extending Adapt Bundling our extension
  • 89. Extending Adapt Troubleshooting: ● Browser cache ● Temp directory ● Restart server
  • 90. Extending Adapt ● Custom theming with Less ○ http://www.lesscss.org ● Adapt components
  • 91. Discussion What will you do with Adapt? How would you extend it?

Editor's Notes

  1. Node, mongoDB, and git
  2. This is the only action that currently doesn’t have an “output confirmation” screen
  3. Mac might get a firewall thing, maybe
  4. Windows might need to restart their command line window after this; might want to switch this with previous slide
  5. Currently stuck on this part in Windows; can’t set up tenant atm. Will troubleshoot tomorrow
  6. Raphael schaller https://unsplash.com/photos/Cz_Xbm3Jyyw
  7. Could do a float.ly shortcut
  8. Could do a float.ly shortcut
  9. Could do a float.ly shortcut
  10. Could do a float.ly shortcut
  11. Could do a float.ly shortcut
  12. Could do a float.ly shortcut
  13. Could do a float.ly shortcut
  14. Could do a float.ly shortcut
  15. Could do a float.ly shortcut
  16. Could do a float.ly shortcut
  17. Could do a float.ly shortcut
  18. Could do a float.ly shortcut
  19. Could do a float.ly shortcut
  20. Could do a float.ly shortcut
  21. Could do a float.ly shortcut
  22. Could do a float.ly shortcut
  23. Could do a float.ly shortcut
  24. Could do a float.ly shortcut