- Design for Rubric
- Design for versioning in Rubric
- Design for Import for grades
- Implement all models
- Implement CSV importing (handle versioning)
- Create API for getting Student and Question's Rubric details
- Implement method for getting stats like average marks for rubric etc
pip install requirements.txt -r
python manage.py migrate
python manage.py createsuperuser
--> To access adminpython manage.py runserver
- Go to the admin and create a
Grading Revision
python manage.py seed_db
--> For creating dummy question, rubrics, and attempt
- Use
python manage.py import_grade_sheet <CSV_FILE_NAME> --revision <REVISION_ID> --attempt <ATTEMPT_ID
to import CSV in the decided format. - Check Admin for necessary Updates
- Hit
http://localhost:8000/rubrics/student-performance/<student_id>?question=<question_id>&revision=<revision_id>
to get the required JSON response
- Check out
AttemptEvaluation.get_avg_marks
for Average - Check out
AttemptEvaluation.get_percentile_rank_for_student
for percentile rank
- Can break down the app into one containing students and questions and the other containing the Rubric System
- Validations on the models
- Marks are assumed to be in the
6th
Column. This can be derived from column name too. - Marks are assumed to be
int
- Maximum Levels are assumed to be 3 atm (only applicable for the import sheet)
- When a new revision is added for an attempt, import sheet contains all the marks, even those that were not updated
- The import sheet will contain IDs of the rubrics (assuming that they are coming from our own frontend client). Can be easily modified to take names
- Validation for things like finding cycles in the Rubric Tree
- Validation for Maximum Marks
- Validation that the rubrics being imported belong to the rubric tree for that question only