By Samuel Umeh
This project is just a solution to a coding challenge for a Frontend Position.
Challenge for the job opening Senior Frontend Engineer
This scenario is meant to test your every capability in programming modern day applications. Specifically, we want you to build a frontend for a GraphQL API. The result of your little scenario is then presented by you in person.
We want you to build a frontend for the GitHub GraphQL API. The frontend should allow to browse the issues of a GitHub repository, specifically of the official React repository. You will build a little search which allows to search for a text term in either the body or title of the issues as well as for the status OPEN or CLOSED. After listing these issues, a user should be able to view a single issue and all the comments. Please ensure that sufficient queries of users are faster than initial requests with a reasonable caching strategy.
Every important aspect of the application shall be tested. Rules to programming style apply as usual and documentation shall be down to a minimum. Your application should be able to handle wrong input by the user or any unusual behavior.
For this scenario we expect you to deliver a high quality web application. Your code should be typed using either Typescript or Flow. Furthermore, we expect you to use all available ES6+ features, including Async programming style. Your implementation is based on React with a structured state management using Redux and a sensible routing strategy. Alternatively, you may apply Apollo and appropriate client side state management.
Relevant links:
- https://developer.github.com/v4/ (GitHub GraphQL API)
- https://github.com/facebook/react (Repository of React)
Following are the relevant technologies to use:
- ECMAScript 6+ with async
- TypeScript 2.5+ as a bonus instead of ECMAScript 6+
- React.js
- Webpack
In the project directory, you should run:
Installs the app dependencies
Runs the app in the development mode.
Open http://localhost:3000 to view it in the browser.
The page will reload if you make edits.
You will also see any lint errors in the console.
Launches the test runner in the interactive watch mode.\
Builds the app for production to the build
folder.