Grade System

Presented by Zhengte Cai

Overall Structure

Shell frontend
+
Web-like backend

Client Process

User interact with the system using shell.

Shell uses fork and execve to forward commands to the requesting program in the bin directory.

Server Process

Server registers functions in the specified path.

Request carry the path to the function. Server fork a process to response the request.

Expandability

All the function of the frontend and backend are independent of the main program, so as to realize the expandability of the system.

Admin

Capabilities

  • View the directory tree
  • Update user's information
  • Update courses's information
  • Backup and recover the file system

View the directory tree

use command tree to view the tree.

Update users's information

use command useradd edit user's information.

Update courses's information

use command courseadd edit courses's information.

Teacher

Capabilities

  • Create a new chapter
  • Create and Assign homework
  • Check and Grade homework

Create new chapter

use command new to create chapters in order.

course directory

Create and Assign homework

use command vim to create homework template.
use command assign to assign homework.

homework template

A homework consists of multiple problems.
A problem consists of question, type, answer, score.

homework json format

box directory

The box directory is used to receive student's homework.

Check and Grade homework

use command check append with filename to check the student's homework.

Check students's grade

use command grade under course's dir to check students's grades.

Student

Capabilities

  • Complete and Commit homework
  • Review graded homework
  • Check grade

student chapter directory

empty homework

Complete and Commit homework

use command vim to open homework.
use command commit to commit homework.

Answer

Extract the answers from the homework
Sent it to teacher's box.

student chapter directory

Review graded homework

use command check to open homework.

Check grade

use command grade under course's dir to check the grade.

vim

Socket

Request

Response