An assessment system that provides a platform for students to take their assessment in a restricted environment through utilising a cluster of Raspberry Pi devices as a substitute for conventional data centre infrastructure.
The Express Web Application consists of a front and back end.
The front end serves as an interface for the user to access and submit the assessments.
The back-end components are containerised into different docker containers containing the functions to process the assessments such as Multiple Choice Questions (MCQ), Structured Answer Questions (SAQ) and Code Questions.
The web application will be deployed in the Raspberry Pi cluster in the form illustrated in Figure below.
The first node, which is raspberrypi5 initiates a wireless network with 192.168.50.1/24 subnet which allows users to connect to it. Raspberrypi5 holds the front end of the web application where users interact with. Once connected, the user will need to authenticate into the system to gain access to the assessments and shared resources in the cluster. Internet activity can also be constrained by setting firewall rules on the network switch.
After the assessments are completed and submitted by the users, the assessments will be sent to raspberrypi4 which serves as the K3s server control plane to distribute the tasks among itself and the K3s Agents or worker nodes
To test the functionalities of the frontend and backend of the web application without the raspberry pi
- Clone the repository or download the code.
- Type "npm install" into terminal to install all dependencies.
- Navigate into "client" directory and enter "npm start" into terminal.
- Open another terminal, navigate to "server" directory and enter "npm start" into terminal
- Open browser and type "https://www.localhost:3000/"
To test functionalities in the raspberry pi
The Raspberry Pis are labelled from top to bottom as raspberrypi1, raspberrypi2โฆ. raspberrypi5, where the bottom raspberrypi5 will serve as the main node to enter the system.
Each of the Raspberry Pi Nodes is first configured with the following configuration Hostname: raspberrypiX Username: pi Password: raspberry (password for raspberrypi5 is raspberrypi) SSH with Password Authentication Wi-Fi internet access. Where X refers to the Node number assigned to it. Each of the Raspberry Pi was installed with Ubuntu Server 22.04.3 LTS (64bit) which is compatible with Micro K3s except raspberrypi5.
- Power on the Raspberry Pi cluster
- Connect to Raspberry Pi cluster Wireless Access Point with the following: SSID: FYPraspberrypi Password: raspberry
- Once connected, open browser and navigate to "http://www.192.168.1.103:5000/" to view the frontend webpage
To access the metrics server
To access the kubernetes dashboard
- SSH into raspberrypi4
- Type "kubectl proxy" into terminal
- kubectl will make dashboard available at "http://localhost:8001/api/v1/namespaces/kubernetes-dashboard/services/https:kubernetes-dashboard:/proxy/"
- Create a secret token under default account using "kubectl create token default"
- Fill in the secret token
- Navigate to the "Pods" page under workloads to view active pods