Commit b58266a
authored
PROD (#49)
This pull request introduces new modules and endpoints to support
academic and "academic chaos" question grading and retrieval for staff,
along with corresponding schema and database updates. It also refactors
and expands the grading logic for both academic and academic chaos
questions, ensuring staff can grade answers, retrieve scores, and update
application status accordingly.
Key changes include:
**New Features: Academic and Academic Chaos Grading Modules**
- Added `StaffAcademicGradingModule`, `StaffAcademicChaosGradingModule`,
`StaffAcademicQuestionModule`, and `StaffAcademicChaosQuestionModule`,
including their controllers, services, and DTOs, to handle grading and
question retrieval for both academic and academic chaos sections. These
modules provide endpoints for listing, retrieving by application ID, and
grading student answers, with appropriate guards for access control.
[[1]](diffhunk://#diff-089f4f2474b64391c42b6e66aed33977e132058d92108f0a63234a7862e1f8b8R26-R29)
[[2]](diffhunk://#diff-089f4f2474b64391c42b6e66aed33977e132058d92108f0a63234a7862e1f8b8R80-R82)
[[3]](diffhunk://#diff-39fa606a587c8875669aa333f9833aadfd157e0bb0c43a7274cffb2453db2515R1-R21)
[[4]](diffhunk://#diff-d85b80b1391c1e79cc9921615f6f57106699caf5b4e27b62015e5ff8cccc7763L1-R26)
[[5]](diffhunk://#diff-f653883d2992110b94e450feebf920cd1c3f0f6e48c0c969cdd01f9bdfa40550L1-R111)
[[6]](diffhunk://#diff-875ea014b8cf2e9788c4f51c7a4024baf2b79d29a191155d01e4a324055b0786R1-R21)
[[7]](diffhunk://#diff-8d493d5216d89fe155e5a73cb27fb1c008afa59b40a8ab883231fb79ea75d369R1-R9)
[[8]](diffhunk://#diff-8bf04ccbe253ebb8e455397b08807b6296c430691c9d3e73949b98c994386c16R1-R77)
[[9]](diffhunk://#diff-7e92598208c33c21a1aa7d3ca70517806d959bb48aed427e1344508545967022R1-R21)
[[10]](diffhunk://#diff-335212c3435deccac0b550f33d8fe1edec6b105812a2d25e00e270dd35846821R1-R28)
[[11]](diffhunk://#diff-07333057a1e896b3c57905c76daf2102dfc918438e2630329d4d6488d7e513ecR1-R9)
[[12]](diffhunk://#diff-df805b2b8a2f3be495261efa9baf5668f11d4a1bf7e0527f464fd72d99772f81R1-R113)
[[13]](diffhunk://#diff-34345011061309e1b53b5eedd4cd7547573b6151242b3a8d3c6d0e7015fa07faR1-R20)
[[14]](diffhunk://#diff-b14fb1d48d797b19001dfb5b92d9e6df826752ad341acf99c8877a720269e8c8R1-R9)
[[15]](diffhunk://#diff-926c2215ab17b6ceef68010c7c97c849edc366950b4fadcb3cb19bdf453d5210R1-R77)
**Database and Schema Updates**
- Updated the Prisma schema and created a migration to add the
`stf_academic_chaos_question_checked` boolean field to the
`ApplicationStatus` table, allowing the system to track whether academic
chaos questions have been checked for each application.
[[1]](diffhunk://#diff-aaee65c56c24c6524c6d8956c9fb32019cf3a23df95566391981faa6c197c0edR1-R2)
[[2]](diffhunk://#diff-5b443964f4f3a611682db8f7e02177b0a8c632b2039e2bd5e4dd7347815c565cR216-R217)
**Grading Logic Enhancements**
- Refactored grading services to:
- Delete existing scores by the same staff before creating new ones.
- Aggregate and return scores, including staff user info.
- Update application status after grading is completed.
- Add error handling and logging for robustness.
[[1]](diffhunk://#diff-f653883d2992110b94e450feebf920cd1c3f0f6e48c0c969cdd01f9bdfa40550L1-R111)
[[2]](diffhunk://#diff-df805b2b8a2f3be495261efa9baf5668f11d4a1bf7e0527f464fd72d99772f81R1-R113)
**Endpoints for Score Aggregation and Retrieval**
- Implemented endpoints and logic to aggregate total scores for each
application and retrieve answers (with scores) by application ID, for
both academic and academic chaos questions.
[[1]](diffhunk://#diff-8bf04ccbe253ebb8e455397b08807b6296c430691c9d3e73949b98c994386c16R1-R77)
[[2]](diffhunk://#diff-926c2215ab17b6ceef68010c7c97c849edc366950b4fadcb3cb19bdf453d5210R1-R77)
**Minor Improvements**
- Improved error messages for incomplete grading in the status updater
service.
<img width="640" height="640" alt=" asd "
src="https://github.com/user-attachments/assets/0d985af6-cf82-4be1-bd3a-67a1e478dccb"
/>17 files changed
Lines changed: 615 additions & 8 deletions
File tree
- prisma
- migrations/20260303202634_add_academic_chaos_check_status
- src
- modules
- staff-academic-chaos-grading
- dto
- staff-academic-chaos-question
- staff-academic-grading
- dto
- staff-academic-question
- staff-status-updater
Lines changed: 2 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
213 | 213 | | |
214 | 214 | | |
215 | 215 | | |
| 216 | + | |
| 217 | + | |
216 | 218 | | |
217 | 219 | | |
218 | 220 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
23 | 23 | | |
24 | 24 | | |
25 | 25 | | |
| 26 | + | |
| 27 | + | |
26 | 28 | | |
| 29 | + | |
27 | 30 | | |
28 | 31 | | |
29 | 32 | | |
| |||
74 | 77 | | |
75 | 78 | | |
76 | 79 | | |
| 80 | + | |
| 81 | + | |
| 82 | + | |
77 | 83 | | |
78 | 84 | | |
79 | 85 | | |
| |||
Lines changed: 21 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
Lines changed: 28 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
Lines changed: 9 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
Lines changed: 113 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
| 55 | + | |
| 56 | + | |
| 57 | + | |
| 58 | + | |
| 59 | + | |
| 60 | + | |
| 61 | + | |
| 62 | + | |
| 63 | + | |
| 64 | + | |
| 65 | + | |
| 66 | + | |
| 67 | + | |
| 68 | + | |
| 69 | + | |
| 70 | + | |
| 71 | + | |
| 72 | + | |
| 73 | + | |
| 74 | + | |
| 75 | + | |
| 76 | + | |
| 77 | + | |
| 78 | + | |
| 79 | + | |
| 80 | + | |
| 81 | + | |
| 82 | + | |
| 83 | + | |
| 84 | + | |
| 85 | + | |
| 86 | + | |
| 87 | + | |
| 88 | + | |
| 89 | + | |
| 90 | + | |
| 91 | + | |
| 92 | + | |
| 93 | + | |
| 94 | + | |
| 95 | + | |
| 96 | + | |
| 97 | + | |
| 98 | + | |
| 99 | + | |
| 100 | + | |
| 101 | + | |
| 102 | + | |
| 103 | + | |
| 104 | + | |
| 105 | + | |
| 106 | + | |
| 107 | + | |
| 108 | + | |
| 109 | + | |
| 110 | + | |
| 111 | + | |
| 112 | + | |
| 113 | + | |
Lines changed: 20 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
Lines changed: 9 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
Lines changed: 77 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
| 55 | + | |
| 56 | + | |
| 57 | + | |
| 58 | + | |
| 59 | + | |
| 60 | + | |
| 61 | + | |
| 62 | + | |
| 63 | + | |
| 64 | + | |
| 65 | + | |
| 66 | + | |
| 67 | + | |
| 68 | + | |
| 69 | + | |
| 70 | + | |
| 71 | + | |
| 72 | + | |
| 73 | + | |
| 74 | + | |
| 75 | + | |
| 76 | + | |
| 77 | + | |
0 commit comments