Implementation
Self-learning Portal
As it is an entirely web-based platform, we are using MEAN stack, namely MongoDB, express, AngularJS and node.JS, to build the website. The website is powered by a web framework called express running on a node.JS engine. The front-end part uses AngularJS as the JavaScript framework while the back-end part uses MongoDB as the database server.
Question Box
At the front-end, a real-time web technology called WebSocket will be adopted to provide the learners with a better user experience by making the web page more interactive and dynamic, for example, learners can see other learners’ questions and responses on the platform in real time.
At the back-end, a WebSocket wrapper, socket.io, will be used to provide real-time service. Real-time data will be saved to MongoDB database server.
Quiz system
There will be two tasks to be implemented here, namely, setting up the trigger for pop-up quiz and collecting the quiz results.
A custom file viewer in will be built with AngularJS to track the user behaviour, such as on which page is the document viewed or at which time is the video being played.
At the back-end, quiz results will be saved to the MongoDB databse server.
Management System
As the prototype of the knowledge graph builder has been built by another team last year, we are going to implement new functions and improve on the existing ones.
Knowledge Graph Builder
This builder is an interactive tool to create and modify a knowledge graph of a course. This functionality is implemented by AngularJS and vis.js, a Javascript library for visualization.
Regarding the storage mechanisms, the graph will be exported in the adjacency list format and stored in the MongoDB database server. MongoDB is chosen over relational SQL databases because MongoDB allows flexible changes to be made whereas in SQL involves issuing complicated and expensive JOIN queries over numerous small, fractured relational tables, or storing an immutable JSON object. While graph databases can be used for storing the knowledge graph, such kind of databases are too specialized and this lowers the compatibility for other types of files such as multimedia and presentation files.
The builder provides a user-friendly interface for users to build knowledge graphs with simple nodes and edges. The representation of the knowledge graph is a left-to-right hierarchal tree, it is presented this way due to the lengthy nature of topic titles. Of course, the builder also includes certain aesthetic options such as background colour, outline colour, size and thickness. As the graph grows larger, the viewing scope also adjusts accordingly and users are able to pinpoint on a particular topic to view its descendants.
Authentication and User Group
As this integrated learning platform will test-run within HKUST, the Central Authentication System will be incorporated for user authentication, alongside the vanilla authentication provided through JSON tokens. Learners will be able to access courses they have registered by logging in to their accounts. Teachers will be able to access courses they are to teach by the same manner.
Functionality to control user access to learning assets according to the user group class will also be implemented, so that certain assets will only be made available to a certain group. The assets can also be published at a postponed or predefined date so that tests or assignments may be released according to time.