Giter VIP home page Giter VIP logo

farewill_code_test's Introduction

Farewill React Code Task

This is a React code task for applicants for software engineering roles at Farewill. It's intended to help us get an idea of how familiar you are with writing idiomatic React components, and how you approach other front-end good practices.

This task is to be completed in your own time, but please don't spend more than 2 hours on it! An incomplete version is okay.

We're looking to see how you approach the work as much as the end product. As well as the code you write, we also want to understand why you've chosen your solution, and what you'd do if you had more time. There are questions at the bottom of this readme that we'd love your thoughts on when you submit your answers.

๐Ÿ‘‹ Intro

For this scenario, we're making a UI for showing random quotes from The Simpsons. This isn't exactly the next product we're thinking of launching, but their use of yellow works quite nicely with our brand colours.

We have:

  • a template for the application
  • a function to fetch random quotes
  • designs for what the page should look like

โ“ What you have to do

You'll need to add one or more components so that the app:

  • Fetches 4 random quotes when the "Load quotes" button is clicked.
  • Has some kind of "loading" state for the button while quotes are being fetched.
  • Displays them in a format similar to the designs.
  • Places the character images so they're facing towards their quotes.

Fetching quotes

A function is provided in src/fetchQuotes.js that selects 4 random quotes and returns them after a short delay (to simulate an API request.) You shouldn't need to modify this function.

The data returned by the quote function has information to position the character's image correctly.

The designs

You should follow the designs, but you don't have to match them exactly. If you style things differently, just let us know your reasoning!

Wide displays:

Quote task wide

Narrow displays:

Quote task narrow

Technology

The provided application uses JavaScript, React, and styled-components. You're welcome to use other libraries if you're more familiar with them and think they're suitable.


๐Ÿ’ป To get started

  1. 'Remix' this application. This will create a copy of all this code for yourself with a unique URL. If possible please do this with an account, as Glitch deletes anonymous applications after a while and we'd hate for your work to get lost!
  2. Work on your code until you're happy
    • The relevant code is in the src folder.
    • src/constants.js contains constants related to styles.
  3. When you've finished, copy your unique Glitch URL.
  4. Email us that link with your notes on your thoughts and reasoning behind the decisions you made.

If you don't want to use Glitch for any reason, you can download the project and submit your completed task via email attachment or another platform such as GitHub.

What we're looking for

  • First off, we're looking to see whether you have solved the problem (or have written a good awareness of what would be needed if you haven't finished)
  • We're looking at things like your code readability
  • We're also going to look at the way you've chosen to structure it
  • Finally, we'll be looking at how you've chosen to use the languages, including JS/React, modern CSS, semantic and accessible HTML

Things you may wish to cover in your notes:

  • Thoughts and reasonings behind your decisions
  • What went well?
  • What could have gone better?
  • Is there anything particular you'd like to come back and improve if you had time? Why?

Personal notes

I decided to go for this challenge because I wanted to push myself on pure CSS. I found it really challenging but at the same time really satisfactory. I think it went quite well, considering my CSS skills. For sure the transition from desktop to mobile could have gone better but considering the time I am happy with it.

farewill_code_test's People

Contributors

gio85 avatar

Watchers

 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.