Assignment submission and grading portal with both student and evaluator interfaces for simplifying and automating assignment submission and grading.
-
Authentication and Uploading of files : Students can securely sign in and submit multiple files for all their assignments through the portal, streamlining the submission process and ensuring convenience and confidentiality.
-
Provision of late submission : The portal tracks and verifies submission times, distinguishing between submissions made before or after the assignment's specified deadline, aiding in enforcing timely submission policies.
-
Plagiarism detection : The evaluator can utilize the built-in plagiarism checker to compare each submitted file with those of other students, returning true if the similarity exceeds a predefined threshold, ensuring academic integrity and originality. The plagiarism checker works as follows -
(i) Texts are stemmed using the Porter-Stemming algorithm.
(ii)TF-IDF (Term Frequency-Inverse Document Frequency) is utilized to convert text into numerical vectors.
(iii)Cosine similarity is calculated between the TF-IDF vectors of the texts.
-
Auto-grading : The evaluator is equipped to test submitted code against provided input files, comparing the output generated by the code with the corresponding expected output files, facilitating automated testing and validation of the code's functionality. The portal also prints syntax errors to assist evaluators in identifying and understanding any code issues.
-
Review and Feedback : The portal evaluates code quality using diverse metrics, assigning scores based on performance in each metric. It then computes a total score for the submission, comprising points for test case success (out of 75) and code/documentation quality (out of 25), providing a comprehensive assessment of the submission's overall quality and functionality.
As of now, our code supports python and c++ files. For python, we are using the pylint module and for c++, we have written our own code.
We have used the following metrics for our c++ analyzer -
(i)Comment-to-code ratio
(ii)Complexity of expressions and constructs
(iii)Overall Improper Indentation Rate
(iv)Repetition Rate
(v)Variable Naming or Scoping Issue Level
- No API calls - We are not using any API calls for anything. We have written the code for both the plag checker and the code analyzer for c++. For python, we are importing the pylint module.
- Support for Additional Programming Languages: Expand support for a wider range of programming languages, accommodating diverse curriculum requirements and student preferences.
- Mobile Application: Develop a mobile application version of the portal, providing students with convenient access to assignment submission, grading feedback, and course materials on their smartphones or tablets.
As of now there are no errors, atleast not that we know of.
Make sure that you have Python 3.10
installed in your system
Run the following command in the terminal
pip install -r requirements.txt
Now, to run the script enter the following command in the terminal
streamlit run login.py
Student
- username : student_1, password : student_1
- username : student_2, password : student_2
TA
- username : ta_1, password : ta_1
- username : ta_2, password : ta_2
Link to demonstration : https://drive.google.com/drive/folders/1z3c3kWJSa13Wfinx4feV6KJnXSL8H8e3?usp=sharing
Made by :
- Arush Shaleen Mathur(220101017)
- Ayush Kumar(220101021)
- Ayush Savar(220101022)