This project aims to create a virtual learning environment(VLE) with four features:
- Whitelist for allowed users
- Auided tour for new enter the world
- Student attendance registration for teacher role
- Presentation for teaher provide an in-game slides presentation
*The main code is from Minetest (version 5.4.1), this project only creates the "university" mod.
*This project use Web API to transmit data, the related repository please check this repository.
Lua
- Download and extract the zip file
- Direct to \bin directory and execute "minetest.exe".
- *Note that only contents in “
~/mods/university
” is relevant to this project, and the rest of the source code is from the original Minetest (https://www.minetest.net/downloads/)
This source code repository contains the Minetest engine (version 5.4.1). The minimum requirement for this mod is 5.0.0, please ensure your Minetest version meets this requirement or go to the official Minetest website to update to version 5.4.1.
Copy the "~/mods/university
" folder from the GitHub repository to your Minetest mods directory. Also, copy the "minetest.conf
" into your repository and make sure you follow the statement below:
name = <admin name>
secure.enable_security = true
secure.http_mods = university
secure.trusted_mods = university
Furthermore, this project also uses some open-source packages created by other developers. There are two things you should set up before running this application.
- The World Name of this project is “Minetest Classroom" and its settings files can be found in the "~/worlds/Minetest Classroom" folder in the repository. Please also copy this folder to the relative path in your directory.
- Install two packages that are used in this application and enable these two packages in the "Minetest Classroom" world.
As an online-platform, the teacher as the admin should start the server with a list of whitelisted users to allow users access.
- Make sure the Web API is running.
- Run the Minetest engine server:
Execute
~/bin/srartserver.bat
file by double clicking on the file or runminetest.exe --server --worldname <world name>
in terminal (figure B.1 green box). - Wait for 1 second. The server will load the whitelist. If loaded successfully, the terminal should show a message “Whitelist has been loaded successfully" (figure B.1 red box). Otherwise, please check your Web API connection.
- Minetest is started and enabled for users to login.
After the server has been started, users are ready to join the world.
- To join the world, open
~/bin/minetest.exe
and select the “Join Game” tab (figure B.2). - The IP address should be the virtual machine IP and the port is 30000.
- Login with your verified name and password. The login user should be listed in the whitelist and the default password is 123456. Take student “vivian” whose student id is 3 for example, this student’s name box should input 3-vivian and password box should input 123456. If the login user is not on the whitelist then the login will be denied.
- When login is successful, the welcome and guided tour interface will pop up and provide the basic controls and functions of the application.
- There are three pages in the guided tour and buttons for navigating to the next/previous page or close the modal.
This function is only for the teacher role. If the user is not a teacher, the operation will be denied. Only the admin can give teacher privilege. Admin can type \grantme teacher
or \grant <user> teacher
to grant users teacher privilege. To revoke the privilege is the same way, replace grant to revoke \revokeme teacher
or \revoke <user>
teacher.
Before a teacher can give a presentation in Minetest, the teacher should put the slides in png format in the ~/mods/university/textures/
folder and follow the name convention which is ”PPT_{CourseID}_{SlideNumber}
”. For example, suppose that there are two courses and each course has two slides. The directory should have four png files which are ”PPT_COMP0001_1.png”, ”PPT_COMP0001_2.png”, ”PPT_COMP0002_1.png” and ”PPT_COMP0002_2.png".
- Put the slides into the assigned folder
- Type “
i
” to open the inventory and search “university
” (figure B.3 green box). - Find the course slide object and drag the slides object into the bottom area (figure B.3 red box and arrow). Note there will only be one object per course for the first slide showing in the inventory.
- Press “
Esc
” to close the inventory - Scroll your mouse to select the slide’s object from the quick menu at the bottom of the screen.
- Find a wall and place the slides by right-clicking the mouse.
- To move to the next slide, right-click again on the slides. The server should cycle through all slides with the course prefix.
- To remove the slides from the wall, left click on the slides.
This function is only for the teacher role. If the user is not a teacher, the operation will be denied. Only the admin can give teacher privilege. Admin can type \grantme teacher
or \grant <user> teacher
to grant users teacher privilege. To revoke the privilege is the same way, replace grant to revoke \revokeme teacher
or \revoke <user> teacher
.
The following step shows the correct way to take attendance:
- Type “
i
” to open the inventory and search “university
” (figure B.5 green box). - Find the “computer” object and drag the object into the bottom area (figure B.5 red box and arrow).
- Press “
Esc
” to close the inventory. - Scroll your mouse to select the computer object from the quick menu at the bottom of the screen.
- Find a place to place the object by right-clicking the mouse.
- Left-click on the object to download course and attendance data.
- Right-click on the object to open the UI.
- Select the course in the dropdown list (figure B.6 red circle label 1).
- To take students' attendance, choose an online student who is listed in the left column and click the "
>>
” button (figure B.6 red circle label 2) which will move the student name to the right to record this student’s attendance. - To remove students’ attendance, choose a student who is listed in the right column and click the “
<<
” button (figure B.6 red circle label 3) which will move the student name to the left to delete the student’s attendance record.