/InteractiveSlides

Originally designed to show usefulness of a simple client/server for sending and receiving JMS messages to/from Topics or Queues in Java and JavaScript. Now refactored to be a complete standalone E-Learning tool for S5-based Interactive Slideshows.

OtherNOASSERTION

-------------------------------------------------------------------------------
ABOUT
-------------------------------------------------------------------------------
InteractiveSlides is an Interactive SlideShow tool based on the original work by Eric Meyers on S5: 
http://meyerweb.com/eric/tools/s5/

Simple Standards-Based Slide Show System (S5) is an entirely HTML/CSS/JS-based presentation system that has semantic markup and looks nearly as slick as a PowerPoint or Keynote presentation.
This project adds some additional funtionality and interactivity to that previous work.



-------------------------------------------------------------------------------
GOALS
-------------------------------------------------------------------------------
The goal of this project is to make the experience interactive, so that the audience screen (Students) can be controlled remotely by one or more people (Teachers), to interactvely move the presentation along.



-------------------------------------------------------------------------------
DEPENDENCIES
-------------------------------------------------------------------------------
J2EE, JNDI, JSP 2.5+, Servlet, Tomcat/Jetty or another servlet container



-------------------------------------------------------------------------------
RUNNING
-------------------------------------------------------------------------------
To run InteractiveSlides using Maven:
1. git clone https://bcmoney@github.com/bcmoney/InteractiveSlides.git
2. mvn compile
3. mvn clean install


To run InteractiveSlides manually (in an IDE):
1. Download the master ZIP or TAR archive of desired version (or latest version if unsure)
2. Unzip/Unpack the archive to "InteractiveSlides"
3. Import Project (in NetBeans & Eclipse) or Create a new project and drag/drop all files
4. Associate a server if you haven't already (tested with Tomcat6+/Jetty5+/GlassFish3+)
5. Right-Click project, Run on associated server

http://localhost:8080/InteractiveSlides/



-------------------------------------------------------------------------------
USING
-------------------------------------------------------------------------------
Create a new slideshow manually:
1. Copy/Paste all files to new folder/directory to ensure required File Structure: http://meyerweb.com/eric/tools/s5/filemap.html
2. Edit files as per your need, check the reference: http://meyerweb.com/eric/tools/s5/structure-ref.html
3. If you have trouble, check the tutorial at: http://atuan.com/s5/

-OR-

Use the Authoring Tool to generate a slideshow:
1. Go to http://localhost:8080/InteractiveSlides/editor/
2. Add desired components, don't forget to save regularly... (auto-save not implemented yet)



-------------------------------------------------------------------------------
FEATURES
-------------------------------------------------------------------------------
- S5-compatible presentations
  (inherits S5's most aweseome features: http://meyerweb.com/eric/tools/s5/features.html)
- Semantic Markup - Microformats & Mircodata support for schema.org entities
  (Schema.org spec: http://schema.org/docs/gs.html)
- Authoring Tool - Build your own Slideshow with S5 Editor 
  (powered by Slimey: http://sourceforge.net/projects/slimey/)  
- Interactive remote controls for "presenter mode" of Slideshow
  (inspired by Jonathan Snook's work on s5key: http://www.snook.ca/archives/javascript/s5key_slideshow/)
- Support for multiple messaging protocols:
  - WebMessaging: http://www.w3.org/TR/webmessaging/
  - WebSocket: http://www.w3.org/TR/websockets/  
    (will not work on AppEngine... tested with jWebSocket on localhost: http://jwebsocket.org/)
  - JMS: http://www.oracle.com/technetwork/java/index-jsp-142945.html
    (will not work on AppEngine... tested with ActiveMQ on localhost: http://activemq.apache.org/)    
- Themes for slideshow look & feel
  (expanding on work from S5 Reloaded: http://www.netzgesta.de/S5/)
- *OPTIONAL* hooks for Page Transitions and Actions
  (powered by Impress.JS: https://github.com/bartaz/impress.js/)
- *OPTIONAL* hook for VNC screen-sharing
  (powered by TightVNC: http://www.tightvnc.com/release-jviewer-2.1.php)



-------------------------------------------------------------------------------
ROADMAP
-------------------------------------------------------------------------------
- Autosave for Authoring Tool / S5 Editor 
  (to prevent loss of work: http://offline-11.appspot.com/#12)
- Offline mode for Authoring Tool  
  (using emerging HTML5 Offline Webapps standard: http://www.w3.org/TR/offline-webapps/)
- Save to local File system
  (using emerging HTML5 File API: http://www.w3.org/TR/FileAPI/)
- Import PowerPoint (.ppt) and/or OpenDocument Presentation (.odp) formats
  (Difference between ppt/odp: http://office.microsoft.com/en-us/powerpoint-help/differences-between-the-opendocument-presentation-odp-format-and-the-powerpoint-pptx-format-HA010287723.aspx)
- Support for reStructuredText to alow PDF Imports
  (reStructuredText - Markup Syntax and Parser: http://docutils.sourceforge.net/rst.html)
- Export to PDF, Image and Print Templates
  (XSL-FO or possibly Lanslide-inspired use of: http://www.princexml.com/)
- Mobile-compatible content scaling, down to 220x176 (mobile), 320x240 (smartphone), 1024x768 (tablet)
  (Using a baseline BODY font size and relative "em" fonts on content: http://www.spookandpuff.com/examples/dynamicTextSize.html)
- Support for gestures (touch, swipes, pinch/zoom, etc)
  (probably using jGestures: http://jgestures.codeplex.com/)
- Support for Mouse scroll-wheel for controlling slide navigation
  (probably using jquery.mousewheel.js: http://brandonaaron.net/code/mousewheel/docs)
- Add transparent overlay for drawing tools and polygons/shapes
  (from public domain CanvasPaint project: http://sigilmaster.com/)
- Add generic Widget-embedding interface to Authoring Tool 
  (Maps, Videos, Audio files, Flash, iFrame, etc: http://www.w3.org/TR/widgets/)
- Support for video chat 
  (Tokbox OpenTok API: http://www.tokbox.com/opentok/api) 
- Add OpenID authentication
  (openid4java: http://code.google.com/p/openid4java/)
- Add OAuth authorization
  (Using Google's OAuth implementation as baseline: http://code.google.com/p/google-oauth-java-client/ designed to use with AppEngine OAuth for Java: https://developers.google.com/appengine/docs/java/oauth/)
- Support for popular AppEngine-compatible JMS alternatives
  (i.e. Google Channel API: https://developers.google.com/appengine/docs/java/channel/overview, Google TaskQueue: https://developers.google.com/appengine/docs/java/taskqueue/overview, XMPP: https://developers.google.com/appengine/docs/java/xmpp/overview, and/or, AmazonSQS: http://code.google.com/p/amazonsqs-java-client/)
 
 
 
-------------------------------------------------------------------------------
THANKS
-------------------------------------------------------------------------------
To everyone else who's worked on the above linked to projects and other work around E-Learning and Web-based Presentation systems.