To make people think twice before submitting a review, we introduce upvote and downvote on reviews.
Every review in DB will have fields for tracking who voted what so duplicate voting never happens
Voting indicator
No vote:

Upvoted:

UX stuff
It would work exactly like the youtube 👍 👎 buttons so users can remove it whenever and not able to do both.
Once the page loads, it gets the number of current votes from DB. They won't update from DB again without a refresh, but for UX sake, the numbers will increase/decrease from front end after the page is loaded so it's snappier.
Example user scenario:
- User clicks on upvote, number increases.
- He changes his mind and click on downvote, upvote number decreases and downvote number increases at the same time.
- He doesn't wanna vote anymore, so he clicks on downvote a second time to remove his vote
This means that if a different user votes during this time, it won't actually show until our example user actually refreshes the page and retrieves the new data.
Abuse prevention
- Author(s) of a level cannot vote reviews of their own level.
- If a user leaves a review on a level, they cannot vote on this level's reviews anymore and their votes are removed from this level's reviews.
- ^ if this is too harsh, then obviously they just can't vote their own review
Enforcing limits?
To avoid abuse where people might go into levels and just vote EVERYTHING they do or don't agree with:
- Up to 3 review votes per level
- Message pops up saying you can only vote for 3 reviews per level.
SVGs

To make people think twice before submitting a review, we introduce upvote and downvote on reviews.
Every review in DB will have fields for tracking who voted what so duplicate voting never happens
Voting indicator
No vote:

Upvoted:

UX stuff
It would work exactly like the youtube 👍 👎 buttons so users can remove it whenever and not able to do both.
Once the page loads, it gets the number of current votes from DB. They won't update from DB again without a refresh, but for UX sake, the numbers will increase/decrease from front end after the page is loaded so it's snappier.
Example user scenario:
This means that if a different user votes during this time, it won't actually show until our example user actually refreshes the page and retrieves the new data.
Abuse prevention
Enforcing limits?
To avoid abuse where people might go into levels and just vote EVERYTHING they do or don't agree with:
SVGs