23 lines
1.8 KiB
Markdown
23 lines
1.8 KiB
Markdown
|
|
Q1 Blogging platform with in-place comments
|
||
|
|
Tests: Machine coding, technology decision making, experience with web apps in production, problem solving
|
||
|
|
|
||
|
|
Criteria. We evaluate that you can:
|
||
|
|
Break down code into a tiered structure
|
||
|
|
Present working code
|
||
|
|
Write code that is testable
|
||
|
|
Create something that can be deployed with ease.
|
||
|
|
Design use-able APIs around abstract product requirements
|
||
|
|
|
||
|
|
Problem statement:
|
||
|
|
You are to create a blogging product that supports comments on paragraphs. Not comments on the blog, but on a specific paragraph. Requirements follow:
|
||
|
|
I should be able to add blog posts. Blog posts have a unique random identifier, a title and plain text where paragraphs are separated by two new-line characters.
|
||
|
|
I should be able to view all blog posts (list-mode) starting with first 5 and then the next 5 and so on. This view will not have any comments.
|
||
|
|
I should be able to click on one of these blogs to view it in full-mode. In full-mode, all past comments on the text are visible next to the text. Also, the viewer is able to comment on a paragraph of text. In essence, the comment is on a paragraph.
|
||
|
|
The API, when it responds with comments should provide some means to figure out which comment is on which paragraph. The notation for that is up to you to choose.
|
||
|
|
|
||
|
|
Non-requirements: Please do not think of or address any of these items:
|
||
|
|
There are no users. No authentication. Everyone could be an admin and a viewer.
|
||
|
|
The comments are not attached to any user, because there are none. There are just blogs and comments.
|
||
|
|
You are not required to create the UI to achieve any of the goals. Simple APIs are all we are looking for. These could be HTTP APIs. The HTTP APIs should be able to respond to all the user stories enumerated above.
|
||
|
|
You are not required to write tests for this. You may, if that is how you work.
|