Replace Upvote/Downvote System with Like/Dislike Feature to Prevent Negative and Infinite Counts
Description
This pull request addresses issue #143 by replacing the upvote/downvote system with a like/dislike feature for tutorials and comments. This new system ensures that counts are finite and non-negative. The implementation includes new components for handling likes and dislikes, database schema updates, and migration paths to maintain data integrity.
Related Issue
This PR fixes #143.
Motivation and Context
The current upvote/downvote system allows negative and infinite counts, which leads to inaccurate and inconsistent data representation. By transitioning to a like/dislike system, we ensure that counts are properly managed, finite, and non-negative, providing a more accurate representation of user interactions.
How Has This Been Tested?
The changes have been tested through:
Manual testing on the desktop environment (macOS, Chrome Version 125.0.6422.141) to confirm that the UI updates correctly and user interactions are accurately reflected.
Types of changes
[x] Bug fix (non-breaking change which fixes an issue)
[x] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to change)
Checklist:
[x] My code follows the code style of this project.
[ ] My change requires a change to the documentation.
Title
Replace Upvote/Downvote System with Like/Dislike Feature to Prevent Negative and Infinite Counts
Description
This pull request addresses issue #143 by replacing the upvote/downvote system with a like/dislike feature for tutorials and comments. This new system ensures that counts are finite and non-negative. The implementation includes new components for handling likes and dislikes, database schema updates, and migration paths to maintain data integrity.
Related Issue
This PR fixes #143.
Motivation and Context
The current upvote/downvote system allows negative and infinite counts, which leads to inaccurate and inconsistent data representation. By transitioning to a like/dislike system, we ensure that counts are properly managed, finite, and non-negative, providing a more accurate representation of user interactions.
How Has This Been Tested?
The changes have been tested through:
Types of changes
Checklist: