zesje issueshttps://gitlab.kwant-project.org/zesje/zesje/-/issues2023-04-14T09:15:46Zhttps://gitlab.kwant-project.org/zesje/zesje/-/issues/681Catch errors in uploaded csv2023-04-14T09:15:46ZAnton AkhmerovCatch errors in uploaded csvTrying to upload an invalid csv results in a 500 with this error.
```
Traceback (most recent call last):
File "/opt/conda/envs/zesje-dev/lib/python3.8/site-packages/flask/app.py", line 1516, in full_dispatch_request
rv = self.dispa...Trying to upload an invalid csv results in a 500 with this error.
```
Traceback (most recent call last):
File "/opt/conda/envs/zesje-dev/lib/python3.8/site-packages/flask/app.py", line 1516, in full_dispatch_request
rv = self.dispatch_request()
File "/opt/conda/envs/zesje-dev/lib/python3.8/site-packages/flask/app.py", line 1502, in dispatch_request
return self.ensure_sync(self.view_functions[rule.endpoint])(**req.view_args)
File "/opt/conda/envs/zesje-dev/lib/python3.8/site-packages/flask_restful/__init__.py", line 467, in wrapper
resp = resource(*args, **kwargs)
File "/opt/conda/envs/zesje-dev/lib/python3.8/site-packages/flask/views.py", line 84, in view
return current_app.ensure_sync(self.dispatch_request)(*args, **kwargs)
File "/opt/conda/envs/zesje-dev/lib/python3.8/site-packages/flask_restful/__init__.py", line 582, in dispatch_request
resp = meth(*args, **kwargs)
File "/app/zesje/api/students.py", line 136, in post
student = _row_to_student(row)
File "/app/zesje/api/students.py", line 175, in _row_to_student
first_name=row['First Name'],
File "/opt/conda/envs/zesje-dev/lib/python3.8/site-packages/pandas/core/series.py", line 981, in __getitem__
return self._get_value(key)
File "/opt/conda/envs/zesje-dev/lib/python3.8/site-packages/pandas/core/series.py", line 1089, in _get_value
loc = self.index.get_loc(label)
File "/opt/conda/envs/zesje-dev/lib/python3.8/site-packages/pandas/core/indexes/base.py", line 3805, in get_loc
raise KeyError(key) from err
KeyError: 'First Name'
```
we catch it and be more informativehttps://gitlab.kwant-project.org/zesje/zesje/-/issues/624Implement an instance overview page2022-03-30T14:54:09ZAnton AkhmerovImplement an instance overview pageWe should move the docs to zesje.tudelft.nl, and use the landing page to show an overview info about the course.
It should also guide the user to different option.We should move the docs to zesje.tudelft.nl, and use the landing page to show an overview info about the course.
It should also guide the user to different option.https://gitlab.kwant-project.org/zesje/zesje/-/issues/578Option to cancel processing a pdf2023-10-24T07:36:24ZStefan HugtenburgOption to cancel processing a pdfIf we notice that a pdf has issues (e.g. the scanner thought they are A3 size), we would like the option to cancel the processing of the scan so as to not waste time on it :)
E.g.:
![image](/uploads/943edb16b70273aff944ff307dcedd25/ima...If we notice that a pdf has issues (e.g. the scanner thought they are A3 size), we would like the option to cancel the processing of the scan so as to not waste time on it :)
E.g.:
![image](/uploads/943edb16b70273aff944ff307dcedd25/image.png)Image Processing Pipelinehttps://gitlab.kwant-project.org/zesje/zesje/-/issues/577The overview page does not show a question if it is worth 0 points2023-10-20T22:02:53ZStefan HugtenburgThe overview page does not show a question if it is worth 0 pointsI use some zero points questions to get quick feedback on the course, e.g. "was the exam too long/hard" etc.
I cannot see the statistics unless I add one feedback option that is worth at least one point.I use some zero points questions to get quick feedback on the course, e.g. "was the exam too long/hard" etc.
I cannot see the statistics unless I add one feedback option that is worth at least one point.https://gitlab.kwant-project.org/zesje/zesje/-/issues/530Improve UI for multi-page solutions2022-03-30T14:24:25ZAnton AkhmerovImprove UI for multi-page solutionsI seem to remember that we discussed this library: https://www.npmjs.com/package/react-image
Related #140I seem to remember that we discussed this library: https://www.npmjs.com/package/react-image
Related #140Unstructured examshttps://gitlab.kwant-project.org/zesje/zesje/-/issues/513Improve handling of missing pages in unstructured exams2020-06-28T16:27:24ZAnton AkhmerovImprove handling of missing pages in unstructured examsRight now a copy id is shown, but doesn't allow to easily determine where the problem occurred (one needs to go to /students and check which student got that copy).Right now a copy id is shown, but doesn't allow to easily determine where the problem occurred (one needs to go to /students and check which student got that copy).Unstructured examshttps://gitlab.kwant-project.org/zesje/zesje/-/issues/512Update signature view for unstructured exams2020-06-18T13:10:27ZAnton AkhmerovUpdate signature view for unstructured examsThe following discussion from !297 should be addressed:
- [ ] @Hugo started a [discussion](https://gitlab.kwant-project.org/zesje/zesje/-/merge_requests/297#note_44395): (+6 comments)
> The student verification view should be adju...The following discussion from !297 should be addressed:
- [ ] @Hugo started a [discussion](https://gitlab.kwant-project.org/zesje/zesje/-/merge_requests/297#note_44395): (+6 comments)
> The student verification view should be adjusted for unstructured exams.Unstructured examshttps://gitlab.kwant-project.org/zesje/zesje/-/issues/502enable chunked uploads2020-06-01T15:40:03ZAnton Akhmerovenable chunked uploadsWith raw uploads, user files can reach upwards of 3 gigabytes. To mitigate that we can try to enable chunked uploads, following this recipe https://stackoverflow.com/questions/44727052/handling-large-file-uploads-with-flaskWith raw uploads, user files can reach upwards of 3 gigabytes. To mitigate that we can try to enable chunked uploads, following this recipe https://stackoverflow.com/questions/44727052/handling-large-file-uploads-with-flaskhttps://gitlab.kwant-project.org/zesje/zesje/-/issues/497Modify existing frontend views to take course id as a prop, and send course i...2020-06-11T13:04:40ZShashank AnandModify existing frontend views to take course id as a prop, and send course id as part of all api requestsThe current solution would be to simply pass the course id as a prop to App.jsx. Instead of (current) App.jsx being rendered initially, the course page could be rendered, which upon selection of a course passes the course id as a prop to...The current solution would be to simply pass the course id as a prop to App.jsx. Instead of (current) App.jsx being rendered initially, the course page could be rendered, which upon selection of a course passes the course id as a prop to App.jsx and renders it.MultitenancyPradyuman DixitPradyuman Dixithttps://gitlab.kwant-project.org/zesje/zesje/-/issues/492Modify all endpoints to take course id as an additional parameter2020-06-16T06:19:49ZShashank AnandModify all endpoints to take course id as an additional parameterAll existing endpoints will have to be modified to take courseid as a parameter, and appropriately return only data corresponding to that courseAll existing endpoints will have to be modified to take courseid as a parameter, and appropriately return only data corresponding to that courseMultitenancyhttps://gitlab.kwant-project.org/zesje/zesje/-/issues/469Export editable documents2020-05-11T18:32:56ZAnton AkhmerovExport editable documentsOne of the zesje users shared a neat idea:
> The way I made it is that I converted my original MS Word to legacy format, printed it as PDF, made Zesje from that PDF, and then the Zesje generated PDFs can be converted back to MS word for...One of the zesje users shared a neat idea:
> The way I made it is that I converted my original MS Word to legacy format, printed it as PDF, made Zesje from that PDF, and then the Zesje generated PDFs can be converted back to MS word format correctly, that the students can edit. When I tested this this word format, when saved as PDF it was perfectly recognized by Zesje, so it seemed like a good option for homework (for students who couldn't edit the PDFs directly).
While the procedure seems involved, I realize that we could easily provide students with unique editable exams by:
- Prefilling the student name and number (already exists in data generation script).
- Converting the PDF to images
- Making a word document file :nauseated_face: which has all those images as background of each page, to ensure that the original layout isn't impacted.
This would also make #430 a lot more useful (and is probably ~blocked by it).https://gitlab.kwant-project.org/zesje/zesje/-/issues/446Follow-up from "WIP: redesign the overview page"2020-04-27T14:38:31ZAnton AkhmerovFollow-up from "WIP: redesign the overview page"The following discussion from !244 should be addressed:
- [ ] @anton-akhmerov started a [discussion](https://gitlab.kwant-project.org/zesje/zesje/-/merge_requests/244#note_40634): (+3 comments)
> Would be great if it was possible ...The following discussion from !244 should be addressed:
- [ ] @anton-akhmerov started a [discussion](https://gitlab.kwant-project.org/zesje/zesje/-/merge_requests/244#note_40634): (+3 comments)
> Would be great if it was possible to switch the highlighting of the other solutions by the same student to show always on hover, instead of on click.https://gitlab.kwant-project.org/zesje/zesje/-/issues/424Uploading wrong scans2020-03-20T20:21:22ZJakobUploading wrong scansI accidentally uploaded model solutions written on Zesje exam paper. This caused some trouble when I wanted to send emails to the students. When I tried to send the emails I got the error message "All submissions must be validated befor...I accidentally uploaded model solutions written on Zesje exam paper. This caused some trouble when I wanted to send emails to the students. When I tried to send the emails I got the error message "All submissions must be validated before sending emails." I solved this by creating a fake student with a nonexistent email and assigning that submission to that student. Then I could send emails again. This issue is about implementing a better solution for the future.https://gitlab.kwant-project.org/zesje/zesje/-/issues/413Default values for question creation2022-10-24T16:36:15ZJakobDefault values for question creationWhen creating exam questions the user has to input whether it is an open question or a multiple choice question and for multiple choice questions also the number of answer options. The default options are set to open questions and to 2 a...When creating exam questions the user has to input whether it is an open question or a multiple choice question and for multiple choice questions also the number of answer options. The default options are set to open questions and to 2 answer options for multiple choice questions. I think it is reasonable to assume that an exam will have many questions of the same type with possible the same number of multiple choice answer options. So I think the creation of exams can be streamlined by setting the default for the type and number of answer options to the values of the previous question. So store whether the last question created was an open question or a multiple choice question and when a new question is created then use the same question type. Also store the number of answer options of the last multiple choice question and use the same number of answer options for new multiple choice questions. The creation of exams with many similar questions would be easier that way.https://gitlab.kwant-project.org/zesje/zesje/-/issues/411Different Versions for Multiple Choice Questions2020-01-26T18:11:15ZJakobDifferent Versions for Multiple Choice QuestionsTo prevent cheating of the students it would be good if Zesje would allow for different versions of multiple choice exams. Easiest way is to keep the same questions in the same order and to just permute the answer options. For the analys...To prevent cheating of the students it would be good if Zesje would allow for different versions of multiple choice exams. Easiest way is to keep the same questions in the same order and to just permute the answer options. For the analysis of the exam results it will be necessary to keep track of the permutation of the answer options.https://gitlab.kwant-project.org/zesje/zesje/-/issues/360Dedicated extra space2019-11-16T15:29:24ZOtto KaaijDedicated extra spaceRight now, we just make the extra space in the exam another question. This makes grading cumbersome.
Suggestion:
Add dedicated extra space, that can be toggled right inside of the grading view for the question you're grading. This way...Right now, we just make the extra space in the exam another question. This makes grading cumbersome.
Suggestion:
Add dedicated extra space, that can be toggled right inside of the grading view for the question you're grading. This way, you can have the feedback options and the submission next to eachother.
* [ ] add a "this is extra space" checkbox / switch to the PanelEdit in exam.jsx, to be marked when specifying problems
* [ ] add a extra_space boolean value to the problem class
* [ ] add a "view extra space" button in grading view, which displays the extra space underneath the current problem
* [ ] allow for multiple extra spaces, which are displayed below each other in the grading view
https://gitlab.kwant-project.org/zesje/zesje/-/issues/343Suggestion to show which exam nrs are contained in the processed PDF files2022-06-03T14:34:55ZT. van der SarSuggestion to show which exam nrs are contained in the processed PDF filesThis can make it easier to find a particular file in the stack of paper examsThis can make it easier to find a particular file in the stack of paper examsImage Processing Pipelinehttps://gitlab.kwant-project.org/zesje/zesje/-/issues/324tutorial notifications2019-11-16T15:43:41ZAnton Akhmerovtutorial notificationsImplement notifications informing users about non-obvious features (e.g. that the first line is automatically selected as the problem title)Implement notifications informing users about non-obvious features (e.g. that the first line is automatically selected as the problem title)https://gitlab.kwant-project.org/zesje/zesje/-/issues/297mathpix2019-11-16T15:49:28ZAnton Akhmerovmathpixhttps://mathpix.com/ is a service providing math OCR via an API. We could consider outsourcing some of the workload to them (it is paid though).https://mathpix.com/ is a service providing math OCR via an API. We could consider outsourcing some of the workload to them (it is paid though).https://gitlab.kwant-project.org/zesje/zesje/-/issues/226Improve handling of edge cases when data is not present2020-05-11T12:21:06ZJoseph WestonImprove handling of edge cases when data is not presentTypically in the early stages of using zesje the user will not have any users, exams, submissions etc.
Several of the views either look weird or don't handle this very gracefully.
The overview page, for example:
![2018-07-17-095601_18...Typically in the early stages of using zesje the user will not have any users, exams, submissions etc.
Several of the views either look weird or don't handle this very gracefully.
The overview page, for example:
![2018-07-17-095601_1852x464_scrot](/uploads/2c20b6058f63f3f3a2019658d795778d/2018-07-17-095601_1852x464_scrot.png)
The image flat out fails to load, and the tables are empty.
We can split this issue into several ones as we identify individual instances where the app behaves weirdly off the happy path