Starter REST API for LetsGetChecked front end coding challenge
- Node.js v12 or higher
You are required to create a blog application that interfaces with the provided REST API. The application should have a home page that shows all blog posts, sorted by publish date. Users should be able to view individual posts in a separate page. Within that page they should be able to read comments and add a new comment.
We are looking for all of the requirements to be submitted. This is your chance to impress us so feel free to add additional functionality or design
- Blog feed should list all posts and associated title, author, date and description, sorted by publish date from newest first
- Users can view individual blog posts in a separate page
- Users can view comments for a blog post
- Users can add a comment to a blog post
- Form validation
Depending the role please complete one of the following
Create a web application which runs in the browser and satisfies the following requirements:
- Connects with the API using js / jquery
- The use of a CSS pre-processing tool like SCSS/LESS or CSS in JS
- Semantic, accessible markup
- SEO friendly urls, titles, metadata
OR
Create an Angular 2+ application which runs in the browser and satisfies the following requirements:
- Two or more distinct components demonstrating component hierarchy
- At least one service that interfaces with the REST API
- At least one unit test per component
- The use of a CSS pre-processing tool like SCSS/LESS
- Consideration of semantic markup, SEO and accessibility
Think carefully when introducing third party libraries (including Angular Material), the Angular framework has everything you need to accomplish the challenge so only do it if you really must, for example, adding additional functionality.
OR
Create an react application which runs in the browser and satisfies the following requirements:
You are more than welcome to use the following starting points.
- Two or more distinct components demonstrating component hierarchy
- At least one service to communicate with the REST API (can be done using a context, hooks, services)
- Take a look at the API section API Section
- At least one unit test per component
- you can use React Testing Library
- The use of a CSS pre-processing tool
- SCSS/LESS/CSSinJS like (Emotion/styledComponents/Vanilla Extract)
- Consideration of semantic markup, SEO and accessibility
- Avoid using css libraries
OR
Create an android application which satisfies the following requirements:
- Built with Kotlin
- Multiple components which show the correct usage of Fragments and Activities
- The use of a ViewModel for persisting data
- The use of a Web Service that interfaces with the REST API
- At least one unit test per component
OR
Create an iOS application which satisfies the following requirements:
- Built with Swift
- Multiple components which show the correct usage of MVC pattern
- The use of a client networking model that interfaces with the REST API
- At least three unit tests
This starter kit provides the basic API you will need to complete your coding challenge. See Using the REST API for more information.
This will install all dependencies (listed in package.json
) necessary to get the API up and running.
npm run api
will start json-server to provide a stubbed out REST API through localhost:9000
.
Note: On occasion you may find the port 9000 is already in use. You can change this in the package.json.
Note: Ensure that you've started the API server with
npm run api
.
A REST API is provided with seed data for blog posts and comments. The REST API returns and accepts JSON. Changes made to the "database" will persist as long as the API is running on localhost:9000
.
Base path: http://localhost:9000
GET /posts
List all blog posts
GET /posts/{id}
View single blog post
GET /posts/{id}/comments
List all comments for single blog post
POST /posts/{id}/comments
Add comment to single blog post
PUT /comments/{id}
Update single comment
Please provide a link to a git/bitbucket/etc repository which contains the application code.
If you wish to go a step further you may host the final product for demo purposes, eg. with AWS S3. However, this is not required for completion of the code challenge.
Thank you, and enjoy the challenge!