'QS' (Questionnaire Sequencer), is my eLearning and questionnaire system that presents material to the client in a logic driven way. It is structured as an ordered sequence of text and media (questionnaires, quizzes, audio slide shows and video clips).
The system has had many variants in the past using different programming systems. The version presented here is a server-side program, "SmartSequencer", written in B4J. An eLearning project or a questionnaire consists of a project script that is interpreted by SmartSequencer. I designed the scripting language (QSScript) more than 15 years ago, and it has evolved to be easy to read and edit with a good text editor (Notepad++). Each project QSScript specifies which screens the client sees, as well as the logic that determines the specific sequence of the screens.
A QSScript is a simple text file that is automatically converted to a .json file when first referenced. Both the text file and the .json equivalent are stored on the server. The client-side is only a skeleton HTML/Javascript to connect to the server through a websocket. In fact, the motivation behind this exercise was to see if the websockets approach is up to the task (I think it is).
I have uploaded the zipped project folder which contains the app as well as two examples in separate subfolders under smartSeq\objects\www\. Each example project has a QSScript file (.txt and equivalent .json), as well as index.css, index.html, and myLogo.png files. Comparing the browser pages with the blocks in the .txt file will be most insightful. The index.html has a hidden div with the project's name (in case you are wondering how the generic app gets the name of the script).
The examples are extracts from working projects and are intended for review by the B4X community and are incomplete on purpose. Video and audio materials in the examples are copyrighted and should not be used in any other context. The SmartSequencer app itself may be modified or used 'as is' on new project QSScripts created by other members of the B4X community. Please acknowledge authorship in the source file of the app and QSScripts.
This SmartSequencer is not a finished product. Currently I am working on adding a progress indicator (not so straightforward as the logic flow through the sequence is based on the client's response set and can not be predicted beforehand). Moreover, each project still needs a database for login username, password, and logging user answers and data, as well as for allowing re-entry into interrupted sessions and multiple sessions per client. Such a database also requires a QSScript for retrieving data by authorized project administrators.
See post #2 for downloads
The system has had many variants in the past using different programming systems. The version presented here is a server-side program, "SmartSequencer", written in B4J. An eLearning project or a questionnaire consists of a project script that is interpreted by SmartSequencer. I designed the scripting language (QSScript) more than 15 years ago, and it has evolved to be easy to read and edit with a good text editor (Notepad++). Each project QSScript specifies which screens the client sees, as well as the logic that determines the specific sequence of the screens.
A QSScript is a simple text file that is automatically converted to a .json file when first referenced. Both the text file and the .json equivalent are stored on the server. The client-side is only a skeleton HTML/Javascript to connect to the server through a websocket. In fact, the motivation behind this exercise was to see if the websockets approach is up to the task (I think it is).
I have uploaded the zipped project folder which contains the app as well as two examples in separate subfolders under smartSeq\objects\www\. Each example project has a QSScript file (.txt and equivalent .json), as well as index.css, index.html, and myLogo.png files. Comparing the browser pages with the blocks in the .txt file will be most insightful. The index.html has a hidden div with the project's name (in case you are wondering how the generic app gets the name of the script).
The examples are extracts from working projects and are intended for review by the B4X community and are incomplete on purpose. Video and audio materials in the examples are copyrighted and should not be used in any other context. The SmartSequencer app itself may be modified or used 'as is' on new project QSScripts created by other members of the B4X community. Please acknowledge authorship in the source file of the app and QSScripts.
This SmartSequencer is not a finished product. Currently I am working on adding a progress indicator (not so straightforward as the logic flow through the sequence is based on the client's response set and can not be predicted beforehand). Moreover, each project still needs a database for login username, password, and logging user answers and data, as well as for allowing re-entry into interrupted sessions and multiple sessions per client. Such a database also requires a QSScript for retrieving data by authorized project administrators.
See post #2 for downloads
Last edited: