The objective of this challenge is to build a UI page to display some github repositories.
- The page can't be static. It needs some logic to show all data dynamically.
- All repositories from
data.json
must be shown. - You need to use some build tool (Gulp, npm, Webpack, etc) to bundle your files. And ES2015+ features of course. And don't forget to add instructions on how to run the project.
- Do not ask your friends to solve the challenge for you. We may ask you to explain your choices in person.
- The app must be responsive and scale based on different window sizes. Using a mobile-first approach is a big plus.
- What we're looking for is a table or list of items that show some important data to the end user.
- For each item, the following information must be present on the page:
- Name
- Owner
- Pushed At
- Description
- Fork Count
- Star Gazers
- Primary Language
- It must be possible to sort based on column headers (Name, Pushed At, etc.).
- Easy as pie? So add more functionality by allowing to discover more data from each list item. Add some action buttons to add/delete an item from the list.
- Want more challenges? Add a filter to show only repositories written primarily in
JavaScript
or add a search box. - We like clean and testable code, right? Test your application and components, it will be a big bonus point.
- Your code will be evaluated by: semantics, structure, legibility, size, among other factors.
- The
git
history will be evaluated. - Our stack here is React, Redux, Aphrodite, Flow/TypeScript, and Webpack so using technology from the same stack will make a difference.
- We're looking for a ui engineer who knows how to build layouts and understands JavaScript. Use this as an opportunity to show us how good you are on both areas.
- Do not forget to document the process needed to run and build your app. Or else how are we going to evaluate your work if we can't init the project on our machines?
- The challenge is harder than you anticipated? Would you like to show your experience with something else? Contact us by opening an issue.