Skip to content

JavaScript - React - NodeJS - Discussions Forum #2

@aditya-xq

Description

@aditya-xq

Interview Coding Challenge: Article Discussion Forum


Objective: Design and implement a minimal web application that allows users to engage in discussions on an article by submitting comments, replying to comments, and upvoting comments they find valuable.
Company: Ghost (Source)


Overview

Your task is to create a standalone application mimicking a single article page. This should reflect the type of projects typically undertaken at our company and is designed to assess your proficiency and approach to real-world problems.

Design Reference

Please refer to the provided Figma design as a visual guideline:
Design Mockup

Development Milestones

Your challenge is divided into two main stages:

1. MVP (Version 1)

  • Front-end: Use vanilla JS or jQuery to allow users to submit and view comments as well as upvote them.

  • Back-end: Implement a solution to store comments and associated upvotes. The structure can be simple, without nested comments.

  • Versioning: Once completed, mark your progress by tagging this stage on GitHub as "V1".

2. Enhanced Version (Version 2)

  • Front-end Migration: Transition the display of upvotes to React.

  • Real-time Interaction: Ensure that upvotes update in real-time. For instance, if a comment receives an upvote from another page, the change should be instantly visible.

  • Enhanced Comments: Update both the front-end and back-end to accommodate one level of comment nesting, allowing users to reply directly to comments.

  • Versioning: On completion, tag this stage on GitHub as "V2".

Considerations

  • While we primarily use Node.js, Express, React, and MySQL, feel free to select any tech stack you're comfortable with, as long as it aligns with the requirements.

  • Skip authentication. For simplicity, randomize users when they submit comments or upvotes.

  • Craft your commits in a structured manner to make the commit history insightful for reviewers.

  • Writing automated tests is a plus, but it's not mandatory.

Metadata

Metadata

Assignees

No one assigned

    Labels

    problemProblem statement to be solved

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions