Skip to content

SEForAll/pas_backend

Repository files navigation

pas_backend

This readme is used to help you allocate where is the code. It is not used to teach you how to use our system. If you want to know how to use our system, go to the documentation folder.
 Backend has all the functionality code for program analysis. There are four main chunk of files in this repository:
 1. Database (located in databasefiles folder)
 2. Grading system code (located in TestCases/GradingInterface folder)
 3. Grading system interface (located in TestCases/GradingInterface folder)
 4. Documentation (located in documentation folder)

There is also a folder called 'grading_system_trash' folder used to store draft files.

Table of folders

databasefiles

This folder stores code related to database. We used peewee(sqlite3) to set up our database.
 - database.py
  This file contains the peewee code.

 - addToDB.py
  This file contains some helper functions to manage database.

TestCases

This folder stores code of grading system, code of grading system interface, code of changing grading parameters feature, and a test folder of the grading system.

 - equation.py
  This file contains code of changing grading parameters feature.

 - gradingsystem.py
  This file contains code of grading system. This is the core file of backend. The grading system will take path to the project as input. The grading system will output pointslist and feedback. The grading system can check: 1. Is the student file compileable? 2. Can the student file output the expected output given the expected input? 3. How many byte does the student file leak? 4. Will the student file get into an infinite loop?
 - interface.py
  This file contains code of grading system interface. Meaning frontend user can use grading system through calling functions in this file. There is no need to call functions in gradingsystem.py.

 - grade_submission.py
  This file contains code of grading system interface as well as the means to input arguments to output two text files, one containing the grade and the other the feedback for a specified homework of a user. It serves as a very streamlined way to run the grading system through a single command. Running the file with the -h or -help argument will show the arguments needed for the code to function.

 - .2020homeworks
  This folder is the example "professor files" folder, you need to set you a folder like this to be able to test our system. For each homework, you need to have: 1. Expected output. 2. Inputs. 3. A Makefile according to our Makefile_template (It is currently setted up for ECE264 2020 homeworks)

 - .Testing_grading_system
  After you set up the "professor files" folder, you can write code that will run our grading system. There are python files named by hw02 to hw21, such as hw02.py. Run these programs by using command like "python3 hw02.py" to get scores and feedbacks for students' homeworks.

 - jsonfile_generator.py
  This file contains code of generating example json file.

Documentation

This folder stores three important files that can help you understand our system.

 - Makefile_template
  By reading this file, you can know how to write Makefile for our grading system. (you need to have a basic understanding of makefile before reading this template)

 - User_manual
  By reading this file, you can have a better understanding of our system as a user(student).

 - developer_manual
  By reading this file, you can have a better understanding of our system as a developer(research team student).

About

Backend for program analysis as a service project.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •