Skip to content
This repository was archived by the owner on Apr 29, 2021. It is now read-only.
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 4 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
# Tech-screen

This repo contains multiple apps. The concept is to enable developers to pick and choose which tech problem(s) they would like to solve.

But first, a little bit about us...

## About ClearScore
Expand All @@ -25,13 +25,14 @@ We are currently working with...
* A stylish solution with unit test coverage
* Clean, concise code
* A detailed README
* A live site we can see (if possible)
* A live site we can see (if possible)

## Apps

> Each app contains 1 (or more) tech challenge(s). Please pick and choose one or more to complete.

* [Carousel](/carousel) \[4 hours] \[Front-end] \[React]
* A Front-end focused app which requires a new carousel
* ...
* [Idea Board](/idea-board) \[2-3 hours] \[Front-end] \[React]
* Idea board app where you can create, update, delete and sort items.

1 change: 1 addition & 0 deletions idea-board/COMMENTS.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
# Developer Comments
20 changes: 20 additions & 0 deletions idea-board/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
# ClearScore FED Test
Thank you for applying for a front end developer role at [ClearScore](https://www.clearscore.com).

We hope that you find this task fun and not to worry, there are no trick questions; we want to see your solution to a simple problem with well structured and thought-out code. We love to see unique solutions so if you're a developer that has a flare for CSS animations or a penchant for procedural programming then feel free to incorporate these skills.
## Task
Build an idea board that allows a user to create new ideas, edit existing ideas or delete them. Each idea should be represented as a tile on the board that displays a title, description and created/updated time. The title and description should be editable inline. The description text should have a max length of 140 characters. There should also be a button on the tile that allows for it to be deleted.

When working through the task you should treat it as if you're writing real world production code. We're looking to see a test suite, comments where required and an attention to detail. In addition to this you may use whatever libraries or packages you wish. This should take you around two or three hours to complete fully but feel free to spend as much or as little time on the exercise as you like. Detail anything you didn't get around to completing in the `COMMENTS.md` file along with any other additonal information we should be aware of when reviewing the code.
### Required
* Page should be fully responsive.
* Each idea tile should contain a title and description, which is editable, as well as created/updated time.
* New ideas should have the title field focused to prompt user to begin typing.
* Add the ability to sort ideas by creation date or alphabetically.
### Stretch
* Utilise the localStorage API to persist current state when the page is refreshed.
* Add a character countdown as the user is approaching the limit of their description text.
* Add an unobtrusive notification when an update is made to a tile.
## Getting started
`yarn start` will run a development server on `http://localhost:3000`.
`yarn test` will run the suite of tests created.
20 changes: 20 additions & 0 deletions idea-board/package.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
{
"name": "clearscore-fed-test",
"version": "0.1.0",
"private": true,
"dependencies": {
"react": "16.4.0",
"react-dom": "16.4.0",
"react-scripts": "1.1.4"
},
"scripts": {
"start": "react-scripts start",
"test": "react-scripts test --env=jsdom",
"eject": "react-scripts eject"
},
"devDependencies": {
"enzyme": "3.3.0",
"enzyme-adapter-react-16": "1.1.1",
"react-test-renderer": "16.4.0"
}
}
11 changes: 11 additions & 0 deletions idea-board/public/index.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<title>ClearScore FED Test</title>
</head>
<body>
<div id="root"></div>
</body>
</html>
Empty file added idea-board/src/App.css
Empty file.
12 changes: 12 additions & 0 deletions idea-board/src/App.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
import React, { Component } from 'react';
import './App.css';

export default class App extends Component {
render() {
return (
<div>
ClearScore FED test...
</div>
);
}
}
7 changes: 7 additions & 0 deletions idea-board/src/App.test.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
import React from 'react';
import { shallow } from 'enzyme';
import App from './App';

it('renders without crashing', () => {
shallow(<App />);
});
5 changes: 5 additions & 0 deletions idea-board/src/index.css
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
body {
margin: 0;
padding: 0;
font-family: sans-serif;
}
6 changes: 6 additions & 0 deletions idea-board/src/index.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
import React from 'react';
import ReactDOM from 'react-dom';
import App from './App';
import './index.css';

ReactDOM.render(<App />, document.getElementById('root'));
4 changes: 4 additions & 0 deletions idea-board/src/setupTests.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
import { configure } from 'enzyme';
import Adapter from 'enzyme-adapter-react-16';

configure({ adapter: new Adapter() });
Loading