Code Monkey home page Code Monkey logo

front-end-challenge's Introduction

WorkMarket Front End Coding Challenge

Hi ๐Ÿ‘‹! If you're reading this, that means you've been asked to complete a coding assessment as a part of WorkMarket's interview process. Nice one!

This challenge will test your skills with JS fundamentals, React (&, optionally, Redux), as well as your ability to efficiently interact with APIs.

Here's what you'll be doing:

  1. Given a Github organization (e.g. Facebook), use Github's API to retrieve their public repos. You only need to worry about displaying the first page of results, so ignore pagination.
  • If a network error occurs, display an error message
  • While network request is in progress, display a simple "Loading" message
  1. For each repo, display a card. Contents of the card are:
  • Top Left: The name of the repo as a link to the repo itself.
  • Top Right: The time of last update to the repo, in a nice and readable format (e.g. 2 hours ago).
  • Bottom Left: The number of forks created for that repo.
  • Bottom Right: The number of stars for that repo.
  1. Within the center of each card, display the repo's contributors.
  • Contributors for each repo has to be fetched separately (see contributors_url property in the response for each repo).
  • Again, do not worry about pagination. Just display the first page returned.
  1. Make this thing responsive! Use float, flexbox, grid, whatever you want, but have the cards collapse down to a single one for smaller screen sizes. Exact pixel widths / breakpoints don't really matter, just make sure it doesn't look janky!

Sound good? Cool. Here's what we'll be looking for:

  • Efficient data fetching from Github API
  • Efficient state management
  • React data flow
  • React component organization
  • Understanding of React lifecycle methods
  • Performant React rendering
  • Code quality, readability, and DRY-ness

Here's what we don't care too much about:

  • Pixel perfect UI
  • Pagination (as stated above)

Some other notes:

  • We've set up a nice little playground for you to get you started. It comes with some dependencies (yarn install), but feel free to add, remove, or change those. Also feel free to completely change directory structure if you have a different style for project scaffolding.
  • React hot reloading has been set up for both UI and reducers. Don't worry about doing an actual build, we'll just run the playground with yarn watch once you've submitted.
  • Don't want to use Redux for state management? No worries! Go crazy with whatever package you want. Don't want to use anything for state management at all? Fine with us!
  • We've already configured webpack for you (just run yarn watch). We've also already configured babel for you if you want to use the latest and greatest ES7/8/whatever. The config is in .babelrc, feel free to modify it.
  • There's a .eslintrc file includes. Ignore if you want. We're sticklers for code styling, but you don't have to be.

How to Submit

You can get started by forking the repo and making code changes in your fork.

All done? ๐Ÿ”ฅ! You can submit your work by opening a pull request against our upstream repository.

front-end-challenge's People

Contributors

tim-mc avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.