The Scaleable Viva Management System (SVMS) is a web application designed to faciliate scalable viva voce oral micro-assessments.
Files are placed in a specified location, as per config.py
, and a separate script to the Flask
server, AddStudentAccountsFromSpreadSheetRunFile.py
, is executed on the spreadsheet. In this script, the following
functionality is executed:
- The file is imported to the
ImportStudentData
class from the fileStudentWhitelistDataImportHelper.py
, held within a pandas dataframe. - The current whitelist of students is obtained.
- Students who are already within the whitelist are cut from the whitelist
- Students who are not in the whitelist are then added to the whitelist, and an account is created.
Files are uploaded through a page in the admin section of the web application. The new_file_upload
method is called
from AdminFileUploadHelper.py
. This method has the following functionality:
- The file is imported to the
ImportStudentData
class from the fileStudentWhitelistDataImportHelper.py
, held within a pandas dataframe. - The current whitelist of students is obtained.
- Students who are already within the whitelist are cut from the whitelist
- Students who are not in the whitelist are then added to the whitelist, and an account is created.
- Students who were already in the whitelist and have changed tutorials are then unallocated from their group and moved to their new tutorial. It should be noted that students are not assigned to a new group, as this is a manual process.
Development of the SVMS Server is only currently tested on the Windows operating system.
In order to install and initialise a development environment for the SVMS server, the below procedure can be followed:
- Clone the git repository
- Install PostgreSQL
- Create an empty database called
svms
- Create a custom PostgreSQL user
- Install the latest version of the ODBC drivers
- Duplicate
config.sample.py
and rename toconfig.py
and populate. - Set the
ODBC_DRIVER
field toPostgreSQL Unicode
If you have used our application for research purposes, please consider citing: