Git Product home page Git Product logo

private-cloud-based-assessment-system's Introduction

Private-cloud-based-assessment-system

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. image 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. image 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

  1. Clone the repository or download the code.
  2. Type "npm install" into terminal to install all dependencies.
  3. Navigate into "client" directory and enter "npm start" into terminal.
  4. Open another terminal, navigate to "server" directory and enter "npm start" into terminal
  5. 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. image

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.

  1. Power on the Raspberry Pi cluster
  2. Connect to Raspberry Pi cluster Wireless Access Point with the following: SSID: FYPraspberrypi Password: raspberry
  3. Once connected, open browser and navigate to "http://www.192.168.1.103:5000/" to view the frontend webpage

To access the metrics server

  1. SSH into raspberrypi4
  2. Type "watch kubectl top nodes" into terminal image

To access the kubernetes dashboard

  1. SSH into raspberrypi4
  2. Type "kubectl proxy" into terminal
  3. kubectl will make dashboard available at "http://localhost:8001/api/v1/namespaces/kubernetes-dashboard/services/https:kubernetes-dashboard:/proxy/"
  4. Create a secret token under default account using "kubectl create token default"
  5. Fill in the secret token
  6. Navigate to the "Pods" page under workloads to view active pods image

private-cloud-based-assessment-system's People

Contributors

limxl31 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.