Your Task Is To Build A Comment System From Scratch
Your Task Is To Build A Comment System From Scratch
App flow
The app can have 5-10 static pages (like blog posts)
Each page will have the ability to add comments to it
Logged-out users can only view comments
Other considerations
There can be replies to the reply of a comment.
Top-level comments are the comments made directly on the page (and not as replies to
any other comment)
Maximum five levels of replies can be there on a top-level comment (comment <- reply
<- reply <- reply <- reply <- reply)
Deleting a comment should not delete its replies. We can show that "This comment was
deleted" instead of the original comment.
For each top-level comment, the total sum of all replies to it (including nested replies)
can be at most 50.
Extra features
These are some of the additional features you can work on if you wish to.
Logged-in users should be able to
o Report comments made by other people. If five unique users report a comment,
the comment will be hidden. Instead of the comment, a message can be shown,
like "This comment is hidden because of spam."
Any user who has received a sum of 10 upvotes on their comments becomes a
moderator.
A moderator has special permissions to
o Edit anyone's comment. The 5-minute limit doesn't apply to the moderators.
o Delete anyone's comment. The comment text can show "This comment was
deleted by a moderator."
o Hide anyone's comment. Hiding a comment should not hide its responses. Again,
this will show "This comment is hidden by the moderator."
Tech Stack
Frontend - React
Backend - PHP Slim framework
Database - MySQL
For CSS, you can use any available framework, like Bootstrap or Material UI.
We believe these are all simple technologies and any sufficiently motivated person can learn
enough about them in a few days to build a project. You are not allowed to use any other
frontend/backend/database technology for this assignment.
Note that you have to build backend APIs that interact with the database. It is okay if you are not
able to finish with all the features. But please be mindful that the features which you do build,
work as expected.
Judging criteria
Your application would be judged based on the following parameters:
The functionality and Usability of the Application - 45%
o How well do you build all the required functions
Application Code Quality - 45%
o Using best practices while writing code and structuring files.
The UI and look and feel - 10%
Instructions to Submit
Create a private GitHub repository of your code and add “codechefdevs” as a collaborator to it.