The reviewCount[_student] state variable is checked in giveReview but never incremented. This means reviewCount always remains 0, breaking the logic for limiting reviews per student and making it impossible to satisfy the "student must have 4 reviews" invariant for graduation.
In LevelOne.sol#giveReview:
Since reviewCount[_student] starts at 0 and is never changed, the condition reviewCount[_student] < 5 (or < 4 after M-01 fix) will always be true for the initial checks. This means a student can theoretically receive one review per week indefinitely, rather than being limited to 4 for the session.
The core logic for tracking the number of reviews a student has received is broken. This directly impacts:
The ability to limit reviews to the intended 4 per session.
The invariant check during graduateAndUpgrade that requires students to have 4 reviews, as this check will always fail if reviewCount is 0, or will be based on incorrect data.
This makes the review system unreliable and prevents correct enforcement of graduation requirements.
Manual Review, Logical Analysis.
Increment reviewCount[_student] within the giveReview function after a review is successfully recorded.
(The code modification for this is combined with M-01 in the giveReview function shown below M-01.)
`reviewCount` for students is not updated after each review session
The contest is live. Earn rewards by submitting a finding.
This is your time to appeal against judgements on your submissions.
Appeals are being carefully reviewed by our judges.