I have made a bit of spaghetti here but need to review the Redux implementation. Possibly tripped myself up using the ES6 syntax to extend the React.Component class rather than using the React.createClass method. The connect() seems to be the failure, just couldn't connect my component containers to my store.
This coding challenge has been created to evaluate the skills of a frontend, React developer. Given the complete freedom on how to solve the challenge, an understanding of best practices and patterns will emerge.
Fork this repository and create a pull request when the challenge is complete.
The test is tiered with an increasingly difficult set of requirements. Only the first tier is required but solving the remaining two is encouraged.
Please note that the time taken to complete this challenge will be taken into consideration, starting when you fork the repository and ending with the pull request.
Please follow these coding guidelines:
- AirBnB style guide (already configured in ESLint)
You are given a URL which returns the JSON defined in the db.json file at the root of this project. Perform a GET to retrieve the data and render the result on the page however you see fit. Bootstrap 4 is already configured and ready to be used.
Bonus points are awarded for (in order of importance):
- Adding your own custom CSS
- Thinking in React
- Unit testing
- Using axios for the API call
Perform the same task as above using Redux.
Bonus points are awarded for nicely organising folders and files.
Using Redux and React router, create a new url (/book/{id}) which will render a single book view. Link to this view in the list of books.
- Javascript ES6
- React
- SCSS
- Webpack
Recommended
- Redux
- React router
- Bootstrap 4
Clone and run:
npm install
npm run watch
Make sure everything is working, a browser window should open at the address http://localhost:3000/ displaying "Welcome!". Double check by running the provided unit tests.
npm test
MIT license. Feel free to remix, use and contribute to this coding challenge. Just make sure to let me know in the pull request this is not from a candidate.