/frontend-challenge

Blockchain at Berkeley's Front-End Developer Challenge

alt text

Blockchain at Berkeley - Front-End Challenge

Welcome to the Blockchain at Berkeley Front-End Challenge! Do not release your solution to the public. Submit using the google form below. You can choose to not use a JS framework and show off your JS skills instead. We will consider any attempts.

Overview

To complete this challenge, you will need to write a simple React, Vue.js or AngularJS web app, and provide us the source files to be built.

The purpose of this challenge is to assess your skills and approach to composing a simple web app given a set of screens and an API feed. We will also assess the generated HTML, CSS, and JS output.

This challenge is expected to take about 2-4 hours.

The Challenge

Using the provided screens as a reference, you'll need to build a set of React components to render the app. You'll also need to request a JSON feed, filter that data, and use the relevant fields.

Although this is a basic exercise, we'll be looking for simple, well-designed code in the submission.

Please include a README with setup instructions, and any tests (if you know how) or other documentation you created as part of your solution.

Also, add the following info to your README:

  • How did you decide which technologies to use as part of your solution?
  • Are there any improvements you could make to your submission?
  • What would you do differently if you were allocated more time?

Details

You will need to build the following 3 pages with React, Vue.js, or AngularJS:

  • A "Home" page
  • A "Series" page
  • A "Movies" page

The deployable solution should be built in a folder named dist with an entry point file of index.html.

Please create components for each part of the page (eg. header, content, footer, etc). Assets are provided in the assets folder.

The pages should also be usable on mobile and tablet devices.

You can assume that you do not have to support legacy browsers without features such as fetch or flexbox.

"Home" Page

Refer to the screens/1-home.jpg screen.

This will be your index.html screen.

You will need to display 2 tiles, which link to the "Series" page and the "Movies" page.

"Series" and "Movies" Pages

Refer to the screens/2-series.jpg and screens/3-movies.jpg screens.

For each page you will need to fetch this JSON feed feed/sample.json, then:

  • Display the first 21 entries
  • Where the entry has a releaseYear attribute value >= 2010
  • Sorted by the title attribute value in ascending alphanumeric order

For the "Series" page filter on:

  • Where the entry has a programType attribute value of series

For the "Movies" page filter on:

  • Where the entry has a programType attribute value of movie

The attributes you should use to display the entries are:

  • title
  • imagesPoster Arturl

You will also need to handle the loading and error states, of fetching the JSON feed:

Submission

Zip up your repo along making sure you've met all the criteria. If we don't have instructions to run your web app we will likely be unable to grade it.

Submit your zip here: https://goo.gl/forms/n9PYlY0XujuhXMDg2

FAQ

What language, framework, build tool... should I use?

React, Vue.js or AngularJS

Thanks for StreamCo for their challenge.

I have questions, where can I get help?

You can google questions related to the code or JS framework. We can answer questions related to this task (but no guidance) at hr@blockchain.berkeley.edu.